diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.js b/bin/pixi.js index 51d6836..96307b0 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -9,7 +9,7 @@ * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; +(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[],t._webGL.indices=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; if(0!=r.length){var a=new n.Point(r[0],r[1]),s=new n.Point(r[r.length-2],r[r.length-1]);if(a.x==s.x&&a.y==s.y){r.pop(),r.pop(),s=new n.Point(r[r.length-2],r[r.length-1]);var o=s.x+.5*(a.x-s.x),h=s.y+.5*(a.y-s.y);r.unshift(o,h),r.push(o,h)}var l,u,c,d,p,f,g,v,m,x,b,y,T,A,w,_,R,S,C,L,E,B=i.points,F=i.indices,P=r.length/2,G=r.length,I=B.length/6,D=t.lineWidth/2,M=e(t.lineColor),O=t.lineAlpha,W=M[0]*O,U=M[1]*O,j=M[2]*O;l=r[0],u=r[1],c=r[2],d=r[3],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(l-g,u-v,W,U,j,O),B.push(l+g,u+v,W,U,j,O);for(var k=1;P-1>k;k++)l=r[2*(k-1)],u=r[2*(k-1)+1],c=r[2*k],d=r[2*k+1],p=r[2*(k+1)],f=r[2*(k+1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,m=-(d-f),x=c-p,E=Math.sqrt(m*m+x*x),m/=E,x/=E,m*=D,x*=D,T=-v+u-(-v+d),A=-g+c-(-g+l),w=(-g+l)*(-v+d)-(-g+c)*(-v+u),_=-x+f-(-x+d),R=-m+c-(-m+p),S=(-m+p)*(-x+d)-(-m+c)*(-x+f),C=T*R-_*A,0==C&&(C+=1),px=(A*S-R*w)/C,py=(_*w-T*S)/C,L=(px-c)*(px-c)+(py-d)+(py-d),L>19600?(b=g-m,y=v-x,E=Math.sqrt(b*b+y*y),b/=E,y/=E,b*=D,y*=D,B.push(c-b,d-y),B.push(W,U,j,O),B.push(c+b,d+y),B.push(W,U,j,O),B.push(c-b,d-y),B.push(W,U,j,O),G++):(B.push(px,py),B.push(W,U,j,O),B.push(c-(px-c),d-(py-d)),B.push(W,U,j,O));l=r[2*(P-2)],u=r[2*(P-2)+1],c=r[2*(P-1)],d=r[2*(P-1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(c-g,d-v),B.push(W,U,j,O),B.push(c+g,d+v),B.push(W,U,j,O),F.push(I);for(var k=0;G>k;k++)F.push(I++);F.push(I-1)}},n.WebGLGraphics.buildPoly=function(t,i){var r=t.points;if(!(6>r.length)){for(var a=i.points,s=i.indices,o=r.length/2,h=e(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=n.PolyK.Triangulate(r),f=a.length/6,g=0;p.length>g;g+=3)s.push(p[g]+f),s.push(p[g]+f),s.push(p[g+1]+f),s.push(p[g+2]+f),s.push(p[g+2]+f);for(var g=0;o>g;g++)a.push(r[2*g],r[2*g+1],u,c,d,l)}},n._defaultFrame=new n.Rectangle(0,0,1,1),n.gl,n.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var a=this;this.view.addEventListener("webglcontextlost",function(t){a.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){a.handleContextRestored(t)},!1),this.batchs=[];try{n.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!0,premultipliedAlpha:!1})}catch(s){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}n.initPrimitiveShader(),n.initDefaultShader(),n.initDefaultStripShader(),n.activateDefaultShader();var o=this.gl;n.WebGLRenderer.gl=o,this.batch=new n.WebGLBatch(o),o.disable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.enable(o.BLEND),o.colorMask(!0,!0,!0,this.transparent),n.projection=new n.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new n.WebGLRenderGroup(this.gl)},n.WebGLRenderer.constructor=n.WebGLRenderer,n.WebGLRenderer.getBatch=function(){return 0==n._batchs.length?new n.WebGLBatch(n.WebGLRenderer.gl):n._batchs.pop()},n.WebGLRenderer.returnBatch=function(t){t.clean(),n._batchs.push(t)},n.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),n.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],!this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(n.projection),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0){for(var i=0;n.Texture.frameUpdates.length>i;i++)n.Texture.frameUpdates[i].updateFrame=!1;n.Texture.frameUpdates=[]}}},n.WebGLRenderer.updateTextures=function(){for(var t=0;n.texturesToUpdate.length>t;t++)this.updateTexture(n.texturesToUpdate[t]);for(var t=0;n.texturesToDestroy.length>t;t++)this.destroyTexture(n.texturesToDestroy[t]);n.texturesToUpdate=[],n.texturesToDestroy=[]},n.WebGLRenderer.updateTexture=function(t){var e=n.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},n.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},n.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),n.projection.x=this.width/2,n.projection.y=this.height/2},n.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},n.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;n.TextureCache.length>t;t++)this.updateTexture(n.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;n._restoreBatchs(this.gl),this.contextLost=!1},n._batchs=[],n._getBatch=function(t){return 0==n._batchs.length?new n.WebGLBatch(t):n._batchs.pop()},n._returnBatch=function(t){t.clean(),n._batchs.push(t)},n._restoreBatchs=function(t){for(var e=0;n._batchs.length>e;e++)n._batchs[e].restoreLostContext(t)},n.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=n.blendModes.NORMAL,this.dynamicSize=1},n.WebGLBatch.constructor=n.WebGLBatch,n.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},n.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},n.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},n.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},n.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},n.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},n.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new n.WebGLBatch(this.gl);e.init(t),e.texture=this.texture,e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},n.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},n.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,n=4*i;this.indices[r+0]=n+0,this.indices[r+1]=n+1,this.indices[r+2]=n+2,this.indices[r+3]=n+0,this.indices[r+4]=n+2,this.indices[r+5]=n+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},n.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof n.WebGLBatch?this.batchs[r].render():i instanceof n.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof n.Strip?i.visible&&this.renderStrip(i,t):i instanceof n.Graphics&&i.visible&&n.WebGLGraphics.renderGraphics(i,t)},n.WebGLRenderGroup.prototype.renderSpecific=function(t,e){n.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniform2f(n.shaderProgram.projectionVector,e.x,e.y);var r,a,s,o,h=t.renderable?t:this.getNextRenderable(t),l=h.batch;if(h instanceof n.Sprite){l=h.batch;var u=l.head;if(u==h)r=0;else for(r=1;u.__next!=h;)r++,u=u.__next}else l=h;for(var c,d=t,p=t;p.children.length>0;)p=p.children[p.children.length-1],p.renderable&&(d=p);if(d instanceof n.Sprite){c=d.batch;var u=c.head;if(u==d)s=0;else for(s=1;u.__next!=d;)s++,u=u.__next}else c=d;if(l==c)return l instanceof n.WebGLBatch?l.render(r,s+1):this.renderSpecial(l),void 0;a=this.batchs.indexOf(l),o=this.batchs.indexOf(c),l instanceof n.WebGLBatch?l.render(r):this.renderSpecial(l);for(var f=a+1;o>f;f++)renderable=this.batchs[f],renderable instanceof n.WebGLBatch?this.batchs[f].render():this.renderSpecial(renderable);c instanceof n.WebGLBatch?c.render(0,s+1):this.renderSpecial(c)},n.WebGLRenderGroup.prototype.renderSpecial=function(t){t instanceof n.TilingSprite?t.visible&&this.renderTilingSprite(t,projectionMatrix):t instanceof n.Strip?t.visible&&this.renderStrip(t,projectionMatrix):t instanceof n.CustomRenderable?t.visible&&t.renderWebGL(this,projectionMatrix):t instanceof n.Graphics&&t.visible&&n.WebGLGraphics.renderGraphics(t)},n.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var n=i[r];n.worldVisible=n.visible&&e,n.textureChange&&(n.textureChange=!1,n.worldVisible&&(this.removeDisplayObject(n),this.addDisplayObject(n))),n.children.length>0&&this.checkVisibility(n,n.worldVisible)}},n.WebGLRenderGroup.prototype.updateTexture=function(t){if(1==t.batch.length)return t.batch.texture=t.texture.baseTexture,void 0;if(t.batch.texture!=t.texture.baseTexture)if(t.batch.head==t){var e=t.batch,i=this.batchs.indexOf(e),r=this.batchs[i-1];if(e.remove(t),r)if(r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)r.insertAfter(t,r.tail);else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i-1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(0,0,a)}}else if(t.batch.tail==t){var e=t.batch,i=this.batchs.indexOf(e),s=this.batchs[i+1];if(e.remove(t),s){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,s.head),void 0;var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i+1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.push(a)}}else{var e=t.batch,o=e.split(t);o.remove(t);var a=n.WebGLRenderer.getBatch(),i=this.batchs.indexOf(e);a.init(t),this.batchs.splice(i+1,0,a,o)}},n.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof n.Sprite){var r,a;if(e instanceof n.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof n.Sprite){if(a=i.batch){if(a.texture==t.texture.baseTexture&&a.blendMode==t.blendMode)return a.insertBefore(t,i),void 0;if(a==r){var s=r.split(i),o=n.WebGLRenderer.getBatch(),h=this.batchs.indexOf(r);return o.init(t),this.batchs.splice(h+1,0,o,s),void 0}}}else a=i;var o=n.WebGLRenderer.getBatch();if(o.init(t),r){var h=this.batchs.indexOf(r);this.batchs.splice(h+1,0,o)}else this.batchs.push(o)}else t instanceof n.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof n.Strip?(this.initStrip(t),this.batchs.push(t)):t instanceof n.Graphics&&this.batchs.push(t);this.batchUpdate=!0}},n.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},n.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof n.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof n.WebGLBatch&&this.batchs[r+1]instanceof n.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),n.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e)}}},n.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},n.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},n.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=n.shaderProgram;i.useProgram(n.stripShaderProgram);var a=n.mat3.clone(t.worldTransform);n.mat3.transpose(a),i.uniformMatrix3fv(n.stripShaderProgram.translationMatrix,!1,a),i.uniform2f(n.stripShaderProgram.projectionVector,e.x,e.y),i.uniform1f(n.stripShaderProgram.alpha,t.worldAlpha),t.blendMode==n.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.useProgram(n.shaderProgram)},n.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;n.shaderProgram;var r=t.tilePosition,a=t.tileScale,s=r.x/t.texture.baseTexture.width,o=r.y/t.texture.baseTexture.height,h=t.width/t.texture.baseTexture.width/a.x,l=t.height/t.texture.baseTexture.height/a.y;t.uvs[0]=0-s,t.uvs[1]=0-o,t.uvs[2]=1*h-s,t.uvs[3]=0-o,t.uvs[4]=1*h-s,t.uvs[5]=1*l-o,t.uvs[6]=0-s,t.uvs[7]=1*l-o,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},n.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},n.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},n.CanvasRenderer.constructor=n.CanvasRenderer,n.CanvasRenderer.prototype.render=function(t){n.texturesToUpdate=[],n.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0&&(n.Texture.frameUpdates=[])},n.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},n.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof n.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof n.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof n.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof n.CustomRenderable?t.renderCanvas(this):t instanceof n.Graphics&&(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),n.CanvasGraphics.renderGraphics(t,i));if(t.children)for(var a=0;t.children.length>a;a++)this.renderDisplayObject(t.children[a]);this.context.setTransform(1,0,0,1,0,0)}},n.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var n=1;r-2>n;n++){var a=2*n,s=i[a],o=i[a+2],h=i[a+4],l=i[a+1],u=i[a+3],c=i[a+5];e.moveTo(s,l),e.lineTo(o,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},n.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;e.globalAlpha=t.worldAlpha,t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},n.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,n=i.length/2;this.count++;for(var a=1;n-2>a;a++){var s=2*a,o=i[s],h=i[s+2],l=i[s+4],u=i[s+1],c=i[s+3],d=i[s+5],p=r[s]*t.texture.width,f=r[s+2]*t.texture.width,g=r[s+4]*t.texture.width,v=r[s+1]*t.texture.height,m=r[s+3]*t.texture.height,x=r[s+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var b=p*m+v*g+f*x-m*g-v*f-p*x,y=o*m+v*l+h*x-m*l-v*h-o*x,T=p*h+o*g+f*l-h*g-o*f-p*l,A=p*m*l+v*h*g+o*f*x-o*m*g-v*f*l-p*h*x,w=u*m+v*d+c*x-m*d-v*c-u*x,_=p*c+u*g+f*d-c*g-u*f-p*d,R=p*m*d+v*c*g+u*f*x-u*m*g-v*f*d-p*c*x;e.transform(y/b,w/b,T/b,_/b,A/b,R/b),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},n.CanvasGraphics=function(){},n.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,r=0;t.graphicsData.length>r;r++){var a=t.graphicsData[r],s=a.points;if(e.strokeStyle=color="#"+("00000"+(0|a.lineColor).toString(16)).substr(-6),e.lineWidth=a.lineWidth,a.type==n.Graphics.POLY){e.beginPath(),e.moveTo(s[0],s[1]);for(var o=1;s.length/2>o;o++)e.lineTo(s[2*o],s[2*o+1]);s[0]==s[s.length-2]&&s[1]==s[s.length-1]&&e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}else if(a.type==n.Graphics.RECT)a.fillColor&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fillRect(s[0],s[1],s[2],s[3])),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.strokeRect(s[0],s[1],s[2],s[3]));else if(a.type==n.Graphics.CIRC)e.beginPath(),e.arc(s[0],s[1],s[2],0,2*Math.PI),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke());else if(a.type==n.Graphics.ELIP){var h=a.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,v=c+l,m=d+u,x=c+l/2,b=d+u/2;e.moveTo(c,b),e.bezierCurveTo(c,b-g,x-f,d,x,d),e.bezierCurveTo(x+f,d,v,b-g,v,b),e.bezierCurveTo(v,b+g,x+f,m,x,m),e.bezierCurveTo(x-f,m,c,b+g,c,b),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}}},n.Graphics=function(){n.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=2,this.lineColor="#FF0000",this.graphicsData=[],this.currentPath={points:[]}},n.Graphics.constructor=n.Graphics,n.Graphics.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Graphics.prototype.lineStyle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=void 0==i?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.graphicsData.push(this.currentPath)},n.Graphics.prototype.moveTo=function(t,e){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath)},n.Graphics.prototype.lineTo=function(t,e){this.currentPath.points.push(t,e),this.dirty=!0},n.Graphics.prototype.beginFill=function(t,e){this.filling=!0,this.fillColor=t||0,this.fillAlpha=e||1},n.Graphics.prototype.endFill=function(){this.filling=!1,this.fillColor=null,this.fillAlpha=1},n.Graphics.prototype.drawRect=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawCircle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:n.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawElipse=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.clear=function(){this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[]},n.Graphics.POLY=0,n.Graphics.RECT=1,n.Graphics.CIRC=2,n.Graphics.ELIP=3,n.Strip=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=n.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Strip.constructor=n.Strip,n.Strip.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},n.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Rope=function(t,e){n.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},n.Rope.constructor=n.Rope,n.Rope.prototype=Object.create(n.Strip.prototype),n.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,n=t[0],a=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var s=t.length,o=1;s>o;o++){var a=t[o],h=4*o,l=o/(s-1);o%2?(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1):(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,n=a}}},n.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],a={x:0,y:0},s=t[0];this.count-=.2,i[0]=s.x+a.x,i[1]=s.y+a.y,i[2]=s.x-a.x,i[3]=s.y-a.y;for(var o=t.length,h=1;o>h;h++){var s=t[h],l=4*h;e=t.length-1>h?t[h+1]:s,a.y=-(e.x-r.x),a.x=e.y-r.y;var u=10*(1-h/(o-1));u>1&&(u=1);var c=Math.sqrt(a.x*a.x+a.y*a.y),d=this.texture.height/2;a.x/=c,a.y/=c,a.x*=d,a.y*=d,i[l]=s.x+a.x,i[l+1]=s.y+a.y,i[l+2]=s.x-a.x,i[l+3]=s.y-a.y,r=s}n.DisplayObjectContainer.prototype.updateTransform.call(this)}},n.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0 },n.TilingSprite=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new n.Point(1,1),this.tilePosition=new n.Point(0,0),this.blendMode=n.blendModes.NORMAL},n.TilingSprite.constructor=n.TilingSprite,n.TilingSprite.prototype=Object.create(n.DisplayObjectContainer.prototype),n.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},n.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Spine=function(t){if(n.DisplayObjectContainer.call(this),this.spineData=n.AnimCache[t],!this.spineData)throw Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+t);this.count=0,this.sprites=[],this.skeleton=new u.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new u.AnimationStateData(this.spineData),this.state=new u.AnimationState(this.stateData);for(var e=0;this.skeleton.drawOrder.length>e;e++){var i=this.skeleton.drawOrder[e].data.attachmentName;n.TextureCache[i]||(i+=".png");var r=new n.Sprite(n.Texture.fromFrame(i));r.anchor.x=r.anchor.y=.5,this.addChild(r),this.sprites.push(r)}},n.Spine.constructor=n.Spine,n.Spine.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Spine.prototype.updateTransform=function(){this.state.update(1/60),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var t=0;this.skeleton.drawOrder.length>t;t++){var e=this.skeleton.drawOrder[t],i=e.bone.worldX+e.attachment.x*e.bone.m00+e.attachment.y*e.bone.m01+.5*e.attachment.width,r=e.bone.worldY+e.attachment.x*e.bone.m10+e.attachment.y*e.bone.m11+.5*e.attachment.height;if(e.cacheName!=e.attachment.name){var a=e.attachment.name;n.TextureCache[a]||(a+=".png"),this.sprites[t].setTexture(n.TextureCache[a]),e.cacheName=e.attachment.name}i+=-(e.attachment.width*(e.bone.worldScaleX+e.attachment.scaleX-1)>>1),r+=-(e.attachment.height*(e.bone.worldScaleY+e.attachment.scaleY-1)>>1),this.sprites[t].position.x=i,this.sprites[t].position.y=r,this.sprites[t].rotation=-(e.bone.worldRotation+e.attachment.rotation)*(Math.PI/180)}n.DisplayObjectContainer.prototype.updateTransform.call(this)};var u={};u.BoneData=function(t,e){this.name=t,this.parent=e},u.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},u.SlotData=function(t,e){this.name=t,this.boneData=e},u.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},u.Bone=function(t,e){this.data=t,this.parent=e,this.setToSetupPose()},u.Bone.yDown=!1,u.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(t,e){var i=this.parent;null!=i?(this.worldX=this.x*i.m00+this.y*i.m01+i.worldX,this.worldY=this.x*i.m10+this.y*i.m11+i.worldY,this.worldScaleX=i.worldScaleX*this.scaleX,this.worldScaleY=i.worldScaleY*this.scaleY,this.worldRotation=i.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var r=this.worldRotation*Math.PI/180,n=Math.cos(r),a=Math.sin(r);this.m00=n*this.worldScaleX,this.m10=a*this.worldScaleX,this.m01=-a*this.worldScaleY,this.m11=n*this.worldScaleY,t&&(this.m00=-this.m00,this.m01=-this.m01),e&&(this.m10=-this.m10,this.m11=-this.m11),u.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY}},u.Slot=function(t,e,i){this.data=t,this.skeleton=e,this.bone=i,this.setToSetupPose()},u.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(t){this.attachment=t,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(t){this._attachmentTime=this.skeleton.time-t},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var t=this.data;this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a;for(var e=this.skeleton.data.slots,i=0,r=e.length;r>i;i++)if(e[i]==t){this.setAttachment(t.attachmentName?this.skeleton.getAttachmentBySlotIndex(i,t.attachmentName):null);break}}},u.Skin=function(t){this.name=t,this.attachments={}},u.Skin.prototype={addAttachment:function(t,e,i){this.attachments[t+":"+e]=i},getAttachment:function(t,e){return this.attachments[t+":"+e]},_attachAll:function(t,e){for(var i in e.attachments){var r=i.indexOf(":"),n=parseInt(i.substring(0,r)),a=i.substring(r+1),s=t.slots[n];if(s.attachment&&s.attachment.name==a){var o=this.getAttachment(n,a);o&&s.setAttachment(o)}}}},u.Animation=function(t,e,i){this.name=t,this.timelines=e,this.duration=i},u.Animation.prototype={apply:function(t,e,i){i&&0!=this.duration&&(e%=this.duration);for(var r=this.timelines,n=0,a=r.length;a>n;n++)r[n].apply(t,e,1)},mix:function(t,e,i,r){i&&0!=this.duration&&(e%=this.duration);for(var n=this.timelines,a=0,s=n.length;s>a;a++)n[a].apply(t,e,r)}},u.binarySearch=function(t,e,i){var r=0,n=Math.floor(t.length/i)-2;if(0==n)return i;for(var a=n>>>1;;){if(e>=t[(a+1)*i]?r=a+1:n=a,r==n)return(r+1)*i;a=r+n>>>1}},u.linearSearch=function(t,e,i){for(var r=0,n=t.length-i;n>=r;r+=i)if(t[r]>e)return r;return-1},u.Curves=function(t){this.curves=[],this.curves.length=6*(t-1)},u.Curves.prototype={setLinear:function(t){this.curves[6*t]=0},setStepped:function(t){this.curves[6*t]=-1},setCurve:function(t,e,i,r,n){var a=.1,s=a*a,o=s*a,h=3*a,l=3*s,u=6*s,c=6*o,d=2*-e+r,p=2*-i+n,f=3*(e-r)+1,g=3*(i-n)+1,v=6*t,m=this.curves;m[v]=e*h+d*l+f*o,m[v+1]=i*h+p*l+g*o,m[v+2]=d*u+f*c,m[v+3]=p*u+g*c,m[v+4]=f*c,m[v+5]=g*c},getCurvePercent:function(t,e){e=0>e?0:e>1?1:e;var i=6*t,r=this.curves,n=r[i];if(!n)return e;if(-1==n)return 0;for(var a=r[i+1],s=r[i+2],o=r[i+3],h=r[i+4],l=r[i+5],u=n,c=a,d=8;;){if(u>=e){var p=u-n,f=c-a;return f+(c-f)*(e-p)/(u-p)}if(0==d)break;d--,n+=s,a+=o,s+=h,o+=l,u+=n,c+=a}return c+(1-c)*(e-u)/(1-u)}},u.RotateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=2*t},u.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){t*=2,this.frames[t]=e,this.frames[t+1]=i},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-2]){for(var a=n.data.rotation+r[r.length-1]-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;return n.rotation+=a*i,void 0}var s=u.binarySearch(r,e,2),o=r[s-1],h=r[s],l=1-(e-h)/(r[s-2]-h);l=this.curves.getCurvePercent(s/2-1,l);for(var a=r[s+1]-o;a>180;)a-=360;for(;-180>a;)a+=360;for(a=n.data.rotation+(o+a*l)-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;n.rotation+=a*i}}},u.TranslateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.x+=(n.data.x+r[r.length-2]-n.x)*i,n.y+=(n.data.y+r[r.length-1]-n.y)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.x+=(n.data.x+s+(r[a+1]-s)*l-n.x)*i,n.y+=(n.data.y+o+(r[a+2]-o)*l-n.y)*i}}},u.ScaleTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.scaleX+=(n.data.scaleX-1+r[r.length-2]-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+r[r.length-1]-n.scaleY)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.scaleX+=(n.data.scaleX-1+s+(r[a+1]-s)*l-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+o+(r[a+2]-o)*l-n.scaleY)*i}}},u.ColorTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=5*t},u.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e){t*=5,this.frames[t]=e,this.frames[t+1]=r,this.frames[t+2]=g,this.frames[t+3]=b,this.frames[t+4]=a},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.slots[this.slotIndex];if(e>=r[r.length-5]){var a=r.length-1;return n.r=r[a-3],n.g=r[a-2],n.b=r[a-1],n.a=r[a],void 0}var s=u.binarySearch(r,e,5),o=r[s-4],h=r[s-3],l=r[s-2],c=r[s-1],d=r[s],p=1-(e-d)/(r[s-5]-d);p=this.curves.getCurvePercent(s/5-1,p);var f=o+(r[s+1]-o)*p,g=h+(r[s+2]-h)*p,v=l+(r[s+3]-l)*p,m=c+(r[s+4]-c)*p;1>i?(n.r+=(f-n.r)*i,n.g+=(g-n.g)*i,n.b+=(v-n.b)*i,n.a+=(m-n.a)*i):(n.r=f,n.g=g,n.b=v,n.a=m)}}},u.AttachmentTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=t,this.attachmentNames=[],this.attachmentNames.length=t},u.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){this.frames[t]=e,this.attachmentNames[t]=i},apply:function(t,e){var i=this.frames;if(!(i[0]>e)){var r;r=e>=i[i.length-1]?i.length-1:u.binarySearch(i,e,1)-1;var n=this.attachmentNames[r];t.slots[this.slotIndex].setAttachment(n?t.getAttachmentBySlotIndex(this.slotIndex,n):null)}}},u.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},u.SkeletonData.prototype={defaultSkin:null,findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return slot[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSkin:function(t){for(var e=this.skins,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findAnimation:function(t){for(var e=this.animations,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null}},u.Skeleton=function(t){this.data=t,this.bones=[];for(var e=0,i=t.bones.length;i>e;e++){var r=t.bones[e],n=r.parent?this.bones[t.bones.indexOf(r.parent)]:null;this.bones.push(new u.Bone(r,n))}this.slots=[],this.drawOrder=[];for(var e=0,i=t.slots.length;i>e;e++){var a=t.slots[e],s=this.bones[t.bones.indexOf(a.boneData)],o=new u.Slot(a,this,s);this.slots.push(o),this.drawOrder.push(o)}},u.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var t=this.flipX,e=this.flipY,i=this.bones,r=0,n=i.length;n>r;r++)i[r].updateWorldTransform(t,e)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var t=this.bones,e=0,i=t.length;i>e;e++)t[e].setToSetupPose()},setSlotsToSetupPose:function(){for(var t=this.slots,e=0,i=t.length;i>e;e++)t[e].setToSetupPose(e)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},setSkinByName:function(t){var e=this.data.findSkin(t);if(!e)throw"Skin not found: "+t;this.setSkin(e)},setSkin:function(t){this.skin&&t&&t._attachAll(this,this.skin),this.skin=t},getAttachmentBySlotName:function(t,e){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(t),e)},getAttachmentBySlotIndex:function(t,e){if(this.skin){var i=this.skin.getAttachment(t,e);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},setAttachment:function(t,e){for(var i=this.slots,r=0,n=i.size;n>r;r++){var a=i[r];if(a.data.name==t){var s=null;if(e&&(s=this.getAttachment(r,e),null==s))throw"Attachment not found: "+e+", for slot: "+t;return a.setAttachment(s),void 0}}throw"Slot not found: "+t},update:function(t){time+=t}},u.AttachmentType={region:0},u.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},u.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(t,e,i,r,n){var a=this.uvs;n?(a[2]=t,a[3]=r,a[4]=t,a[5]=e,a[6]=i,a[7]=e,a[0]=i,a[1]=r):(a[0]=t,a[1]=r,a[2]=t,a[3]=e,a[4]=i,a[5]=e,a[6]=i,a[7]=r)},updateOffset:function(){var t=this.width/this.regionOriginalWidth*this.scaleX,e=this.height/this.regionOriginalHeight*this.scaleY,i=-this.width/2*this.scaleX+this.regionOffsetX*t,r=-this.height/2*this.scaleY+this.regionOffsetY*e,n=i+this.regionWidth*t,a=r+this.regionHeight*e,s=this.rotation*Math.PI/180,o=Math.cos(s),h=Math.sin(s),l=i*o+this.x,u=i*h,c=r*o+this.y,d=r*h,p=n*o+this.x,f=n*h,g=a*o+this.y,v=a*h,m=this.offset;m[0]=l-d,m[1]=c+u,m[2]=l-v,m[3]=g+u,m[4]=p-v,m[5]=g+f,m[6]=p-d,m[7]=c+f},computeVertices:function(t,e,i,r){t+=i.worldX,e+=i.worldY;var n=i.m00,a=i.m01,s=i.m10,o=i.m11,h=this.offset;r[0]=h[0]*n+h[1]*a+t,r[1]=h[0]*s+h[1]*o+e,r[2]=h[2]*n+h[3]*a+t,r[3]=h[2]*s+h[3]*o+e,r[4]=h[4]*n+h[5]*a+t,r[5]=h[4]*s+h[5]*o+e,r[6]=h[6]*n+h[7]*a+t,r[7]=h[6]*s+h[7]*o+e}},u.AnimationStateData=function(t){this.skeletonData=t,this.animationToMixTime={}},u.AnimationStateData.prototype={setMixByName:function(t,e,i){var r=this.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;var n=this.skeletonData.findAnimation(e);if(!n)throw"Animation not found: "+e;this.setMix(r,n,i)},setMix:function(t,e,i){this.animationToMixTime[t.name+":"+e.name]=i},getMix:function(t,e){var i=this.animationToMixTime[t.name+":"+e.name];return i?i:0}},u.AnimationState=function(t){this.data=t,this.queue=[]},u.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(t){if(this.currentTime+=t,this.previousTime+=t,this.mixTime+=t,this.queue.length>0){var e=this.queue[0];this.currentTime>=e.delay&&(this._setAnimation(e.animation,e.loop),this.queue.shift())}},apply:function(t){if(this.current)if(this.previous){this.previous.apply(t,this.previousTime,this.previousLoop);var e=this.mixTime/this.mixDuration;e>=1&&(e=1,this.previous=null),this.current.mix(t,this.currentTime,this.currentLoop,e)}else this.current.apply(t,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(t,e){this.previous=null,t&&this.current&&(this.mixDuration=this.data.getMix(this.current,t),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=t,this.currentLoop=e,this.currentTime=0},setAnimationByName:function(t,e){var i=this.data.skeletonData.findAnimation(t);if(!i)throw"Animation not found: "+t;this.setAnimation(i,e)},setAnimation:function(t,e){this.queue.length=0,this._setAnimation(t,e)},addAnimationByName:function(t,e,i){var r=this.data.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;this.addAnimation(r,e,i)},addAnimation:function(t,e,i){var r={};if(r.animation=t,r.loop=e,!i||0>=i){var n=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;i=null!=n?n.duration-this.data.getMix(n,t)+(i||0):0}r.delay=i,this.queue.push(r)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},u.SkeletonJson=function(t){this.attachmentLoader=t},u.SkeletonJson.prototype={scale:1,readSkeletonData:function(t){for(var e=new u.SkeletonData,i=t.bones,r=0,n=i.length;n>r;r++){var a=i[r],s=null;if(a.parent&&(s=e.findBone(a.parent),!s))throw"Parent bone not found: "+a.parent;var o=new u.BoneData(a.name,s);o.length=(a.length||0)*this.scale,o.x=(a.x||0)*this.scale,o.y=(a.y||0)*this.scale,o.rotation=a.rotation||0,o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1,e.bones.push(o)}for(var h=t.slots,r=0,n=h.length;n>r;r++){var l=h[r],o=e.findBone(l.bone);if(!o)throw"Slot bone not found: "+l.bone;var c=new u.SlotData(l.name,o),d=l.color;d&&(c.r=u.SkeletonJson.toColor(d,0),c.g=u.SkeletonJson.toColor(d,1),c.b=u.SkeletonJson.toColor(d,2),c.a=u.SkeletonJson.toColor(d,3)),c.attachmentName=l.attachment,e.slots.push(c)}var p=t.skins;for(var f in p)if(p.hasOwnProperty(f)){var g=p[f],v=new u.Skin(f);for(var m in g)if(g.hasOwnProperty(m)){var x=e.findSlotIndex(m),b=g[m];for(var y in b)if(b.hasOwnProperty(y)){var T=this.readAttachment(v,y,b[y]);null!=T&&v.addAttachment(x,y,T)}}e.skins.push(v),"default"==v.name&&(e.defaultSkin=v)}var A=t.animations;for(var w in A)A.hasOwnProperty(w)&&this.readAnimation(w,A[w],e);return e},readAttachment:function(t,e,i){e=i.name||e;var r=u.AttachmentType[i.type||"region"],n=new u.RegionAttachment;return n.name=e,r==u.AttachmentType.region&&(n.x=(i.x||0)*this.scale,n.y=(i.y||0)*this.scale,n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1,n.rotation=i.rotation||0,n.width=(i.width||32)*this.scale,n.height=(i.height||32)*this.scale,n.updateOffset()),n},readAnimation:function(t,e,i){var r=[],n=0,a=e.bones;for(var s in a)if(a.hasOwnProperty(s)){var o=i.findBoneIndex(s);if(-1==o)throw"Bone not found: "+s;var h=a[s];for(var l in h)if(h.hasOwnProperty(l)){var c=h[l];if("rotate"==l){var d=new u.RotateTimeline(c.length);d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p,v.time,v.angle),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[2*d.getFrameCount()-2])}else{if("translate"!=l&&"scale"!=l)throw"Invalid timeline type for a bone: "+l+" ("+s+")";var d,m=1;"scale"==l?d=new u.ScaleTimeline(c.length):(d=new u.TranslateTimeline(c.length),m=this.scale),d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],x=(v.x||0)*m,b=(v.y||0)*m;d.setFrame(p,v.time,x,b),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[3*d.getFrameCount()-3])}}}var y=e.slots;for(var T in y)if(y.hasOwnProperty(T)){var A=y[T],w=i.findSlotIndex(T);for(var l in A)if(A.hasOwnProperty(l)){var c=A[l];if("color"==l){var d=new u.ColorTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],_=v.color,R=u.SkeletonJson.toColor(_,0),S=u.SkeletonJson.toColor(_,1),C=u.SkeletonJson.toColor(_,2),L=u.SkeletonJson.toColor(_,3);d.setFrame(p,v.time,R,S,C,L),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[5*d.getFrameCount()-5])}else{if("attachment"!=l)throw"Invalid timeline type for a slot: "+l+" ("+T+")";var d=new u.AttachmentTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p++,v.time,v.name)}r.push(d),n=Math.max(n,d.frames[Math.floor(d.getFrameCount())-1])}}}i.animations.push(new u.Animation(t,r,n))}},u.SkeletonJson.readCurve=function(t,e,i){var r=i.curve;r&&("stepped"==r?t.curves.setStepped(e):r instanceof Array&&t.curves.setCurve(e,r[0],r[1],r[2],r[3]))},u.SkeletonJson.toColor=function(t,e){if(8!=t.length)throw"Color hexidecimal length must be 8, recieved: "+t;return parseInt(t.substring(2*e,2),16)/255},u.Atlas=function(t,e){this.textureLoader=e,this.pages=[],this.regions=[];var i=new u.AtlasReader(t),r=[];r.length=4;for(var n=null;;){var a=i.readLine();if(null==a)break;if(a=i.trim(a),0==a.length)n=null;else if(n){var s=new u.AtlasRegion;s.name=a,s.page=n,s.rotate="true"==i.readValue(),i.readTuple(r);var o=parseInt(r[0]),h=parseInt(r[1]);i.readTuple(r);var l=parseInt(r[0]),c=parseInt(r[1]);s.u=o/n.width,s.v=h/n.height,s.rotate?(s.u2=(o+c)/n.width,s.v2=(h+l)/n.height):(s.u2=(o+l)/n.width,s.v2=(h+c)/n.height),s.x=o,s.y=h,s.width=Math.abs(l),s.height=Math.abs(c),4==i.readTuple(r)&&(s.splits=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],4==i.readTuple(r)&&(s.pads=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],i.readTuple(r))),s.originalWidth=parseInt(r[0]),s.originalHeight=parseInt(r[1]),i.readTuple(r),s.offsetX=parseInt(r[0]),s.offsetY=parseInt(r[1]),s.index=parseInt(i.readValue()),this.regions.push(s)}else{n=new u.AtlasPage,n.name=a,n.format=u.Atlas.Format[i.readValue()],i.readTuple(r),n.minFilter=u.Atlas.TextureFilter[r[0]],n.magFilter=u.Atlas.TextureFilter[r[1]];var d=i.readValue();n.uWrap=u.Atlas.TextureWrap.clampToEdge,n.vWrap=u.Atlas.TextureWrap.clampToEdge,"x"==d?n.uWrap=u.Atlas.TextureWrap.repeat:"y"==d?n.vWrap=u.Atlas.TextureWrap.repeat:"xy"==d&&(n.uWrap=n.vWrap=u.Atlas.TextureWrap.repeat),e.load(n,a),this.pages.push(n)}}},u.Atlas.prototype={findRegion:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},dispose:function(){for(var t=this.pages,e=0,i=t.length;i>e;e++)this.textureLoader.unload(t[e].rendererObject)},updateUVs:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++){var n=e[i];n.page==t&&(n.u=n.x/t.width,n.v=n.y/t.height,n.rotate?(n.u2=(n.x+n.height)/t.width,n.v2=(n.y+n.width)/t.height):(n.u2=(n.x+n.width)/t.width,n.v2=(n.y+n.height)/t.height))}}},u.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},u.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},u.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},u.AtlasPage=function(){},u.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},u.AtlasRegion=function(){},u.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},u.AtlasReader=function(t){this.lines=t.split(/\r\n|\r|\n/)},u.AtlasReader.prototype={index:0,trim:function(t){return t.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw"Invalid line: "+t;return this.trim(t.substring(e+1))},readTuple:function(t){var e=this.readLine(),i=e.indexOf(":");if(-1==i)throw"Invalid line: "+e;for(var r=0,n=i+1;3>r;r++){var a=e.indexOf(",",n);if(-1==a){if(0==r)throw"Invalid line: "+e;break}t[r]=this.trim(e.substr(n,a-n)),n=a+1}return t[r]=this.trim(e.substring(n)),r+1}},u.AtlasAttachmentLoader=function(t){this.atlas=t},u.AtlasAttachmentLoader.prototype={newAttachment:function(t,e,i){switch(e){case u.AttachmentType.region:var r=this.atlas.findRegion(i);if(!r)throw"Region not found in atlas: "+i+" ("+e+")";var n=new u.RegionAttachment(i);return n.rendererObject=r,n.setUVs(r.u,r.v,r.u2,r.v2,r.rotate),n.regionOffsetX=r.offsetX,n.regionOffsetY=r.offsetY,n.regionWidth=r.width,n.regionHeight=r.height,n.regionOriginalWidth=r.originalWidth,n.regionOriginalHeight=r.originalHeight,n}throw"Unknown attachment type: "+e}},n.AnimCache={},u.Bone.yDown=!0,n.CustomRenderable=function(){n.DisplayObject.call(this)},n.CustomRenderable.constructor=n.CustomRenderable,n.CustomRenderable.prototype=Object.create(n.DisplayObject.prototype),n.CustomRenderable.prototype.renderCanvas=function(){},n.CustomRenderable.prototype.initWebGL=function(){},n.CustomRenderable.prototype.renderWebGL=function(){},n.BaseTextureCache={},n.texturesToUpdate=[],n.texturesToDestroy=[],n.BaseTexture=function(t){if(n.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,n.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);this._powerOf2=!1}},n.BaseTexture.constructor=n.BaseTexture,n.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,n.texturesToDestroy.push(this)},n.BaseTexture.fromImage=function(t,e){var i=n.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new n.BaseTexture(r),n.BaseTextureCache[t]=i}return i},n.TextureCache={},n.FrameCache={},n.Texture=function(t,e){if(n.EventTarget.call(this),e||(this.noFrame=!0,e=new n.Rectangle(0,0,1,1)),this.trim=new n.Point,t instanceof n.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new n.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},n.Texture.constructor=n.Texture,n.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new n.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},n.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},n.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,n.Texture.frameUpdates.push(this)},n.Texture.fromImage=function(t,e){var i=n.TextureCache[t];return i||(i=new n.Texture(n.BaseTexture.fromImage(t,e)),n.TextureCache[t]=i),i},n.Texture.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},n.Texture.fromCanvas=function(t){var e=new n.BaseTexture(t);return new n.Texture(e)},n.Texture.addTextureToCache=function(t,e){n.TextureCache[e]=t},n.Texture.removeTextureFromCache=function(t){var e=n.TextureCache[t];return n.TextureCache[t]=null,e},n.Texture.frameUpdates=[],n.RenderTexture=function(t,e){n.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=n.mat3.create(),this.frame=new n.Rectangle(0,0,this.width,this.height),n.gl?this.initWebGL():this.initCanvas()},n.RenderTexture.constructor=n.RenderTexture,n.RenderTexture.prototype=Object.create(n.Texture.prototype),n.RenderTexture.prototype.initWebGL=function(){var t=n.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new n.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new n.Point(this.width/2,this.height/2),this.projectionMatrix=n.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},n.RenderTexture.prototype.initCanvas=function(){this.renderer=new n.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new n.BaseTexture(this.renderer.view),this.frame=new n.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},n.RenderTexture.prototype.renderWebGL=function(t,e){var i=n.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=n.mat3.create(),t.worldTransform[4]=-1,t.worldTransform[5]=2*this.projection.y;for(var a=0,s=r.length;s>a;a++)r[a].updateTransform();var o=t.__renderGroup;o?t==o.root?o.render(this.projection):o.renderSpecific(t,this.projection):(this.renderGroup||(this.renderGroup=new n.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projection))},n.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=n.mat3.create();for(var r=0,a=i.length;a>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),n.texturesToUpdate.push(this.baseTexture)},n.AssetLoader=function(t){n.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:n.ImageLoader,jpeg:n.ImageLoader,png:n.ImageLoader,gif:n.ImageLoader,json:n.JsonLoader,anim:n.SpineLoader,xml:n.BitmapFontLoader,fnt:n.BitmapFontLoader}},n.AssetLoader.constructor=n.AssetLoader,n.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),n=this.loadersByType[r];if(!n)throw Error(r+" is an unsupported file type");var a=new n(i,this.crossorigin);a.addEventListener("loaded",function(){t.onAssetLoaded()}),a.load()}},n.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},n.JsonLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.crossorigin=e,this.loaded=!1},n.JsonLoader.constructor=n.JsonLoader,n.JsonLoader.prototype.load=function(){this.ajaxRequest=new l;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},n.JsonLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState)if(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))if(this.json=JSON.parse(this.ajaxRequest.responseText),this.json.frames){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0))}i.load()}else if(this.json.bones){var o=new u.SkeletonJson,h=o.readSkeletonData(this.json);n.AnimCache[this.url]=h,this.onLoaded()}else this.onLoaded();else this.onError()},n.JsonLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},n.JsonLoader.prototype.onError=function(){this.dispatchEvent({type:"error",content:this})},n.SpriteSheetLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},n.SpriteSheetLoader.constructor=n.SpriteSheetLoader,n.SpriteSheetLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpriteSheetLoader.prototype.onJSONLoaded=function(){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0)) }i.load()},n.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.ImageLoader=function(t,e){n.EventTarget.call(this),this.texture=n.Texture.fromImage(t,e)},n.ImageLoader.constructor=n.ImageLoader,n.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},n.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.BitmapFontLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},n.BitmapFontLoader.constructor=n.BitmapFontLoader,n.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},n.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new n.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],a=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(a.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var s=this.ajaxRequest.responseXML.getElementsByTagName("char"),o=0;s.length>o;o++){var h=parseInt(s[o].attributes.getNamedItem("id").nodeValue,10),l={x:parseInt(s[o].attributes.getNamedItem("x").nodeValue,10),y:parseInt(s[o].attributes.getNamedItem("y").nodeValue,10),width:parseInt(s[o].attributes.getNamedItem("width").nodeValue,10),height:parseInt(s[o].attributes.getNamedItem("height").nodeValue,10)};n.TextureCache[h]=new n.Texture(this.texture,l),i.chars[h]={xOffset:parseInt(s[o].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(s[o].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(s[o].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{},texture:new n.Texture(this.texture,l)}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(o=0;u.length>o;o++){var c=parseInt(u[o].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[o].attributes.getNamedItem("second").nodeValue,10),p=parseInt(u[o].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=p}n.BitmapText.fonts[i.font]=i;var f=this;e.addEventListener("loaded",function(){f.onLoaded()}),e.load()}},n.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.SpineLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.crossorigin=e,this.loaded=!1},n.SpineLoader.constructor=n.SpineLoader,n.SpineLoader.prototype.load=function(){new n.JsonLoader(this.url,this.crossorigin),jsonLoader.addEventListener("loaded",function(t){scope.json=t.content.json,scope.onJSONLoaded()}),jsonLoader.load()},n.SpineLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpineLoader.prototype.onJSONLoaded=function(){var t=new u.SkeletonJson,e=t.readSkeletonData(this.json);n.AnimCache[this.url]=e,this.onLoaded()},n.SpineLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports.PIXI=n):i.PIXI=n}).call(this); \ No newline at end of file diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.js b/bin/pixi.js index 51d6836..96307b0 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -9,7 +9,7 @@ * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; +(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[],t._webGL.indices=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; if(0!=r.length){var a=new n.Point(r[0],r[1]),s=new n.Point(r[r.length-2],r[r.length-1]);if(a.x==s.x&&a.y==s.y){r.pop(),r.pop(),s=new n.Point(r[r.length-2],r[r.length-1]);var o=s.x+.5*(a.x-s.x),h=s.y+.5*(a.y-s.y);r.unshift(o,h),r.push(o,h)}var l,u,c,d,p,f,g,v,m,x,b,y,T,A,w,_,R,S,C,L,E,B=i.points,F=i.indices,P=r.length/2,G=r.length,I=B.length/6,D=t.lineWidth/2,M=e(t.lineColor),O=t.lineAlpha,W=M[0]*O,U=M[1]*O,j=M[2]*O;l=r[0],u=r[1],c=r[2],d=r[3],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(l-g,u-v,W,U,j,O),B.push(l+g,u+v,W,U,j,O);for(var k=1;P-1>k;k++)l=r[2*(k-1)],u=r[2*(k-1)+1],c=r[2*k],d=r[2*k+1],p=r[2*(k+1)],f=r[2*(k+1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,m=-(d-f),x=c-p,E=Math.sqrt(m*m+x*x),m/=E,x/=E,m*=D,x*=D,T=-v+u-(-v+d),A=-g+c-(-g+l),w=(-g+l)*(-v+d)-(-g+c)*(-v+u),_=-x+f-(-x+d),R=-m+c-(-m+p),S=(-m+p)*(-x+d)-(-m+c)*(-x+f),C=T*R-_*A,0==C&&(C+=1),px=(A*S-R*w)/C,py=(_*w-T*S)/C,L=(px-c)*(px-c)+(py-d)+(py-d),L>19600?(b=g-m,y=v-x,E=Math.sqrt(b*b+y*y),b/=E,y/=E,b*=D,y*=D,B.push(c-b,d-y),B.push(W,U,j,O),B.push(c+b,d+y),B.push(W,U,j,O),B.push(c-b,d-y),B.push(W,U,j,O),G++):(B.push(px,py),B.push(W,U,j,O),B.push(c-(px-c),d-(py-d)),B.push(W,U,j,O));l=r[2*(P-2)],u=r[2*(P-2)+1],c=r[2*(P-1)],d=r[2*(P-1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(c-g,d-v),B.push(W,U,j,O),B.push(c+g,d+v),B.push(W,U,j,O),F.push(I);for(var k=0;G>k;k++)F.push(I++);F.push(I-1)}},n.WebGLGraphics.buildPoly=function(t,i){var r=t.points;if(!(6>r.length)){for(var a=i.points,s=i.indices,o=r.length/2,h=e(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=n.PolyK.Triangulate(r),f=a.length/6,g=0;p.length>g;g+=3)s.push(p[g]+f),s.push(p[g]+f),s.push(p[g+1]+f),s.push(p[g+2]+f),s.push(p[g+2]+f);for(var g=0;o>g;g++)a.push(r[2*g],r[2*g+1],u,c,d,l)}},n._defaultFrame=new n.Rectangle(0,0,1,1),n.gl,n.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var a=this;this.view.addEventListener("webglcontextlost",function(t){a.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){a.handleContextRestored(t)},!1),this.batchs=[];try{n.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!0,premultipliedAlpha:!1})}catch(s){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}n.initPrimitiveShader(),n.initDefaultShader(),n.initDefaultStripShader(),n.activateDefaultShader();var o=this.gl;n.WebGLRenderer.gl=o,this.batch=new n.WebGLBatch(o),o.disable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.enable(o.BLEND),o.colorMask(!0,!0,!0,this.transparent),n.projection=new n.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new n.WebGLRenderGroup(this.gl)},n.WebGLRenderer.constructor=n.WebGLRenderer,n.WebGLRenderer.getBatch=function(){return 0==n._batchs.length?new n.WebGLBatch(n.WebGLRenderer.gl):n._batchs.pop()},n.WebGLRenderer.returnBatch=function(t){t.clean(),n._batchs.push(t)},n.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),n.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],!this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(n.projection),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0){for(var i=0;n.Texture.frameUpdates.length>i;i++)n.Texture.frameUpdates[i].updateFrame=!1;n.Texture.frameUpdates=[]}}},n.WebGLRenderer.updateTextures=function(){for(var t=0;n.texturesToUpdate.length>t;t++)this.updateTexture(n.texturesToUpdate[t]);for(var t=0;n.texturesToDestroy.length>t;t++)this.destroyTexture(n.texturesToDestroy[t]);n.texturesToUpdate=[],n.texturesToDestroy=[]},n.WebGLRenderer.updateTexture=function(t){var e=n.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},n.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},n.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),n.projection.x=this.width/2,n.projection.y=this.height/2},n.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},n.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;n.TextureCache.length>t;t++)this.updateTexture(n.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;n._restoreBatchs(this.gl),this.contextLost=!1},n._batchs=[],n._getBatch=function(t){return 0==n._batchs.length?new n.WebGLBatch(t):n._batchs.pop()},n._returnBatch=function(t){t.clean(),n._batchs.push(t)},n._restoreBatchs=function(t){for(var e=0;n._batchs.length>e;e++)n._batchs[e].restoreLostContext(t)},n.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=n.blendModes.NORMAL,this.dynamicSize=1},n.WebGLBatch.constructor=n.WebGLBatch,n.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},n.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},n.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},n.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},n.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},n.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},n.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new n.WebGLBatch(this.gl);e.init(t),e.texture=this.texture,e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},n.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},n.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,n=4*i;this.indices[r+0]=n+0,this.indices[r+1]=n+1,this.indices[r+2]=n+2,this.indices[r+3]=n+0,this.indices[r+4]=n+2,this.indices[r+5]=n+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},n.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof n.WebGLBatch?this.batchs[r].render():i instanceof n.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof n.Strip?i.visible&&this.renderStrip(i,t):i instanceof n.Graphics&&i.visible&&n.WebGLGraphics.renderGraphics(i,t)},n.WebGLRenderGroup.prototype.renderSpecific=function(t,e){n.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniform2f(n.shaderProgram.projectionVector,e.x,e.y);var r,a,s,o,h=t.renderable?t:this.getNextRenderable(t),l=h.batch;if(h instanceof n.Sprite){l=h.batch;var u=l.head;if(u==h)r=0;else for(r=1;u.__next!=h;)r++,u=u.__next}else l=h;for(var c,d=t,p=t;p.children.length>0;)p=p.children[p.children.length-1],p.renderable&&(d=p);if(d instanceof n.Sprite){c=d.batch;var u=c.head;if(u==d)s=0;else for(s=1;u.__next!=d;)s++,u=u.__next}else c=d;if(l==c)return l instanceof n.WebGLBatch?l.render(r,s+1):this.renderSpecial(l),void 0;a=this.batchs.indexOf(l),o=this.batchs.indexOf(c),l instanceof n.WebGLBatch?l.render(r):this.renderSpecial(l);for(var f=a+1;o>f;f++)renderable=this.batchs[f],renderable instanceof n.WebGLBatch?this.batchs[f].render():this.renderSpecial(renderable);c instanceof n.WebGLBatch?c.render(0,s+1):this.renderSpecial(c)},n.WebGLRenderGroup.prototype.renderSpecial=function(t){t instanceof n.TilingSprite?t.visible&&this.renderTilingSprite(t,projectionMatrix):t instanceof n.Strip?t.visible&&this.renderStrip(t,projectionMatrix):t instanceof n.CustomRenderable?t.visible&&t.renderWebGL(this,projectionMatrix):t instanceof n.Graphics&&t.visible&&n.WebGLGraphics.renderGraphics(t)},n.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var n=i[r];n.worldVisible=n.visible&&e,n.textureChange&&(n.textureChange=!1,n.worldVisible&&(this.removeDisplayObject(n),this.addDisplayObject(n))),n.children.length>0&&this.checkVisibility(n,n.worldVisible)}},n.WebGLRenderGroup.prototype.updateTexture=function(t){if(1==t.batch.length)return t.batch.texture=t.texture.baseTexture,void 0;if(t.batch.texture!=t.texture.baseTexture)if(t.batch.head==t){var e=t.batch,i=this.batchs.indexOf(e),r=this.batchs[i-1];if(e.remove(t),r)if(r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)r.insertAfter(t,r.tail);else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i-1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(0,0,a)}}else if(t.batch.tail==t){var e=t.batch,i=this.batchs.indexOf(e),s=this.batchs[i+1];if(e.remove(t),s){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,s.head),void 0;var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i+1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.push(a)}}else{var e=t.batch,o=e.split(t);o.remove(t);var a=n.WebGLRenderer.getBatch(),i=this.batchs.indexOf(e);a.init(t),this.batchs.splice(i+1,0,a,o)}},n.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof n.Sprite){var r,a;if(e instanceof n.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof n.Sprite){if(a=i.batch){if(a.texture==t.texture.baseTexture&&a.blendMode==t.blendMode)return a.insertBefore(t,i),void 0;if(a==r){var s=r.split(i),o=n.WebGLRenderer.getBatch(),h=this.batchs.indexOf(r);return o.init(t),this.batchs.splice(h+1,0,o,s),void 0}}}else a=i;var o=n.WebGLRenderer.getBatch();if(o.init(t),r){var h=this.batchs.indexOf(r);this.batchs.splice(h+1,0,o)}else this.batchs.push(o)}else t instanceof n.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof n.Strip?(this.initStrip(t),this.batchs.push(t)):t instanceof n.Graphics&&this.batchs.push(t);this.batchUpdate=!0}},n.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},n.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof n.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof n.WebGLBatch&&this.batchs[r+1]instanceof n.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),n.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e)}}},n.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},n.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},n.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=n.shaderProgram;i.useProgram(n.stripShaderProgram);var a=n.mat3.clone(t.worldTransform);n.mat3.transpose(a),i.uniformMatrix3fv(n.stripShaderProgram.translationMatrix,!1,a),i.uniform2f(n.stripShaderProgram.projectionVector,e.x,e.y),i.uniform1f(n.stripShaderProgram.alpha,t.worldAlpha),t.blendMode==n.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.useProgram(n.shaderProgram)},n.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;n.shaderProgram;var r=t.tilePosition,a=t.tileScale,s=r.x/t.texture.baseTexture.width,o=r.y/t.texture.baseTexture.height,h=t.width/t.texture.baseTexture.width/a.x,l=t.height/t.texture.baseTexture.height/a.y;t.uvs[0]=0-s,t.uvs[1]=0-o,t.uvs[2]=1*h-s,t.uvs[3]=0-o,t.uvs[4]=1*h-s,t.uvs[5]=1*l-o,t.uvs[6]=0-s,t.uvs[7]=1*l-o,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},n.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},n.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},n.CanvasRenderer.constructor=n.CanvasRenderer,n.CanvasRenderer.prototype.render=function(t){n.texturesToUpdate=[],n.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0&&(n.Texture.frameUpdates=[])},n.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},n.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof n.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof n.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof n.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof n.CustomRenderable?t.renderCanvas(this):t instanceof n.Graphics&&(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),n.CanvasGraphics.renderGraphics(t,i));if(t.children)for(var a=0;t.children.length>a;a++)this.renderDisplayObject(t.children[a]);this.context.setTransform(1,0,0,1,0,0)}},n.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var n=1;r-2>n;n++){var a=2*n,s=i[a],o=i[a+2],h=i[a+4],l=i[a+1],u=i[a+3],c=i[a+5];e.moveTo(s,l),e.lineTo(o,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},n.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;e.globalAlpha=t.worldAlpha,t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},n.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,n=i.length/2;this.count++;for(var a=1;n-2>a;a++){var s=2*a,o=i[s],h=i[s+2],l=i[s+4],u=i[s+1],c=i[s+3],d=i[s+5],p=r[s]*t.texture.width,f=r[s+2]*t.texture.width,g=r[s+4]*t.texture.width,v=r[s+1]*t.texture.height,m=r[s+3]*t.texture.height,x=r[s+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var b=p*m+v*g+f*x-m*g-v*f-p*x,y=o*m+v*l+h*x-m*l-v*h-o*x,T=p*h+o*g+f*l-h*g-o*f-p*l,A=p*m*l+v*h*g+o*f*x-o*m*g-v*f*l-p*h*x,w=u*m+v*d+c*x-m*d-v*c-u*x,_=p*c+u*g+f*d-c*g-u*f-p*d,R=p*m*d+v*c*g+u*f*x-u*m*g-v*f*d-p*c*x;e.transform(y/b,w/b,T/b,_/b,A/b,R/b),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},n.CanvasGraphics=function(){},n.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,r=0;t.graphicsData.length>r;r++){var a=t.graphicsData[r],s=a.points;if(e.strokeStyle=color="#"+("00000"+(0|a.lineColor).toString(16)).substr(-6),e.lineWidth=a.lineWidth,a.type==n.Graphics.POLY){e.beginPath(),e.moveTo(s[0],s[1]);for(var o=1;s.length/2>o;o++)e.lineTo(s[2*o],s[2*o+1]);s[0]==s[s.length-2]&&s[1]==s[s.length-1]&&e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}else if(a.type==n.Graphics.RECT)a.fillColor&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fillRect(s[0],s[1],s[2],s[3])),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.strokeRect(s[0],s[1],s[2],s[3]));else if(a.type==n.Graphics.CIRC)e.beginPath(),e.arc(s[0],s[1],s[2],0,2*Math.PI),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke());else if(a.type==n.Graphics.ELIP){var h=a.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,v=c+l,m=d+u,x=c+l/2,b=d+u/2;e.moveTo(c,b),e.bezierCurveTo(c,b-g,x-f,d,x,d),e.bezierCurveTo(x+f,d,v,b-g,v,b),e.bezierCurveTo(v,b+g,x+f,m,x,m),e.bezierCurveTo(x-f,m,c,b+g,c,b),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}}},n.Graphics=function(){n.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=2,this.lineColor="#FF0000",this.graphicsData=[],this.currentPath={points:[]}},n.Graphics.constructor=n.Graphics,n.Graphics.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Graphics.prototype.lineStyle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=void 0==i?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.graphicsData.push(this.currentPath)},n.Graphics.prototype.moveTo=function(t,e){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath)},n.Graphics.prototype.lineTo=function(t,e){this.currentPath.points.push(t,e),this.dirty=!0},n.Graphics.prototype.beginFill=function(t,e){this.filling=!0,this.fillColor=t||0,this.fillAlpha=e||1},n.Graphics.prototype.endFill=function(){this.filling=!1,this.fillColor=null,this.fillAlpha=1},n.Graphics.prototype.drawRect=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawCircle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:n.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawElipse=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.clear=function(){this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[]},n.Graphics.POLY=0,n.Graphics.RECT=1,n.Graphics.CIRC=2,n.Graphics.ELIP=3,n.Strip=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=n.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Strip.constructor=n.Strip,n.Strip.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},n.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Rope=function(t,e){n.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},n.Rope.constructor=n.Rope,n.Rope.prototype=Object.create(n.Strip.prototype),n.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,n=t[0],a=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var s=t.length,o=1;s>o;o++){var a=t[o],h=4*o,l=o/(s-1);o%2?(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1):(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,n=a}}},n.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],a={x:0,y:0},s=t[0];this.count-=.2,i[0]=s.x+a.x,i[1]=s.y+a.y,i[2]=s.x-a.x,i[3]=s.y-a.y;for(var o=t.length,h=1;o>h;h++){var s=t[h],l=4*h;e=t.length-1>h?t[h+1]:s,a.y=-(e.x-r.x),a.x=e.y-r.y;var u=10*(1-h/(o-1));u>1&&(u=1);var c=Math.sqrt(a.x*a.x+a.y*a.y),d=this.texture.height/2;a.x/=c,a.y/=c,a.x*=d,a.y*=d,i[l]=s.x+a.x,i[l+1]=s.y+a.y,i[l+2]=s.x-a.x,i[l+3]=s.y-a.y,r=s}n.DisplayObjectContainer.prototype.updateTransform.call(this)}},n.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0 },n.TilingSprite=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new n.Point(1,1),this.tilePosition=new n.Point(0,0),this.blendMode=n.blendModes.NORMAL},n.TilingSprite.constructor=n.TilingSprite,n.TilingSprite.prototype=Object.create(n.DisplayObjectContainer.prototype),n.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},n.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Spine=function(t){if(n.DisplayObjectContainer.call(this),this.spineData=n.AnimCache[t],!this.spineData)throw Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+t);this.count=0,this.sprites=[],this.skeleton=new u.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new u.AnimationStateData(this.spineData),this.state=new u.AnimationState(this.stateData);for(var e=0;this.skeleton.drawOrder.length>e;e++){var i=this.skeleton.drawOrder[e].data.attachmentName;n.TextureCache[i]||(i+=".png");var r=new n.Sprite(n.Texture.fromFrame(i));r.anchor.x=r.anchor.y=.5,this.addChild(r),this.sprites.push(r)}},n.Spine.constructor=n.Spine,n.Spine.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Spine.prototype.updateTransform=function(){this.state.update(1/60),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var t=0;this.skeleton.drawOrder.length>t;t++){var e=this.skeleton.drawOrder[t],i=e.bone.worldX+e.attachment.x*e.bone.m00+e.attachment.y*e.bone.m01+.5*e.attachment.width,r=e.bone.worldY+e.attachment.x*e.bone.m10+e.attachment.y*e.bone.m11+.5*e.attachment.height;if(e.cacheName!=e.attachment.name){var a=e.attachment.name;n.TextureCache[a]||(a+=".png"),this.sprites[t].setTexture(n.TextureCache[a]),e.cacheName=e.attachment.name}i+=-(e.attachment.width*(e.bone.worldScaleX+e.attachment.scaleX-1)>>1),r+=-(e.attachment.height*(e.bone.worldScaleY+e.attachment.scaleY-1)>>1),this.sprites[t].position.x=i,this.sprites[t].position.y=r,this.sprites[t].rotation=-(e.bone.worldRotation+e.attachment.rotation)*(Math.PI/180)}n.DisplayObjectContainer.prototype.updateTransform.call(this)};var u={};u.BoneData=function(t,e){this.name=t,this.parent=e},u.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},u.SlotData=function(t,e){this.name=t,this.boneData=e},u.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},u.Bone=function(t,e){this.data=t,this.parent=e,this.setToSetupPose()},u.Bone.yDown=!1,u.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(t,e){var i=this.parent;null!=i?(this.worldX=this.x*i.m00+this.y*i.m01+i.worldX,this.worldY=this.x*i.m10+this.y*i.m11+i.worldY,this.worldScaleX=i.worldScaleX*this.scaleX,this.worldScaleY=i.worldScaleY*this.scaleY,this.worldRotation=i.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var r=this.worldRotation*Math.PI/180,n=Math.cos(r),a=Math.sin(r);this.m00=n*this.worldScaleX,this.m10=a*this.worldScaleX,this.m01=-a*this.worldScaleY,this.m11=n*this.worldScaleY,t&&(this.m00=-this.m00,this.m01=-this.m01),e&&(this.m10=-this.m10,this.m11=-this.m11),u.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY}},u.Slot=function(t,e,i){this.data=t,this.skeleton=e,this.bone=i,this.setToSetupPose()},u.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(t){this.attachment=t,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(t){this._attachmentTime=this.skeleton.time-t},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var t=this.data;this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a;for(var e=this.skeleton.data.slots,i=0,r=e.length;r>i;i++)if(e[i]==t){this.setAttachment(t.attachmentName?this.skeleton.getAttachmentBySlotIndex(i,t.attachmentName):null);break}}},u.Skin=function(t){this.name=t,this.attachments={}},u.Skin.prototype={addAttachment:function(t,e,i){this.attachments[t+":"+e]=i},getAttachment:function(t,e){return this.attachments[t+":"+e]},_attachAll:function(t,e){for(var i in e.attachments){var r=i.indexOf(":"),n=parseInt(i.substring(0,r)),a=i.substring(r+1),s=t.slots[n];if(s.attachment&&s.attachment.name==a){var o=this.getAttachment(n,a);o&&s.setAttachment(o)}}}},u.Animation=function(t,e,i){this.name=t,this.timelines=e,this.duration=i},u.Animation.prototype={apply:function(t,e,i){i&&0!=this.duration&&(e%=this.duration);for(var r=this.timelines,n=0,a=r.length;a>n;n++)r[n].apply(t,e,1)},mix:function(t,e,i,r){i&&0!=this.duration&&(e%=this.duration);for(var n=this.timelines,a=0,s=n.length;s>a;a++)n[a].apply(t,e,r)}},u.binarySearch=function(t,e,i){var r=0,n=Math.floor(t.length/i)-2;if(0==n)return i;for(var a=n>>>1;;){if(e>=t[(a+1)*i]?r=a+1:n=a,r==n)return(r+1)*i;a=r+n>>>1}},u.linearSearch=function(t,e,i){for(var r=0,n=t.length-i;n>=r;r+=i)if(t[r]>e)return r;return-1},u.Curves=function(t){this.curves=[],this.curves.length=6*(t-1)},u.Curves.prototype={setLinear:function(t){this.curves[6*t]=0},setStepped:function(t){this.curves[6*t]=-1},setCurve:function(t,e,i,r,n){var a=.1,s=a*a,o=s*a,h=3*a,l=3*s,u=6*s,c=6*o,d=2*-e+r,p=2*-i+n,f=3*(e-r)+1,g=3*(i-n)+1,v=6*t,m=this.curves;m[v]=e*h+d*l+f*o,m[v+1]=i*h+p*l+g*o,m[v+2]=d*u+f*c,m[v+3]=p*u+g*c,m[v+4]=f*c,m[v+5]=g*c},getCurvePercent:function(t,e){e=0>e?0:e>1?1:e;var i=6*t,r=this.curves,n=r[i];if(!n)return e;if(-1==n)return 0;for(var a=r[i+1],s=r[i+2],o=r[i+3],h=r[i+4],l=r[i+5],u=n,c=a,d=8;;){if(u>=e){var p=u-n,f=c-a;return f+(c-f)*(e-p)/(u-p)}if(0==d)break;d--,n+=s,a+=o,s+=h,o+=l,u+=n,c+=a}return c+(1-c)*(e-u)/(1-u)}},u.RotateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=2*t},u.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){t*=2,this.frames[t]=e,this.frames[t+1]=i},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-2]){for(var a=n.data.rotation+r[r.length-1]-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;return n.rotation+=a*i,void 0}var s=u.binarySearch(r,e,2),o=r[s-1],h=r[s],l=1-(e-h)/(r[s-2]-h);l=this.curves.getCurvePercent(s/2-1,l);for(var a=r[s+1]-o;a>180;)a-=360;for(;-180>a;)a+=360;for(a=n.data.rotation+(o+a*l)-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;n.rotation+=a*i}}},u.TranslateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.x+=(n.data.x+r[r.length-2]-n.x)*i,n.y+=(n.data.y+r[r.length-1]-n.y)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.x+=(n.data.x+s+(r[a+1]-s)*l-n.x)*i,n.y+=(n.data.y+o+(r[a+2]-o)*l-n.y)*i}}},u.ScaleTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.scaleX+=(n.data.scaleX-1+r[r.length-2]-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+r[r.length-1]-n.scaleY)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.scaleX+=(n.data.scaleX-1+s+(r[a+1]-s)*l-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+o+(r[a+2]-o)*l-n.scaleY)*i}}},u.ColorTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=5*t},u.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e){t*=5,this.frames[t]=e,this.frames[t+1]=r,this.frames[t+2]=g,this.frames[t+3]=b,this.frames[t+4]=a},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.slots[this.slotIndex];if(e>=r[r.length-5]){var a=r.length-1;return n.r=r[a-3],n.g=r[a-2],n.b=r[a-1],n.a=r[a],void 0}var s=u.binarySearch(r,e,5),o=r[s-4],h=r[s-3],l=r[s-2],c=r[s-1],d=r[s],p=1-(e-d)/(r[s-5]-d);p=this.curves.getCurvePercent(s/5-1,p);var f=o+(r[s+1]-o)*p,g=h+(r[s+2]-h)*p,v=l+(r[s+3]-l)*p,m=c+(r[s+4]-c)*p;1>i?(n.r+=(f-n.r)*i,n.g+=(g-n.g)*i,n.b+=(v-n.b)*i,n.a+=(m-n.a)*i):(n.r=f,n.g=g,n.b=v,n.a=m)}}},u.AttachmentTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=t,this.attachmentNames=[],this.attachmentNames.length=t},u.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){this.frames[t]=e,this.attachmentNames[t]=i},apply:function(t,e){var i=this.frames;if(!(i[0]>e)){var r;r=e>=i[i.length-1]?i.length-1:u.binarySearch(i,e,1)-1;var n=this.attachmentNames[r];t.slots[this.slotIndex].setAttachment(n?t.getAttachmentBySlotIndex(this.slotIndex,n):null)}}},u.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},u.SkeletonData.prototype={defaultSkin:null,findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return slot[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSkin:function(t){for(var e=this.skins,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findAnimation:function(t){for(var e=this.animations,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null}},u.Skeleton=function(t){this.data=t,this.bones=[];for(var e=0,i=t.bones.length;i>e;e++){var r=t.bones[e],n=r.parent?this.bones[t.bones.indexOf(r.parent)]:null;this.bones.push(new u.Bone(r,n))}this.slots=[],this.drawOrder=[];for(var e=0,i=t.slots.length;i>e;e++){var a=t.slots[e],s=this.bones[t.bones.indexOf(a.boneData)],o=new u.Slot(a,this,s);this.slots.push(o),this.drawOrder.push(o)}},u.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var t=this.flipX,e=this.flipY,i=this.bones,r=0,n=i.length;n>r;r++)i[r].updateWorldTransform(t,e)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var t=this.bones,e=0,i=t.length;i>e;e++)t[e].setToSetupPose()},setSlotsToSetupPose:function(){for(var t=this.slots,e=0,i=t.length;i>e;e++)t[e].setToSetupPose(e)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},setSkinByName:function(t){var e=this.data.findSkin(t);if(!e)throw"Skin not found: "+t;this.setSkin(e)},setSkin:function(t){this.skin&&t&&t._attachAll(this,this.skin),this.skin=t},getAttachmentBySlotName:function(t,e){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(t),e)},getAttachmentBySlotIndex:function(t,e){if(this.skin){var i=this.skin.getAttachment(t,e);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},setAttachment:function(t,e){for(var i=this.slots,r=0,n=i.size;n>r;r++){var a=i[r];if(a.data.name==t){var s=null;if(e&&(s=this.getAttachment(r,e),null==s))throw"Attachment not found: "+e+", for slot: "+t;return a.setAttachment(s),void 0}}throw"Slot not found: "+t},update:function(t){time+=t}},u.AttachmentType={region:0},u.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},u.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(t,e,i,r,n){var a=this.uvs;n?(a[2]=t,a[3]=r,a[4]=t,a[5]=e,a[6]=i,a[7]=e,a[0]=i,a[1]=r):(a[0]=t,a[1]=r,a[2]=t,a[3]=e,a[4]=i,a[5]=e,a[6]=i,a[7]=r)},updateOffset:function(){var t=this.width/this.regionOriginalWidth*this.scaleX,e=this.height/this.regionOriginalHeight*this.scaleY,i=-this.width/2*this.scaleX+this.regionOffsetX*t,r=-this.height/2*this.scaleY+this.regionOffsetY*e,n=i+this.regionWidth*t,a=r+this.regionHeight*e,s=this.rotation*Math.PI/180,o=Math.cos(s),h=Math.sin(s),l=i*o+this.x,u=i*h,c=r*o+this.y,d=r*h,p=n*o+this.x,f=n*h,g=a*o+this.y,v=a*h,m=this.offset;m[0]=l-d,m[1]=c+u,m[2]=l-v,m[3]=g+u,m[4]=p-v,m[5]=g+f,m[6]=p-d,m[7]=c+f},computeVertices:function(t,e,i,r){t+=i.worldX,e+=i.worldY;var n=i.m00,a=i.m01,s=i.m10,o=i.m11,h=this.offset;r[0]=h[0]*n+h[1]*a+t,r[1]=h[0]*s+h[1]*o+e,r[2]=h[2]*n+h[3]*a+t,r[3]=h[2]*s+h[3]*o+e,r[4]=h[4]*n+h[5]*a+t,r[5]=h[4]*s+h[5]*o+e,r[6]=h[6]*n+h[7]*a+t,r[7]=h[6]*s+h[7]*o+e}},u.AnimationStateData=function(t){this.skeletonData=t,this.animationToMixTime={}},u.AnimationStateData.prototype={setMixByName:function(t,e,i){var r=this.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;var n=this.skeletonData.findAnimation(e);if(!n)throw"Animation not found: "+e;this.setMix(r,n,i)},setMix:function(t,e,i){this.animationToMixTime[t.name+":"+e.name]=i},getMix:function(t,e){var i=this.animationToMixTime[t.name+":"+e.name];return i?i:0}},u.AnimationState=function(t){this.data=t,this.queue=[]},u.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(t){if(this.currentTime+=t,this.previousTime+=t,this.mixTime+=t,this.queue.length>0){var e=this.queue[0];this.currentTime>=e.delay&&(this._setAnimation(e.animation,e.loop),this.queue.shift())}},apply:function(t){if(this.current)if(this.previous){this.previous.apply(t,this.previousTime,this.previousLoop);var e=this.mixTime/this.mixDuration;e>=1&&(e=1,this.previous=null),this.current.mix(t,this.currentTime,this.currentLoop,e)}else this.current.apply(t,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(t,e){this.previous=null,t&&this.current&&(this.mixDuration=this.data.getMix(this.current,t),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=t,this.currentLoop=e,this.currentTime=0},setAnimationByName:function(t,e){var i=this.data.skeletonData.findAnimation(t);if(!i)throw"Animation not found: "+t;this.setAnimation(i,e)},setAnimation:function(t,e){this.queue.length=0,this._setAnimation(t,e)},addAnimationByName:function(t,e,i){var r=this.data.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;this.addAnimation(r,e,i)},addAnimation:function(t,e,i){var r={};if(r.animation=t,r.loop=e,!i||0>=i){var n=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;i=null!=n?n.duration-this.data.getMix(n,t)+(i||0):0}r.delay=i,this.queue.push(r)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},u.SkeletonJson=function(t){this.attachmentLoader=t},u.SkeletonJson.prototype={scale:1,readSkeletonData:function(t){for(var e=new u.SkeletonData,i=t.bones,r=0,n=i.length;n>r;r++){var a=i[r],s=null;if(a.parent&&(s=e.findBone(a.parent),!s))throw"Parent bone not found: "+a.parent;var o=new u.BoneData(a.name,s);o.length=(a.length||0)*this.scale,o.x=(a.x||0)*this.scale,o.y=(a.y||0)*this.scale,o.rotation=a.rotation||0,o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1,e.bones.push(o)}for(var h=t.slots,r=0,n=h.length;n>r;r++){var l=h[r],o=e.findBone(l.bone);if(!o)throw"Slot bone not found: "+l.bone;var c=new u.SlotData(l.name,o),d=l.color;d&&(c.r=u.SkeletonJson.toColor(d,0),c.g=u.SkeletonJson.toColor(d,1),c.b=u.SkeletonJson.toColor(d,2),c.a=u.SkeletonJson.toColor(d,3)),c.attachmentName=l.attachment,e.slots.push(c)}var p=t.skins;for(var f in p)if(p.hasOwnProperty(f)){var g=p[f],v=new u.Skin(f);for(var m in g)if(g.hasOwnProperty(m)){var x=e.findSlotIndex(m),b=g[m];for(var y in b)if(b.hasOwnProperty(y)){var T=this.readAttachment(v,y,b[y]);null!=T&&v.addAttachment(x,y,T)}}e.skins.push(v),"default"==v.name&&(e.defaultSkin=v)}var A=t.animations;for(var w in A)A.hasOwnProperty(w)&&this.readAnimation(w,A[w],e);return e},readAttachment:function(t,e,i){e=i.name||e;var r=u.AttachmentType[i.type||"region"],n=new u.RegionAttachment;return n.name=e,r==u.AttachmentType.region&&(n.x=(i.x||0)*this.scale,n.y=(i.y||0)*this.scale,n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1,n.rotation=i.rotation||0,n.width=(i.width||32)*this.scale,n.height=(i.height||32)*this.scale,n.updateOffset()),n},readAnimation:function(t,e,i){var r=[],n=0,a=e.bones;for(var s in a)if(a.hasOwnProperty(s)){var o=i.findBoneIndex(s);if(-1==o)throw"Bone not found: "+s;var h=a[s];for(var l in h)if(h.hasOwnProperty(l)){var c=h[l];if("rotate"==l){var d=new u.RotateTimeline(c.length);d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p,v.time,v.angle),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[2*d.getFrameCount()-2])}else{if("translate"!=l&&"scale"!=l)throw"Invalid timeline type for a bone: "+l+" ("+s+")";var d,m=1;"scale"==l?d=new u.ScaleTimeline(c.length):(d=new u.TranslateTimeline(c.length),m=this.scale),d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],x=(v.x||0)*m,b=(v.y||0)*m;d.setFrame(p,v.time,x,b),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[3*d.getFrameCount()-3])}}}var y=e.slots;for(var T in y)if(y.hasOwnProperty(T)){var A=y[T],w=i.findSlotIndex(T);for(var l in A)if(A.hasOwnProperty(l)){var c=A[l];if("color"==l){var d=new u.ColorTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],_=v.color,R=u.SkeletonJson.toColor(_,0),S=u.SkeletonJson.toColor(_,1),C=u.SkeletonJson.toColor(_,2),L=u.SkeletonJson.toColor(_,3);d.setFrame(p,v.time,R,S,C,L),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[5*d.getFrameCount()-5])}else{if("attachment"!=l)throw"Invalid timeline type for a slot: "+l+" ("+T+")";var d=new u.AttachmentTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p++,v.time,v.name)}r.push(d),n=Math.max(n,d.frames[Math.floor(d.getFrameCount())-1])}}}i.animations.push(new u.Animation(t,r,n))}},u.SkeletonJson.readCurve=function(t,e,i){var r=i.curve;r&&("stepped"==r?t.curves.setStepped(e):r instanceof Array&&t.curves.setCurve(e,r[0],r[1],r[2],r[3]))},u.SkeletonJson.toColor=function(t,e){if(8!=t.length)throw"Color hexidecimal length must be 8, recieved: "+t;return parseInt(t.substring(2*e,2),16)/255},u.Atlas=function(t,e){this.textureLoader=e,this.pages=[],this.regions=[];var i=new u.AtlasReader(t),r=[];r.length=4;for(var n=null;;){var a=i.readLine();if(null==a)break;if(a=i.trim(a),0==a.length)n=null;else if(n){var s=new u.AtlasRegion;s.name=a,s.page=n,s.rotate="true"==i.readValue(),i.readTuple(r);var o=parseInt(r[0]),h=parseInt(r[1]);i.readTuple(r);var l=parseInt(r[0]),c=parseInt(r[1]);s.u=o/n.width,s.v=h/n.height,s.rotate?(s.u2=(o+c)/n.width,s.v2=(h+l)/n.height):(s.u2=(o+l)/n.width,s.v2=(h+c)/n.height),s.x=o,s.y=h,s.width=Math.abs(l),s.height=Math.abs(c),4==i.readTuple(r)&&(s.splits=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],4==i.readTuple(r)&&(s.pads=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],i.readTuple(r))),s.originalWidth=parseInt(r[0]),s.originalHeight=parseInt(r[1]),i.readTuple(r),s.offsetX=parseInt(r[0]),s.offsetY=parseInt(r[1]),s.index=parseInt(i.readValue()),this.regions.push(s)}else{n=new u.AtlasPage,n.name=a,n.format=u.Atlas.Format[i.readValue()],i.readTuple(r),n.minFilter=u.Atlas.TextureFilter[r[0]],n.magFilter=u.Atlas.TextureFilter[r[1]];var d=i.readValue();n.uWrap=u.Atlas.TextureWrap.clampToEdge,n.vWrap=u.Atlas.TextureWrap.clampToEdge,"x"==d?n.uWrap=u.Atlas.TextureWrap.repeat:"y"==d?n.vWrap=u.Atlas.TextureWrap.repeat:"xy"==d&&(n.uWrap=n.vWrap=u.Atlas.TextureWrap.repeat),e.load(n,a),this.pages.push(n)}}},u.Atlas.prototype={findRegion:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},dispose:function(){for(var t=this.pages,e=0,i=t.length;i>e;e++)this.textureLoader.unload(t[e].rendererObject)},updateUVs:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++){var n=e[i];n.page==t&&(n.u=n.x/t.width,n.v=n.y/t.height,n.rotate?(n.u2=(n.x+n.height)/t.width,n.v2=(n.y+n.width)/t.height):(n.u2=(n.x+n.width)/t.width,n.v2=(n.y+n.height)/t.height))}}},u.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},u.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},u.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},u.AtlasPage=function(){},u.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},u.AtlasRegion=function(){},u.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},u.AtlasReader=function(t){this.lines=t.split(/\r\n|\r|\n/)},u.AtlasReader.prototype={index:0,trim:function(t){return t.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw"Invalid line: "+t;return this.trim(t.substring(e+1))},readTuple:function(t){var e=this.readLine(),i=e.indexOf(":");if(-1==i)throw"Invalid line: "+e;for(var r=0,n=i+1;3>r;r++){var a=e.indexOf(",",n);if(-1==a){if(0==r)throw"Invalid line: "+e;break}t[r]=this.trim(e.substr(n,a-n)),n=a+1}return t[r]=this.trim(e.substring(n)),r+1}},u.AtlasAttachmentLoader=function(t){this.atlas=t},u.AtlasAttachmentLoader.prototype={newAttachment:function(t,e,i){switch(e){case u.AttachmentType.region:var r=this.atlas.findRegion(i);if(!r)throw"Region not found in atlas: "+i+" ("+e+")";var n=new u.RegionAttachment(i);return n.rendererObject=r,n.setUVs(r.u,r.v,r.u2,r.v2,r.rotate),n.regionOffsetX=r.offsetX,n.regionOffsetY=r.offsetY,n.regionWidth=r.width,n.regionHeight=r.height,n.regionOriginalWidth=r.originalWidth,n.regionOriginalHeight=r.originalHeight,n}throw"Unknown attachment type: "+e}},n.AnimCache={},u.Bone.yDown=!0,n.CustomRenderable=function(){n.DisplayObject.call(this)},n.CustomRenderable.constructor=n.CustomRenderable,n.CustomRenderable.prototype=Object.create(n.DisplayObject.prototype),n.CustomRenderable.prototype.renderCanvas=function(){},n.CustomRenderable.prototype.initWebGL=function(){},n.CustomRenderable.prototype.renderWebGL=function(){},n.BaseTextureCache={},n.texturesToUpdate=[],n.texturesToDestroy=[],n.BaseTexture=function(t){if(n.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,n.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);this._powerOf2=!1}},n.BaseTexture.constructor=n.BaseTexture,n.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,n.texturesToDestroy.push(this)},n.BaseTexture.fromImage=function(t,e){var i=n.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new n.BaseTexture(r),n.BaseTextureCache[t]=i}return i},n.TextureCache={},n.FrameCache={},n.Texture=function(t,e){if(n.EventTarget.call(this),e||(this.noFrame=!0,e=new n.Rectangle(0,0,1,1)),this.trim=new n.Point,t instanceof n.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new n.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},n.Texture.constructor=n.Texture,n.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new n.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},n.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},n.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,n.Texture.frameUpdates.push(this)},n.Texture.fromImage=function(t,e){var i=n.TextureCache[t];return i||(i=new n.Texture(n.BaseTexture.fromImage(t,e)),n.TextureCache[t]=i),i},n.Texture.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},n.Texture.fromCanvas=function(t){var e=new n.BaseTexture(t);return new n.Texture(e)},n.Texture.addTextureToCache=function(t,e){n.TextureCache[e]=t},n.Texture.removeTextureFromCache=function(t){var e=n.TextureCache[t];return n.TextureCache[t]=null,e},n.Texture.frameUpdates=[],n.RenderTexture=function(t,e){n.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=n.mat3.create(),this.frame=new n.Rectangle(0,0,this.width,this.height),n.gl?this.initWebGL():this.initCanvas()},n.RenderTexture.constructor=n.RenderTexture,n.RenderTexture.prototype=Object.create(n.Texture.prototype),n.RenderTexture.prototype.initWebGL=function(){var t=n.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new n.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new n.Point(this.width/2,this.height/2),this.projectionMatrix=n.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},n.RenderTexture.prototype.initCanvas=function(){this.renderer=new n.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new n.BaseTexture(this.renderer.view),this.frame=new n.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},n.RenderTexture.prototype.renderWebGL=function(t,e){var i=n.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=n.mat3.create(),t.worldTransform[4]=-1,t.worldTransform[5]=2*this.projection.y;for(var a=0,s=r.length;s>a;a++)r[a].updateTransform();var o=t.__renderGroup;o?t==o.root?o.render(this.projection):o.renderSpecific(t,this.projection):(this.renderGroup||(this.renderGroup=new n.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projection))},n.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=n.mat3.create();for(var r=0,a=i.length;a>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),n.texturesToUpdate.push(this.baseTexture)},n.AssetLoader=function(t){n.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:n.ImageLoader,jpeg:n.ImageLoader,png:n.ImageLoader,gif:n.ImageLoader,json:n.JsonLoader,anim:n.SpineLoader,xml:n.BitmapFontLoader,fnt:n.BitmapFontLoader}},n.AssetLoader.constructor=n.AssetLoader,n.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),n=this.loadersByType[r];if(!n)throw Error(r+" is an unsupported file type");var a=new n(i,this.crossorigin);a.addEventListener("loaded",function(){t.onAssetLoaded()}),a.load()}},n.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},n.JsonLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.crossorigin=e,this.loaded=!1},n.JsonLoader.constructor=n.JsonLoader,n.JsonLoader.prototype.load=function(){this.ajaxRequest=new l;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},n.JsonLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState)if(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))if(this.json=JSON.parse(this.ajaxRequest.responseText),this.json.frames){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0))}i.load()}else if(this.json.bones){var o=new u.SkeletonJson,h=o.readSkeletonData(this.json);n.AnimCache[this.url]=h,this.onLoaded()}else this.onLoaded();else this.onError()},n.JsonLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},n.JsonLoader.prototype.onError=function(){this.dispatchEvent({type:"error",content:this})},n.SpriteSheetLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},n.SpriteSheetLoader.constructor=n.SpriteSheetLoader,n.SpriteSheetLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpriteSheetLoader.prototype.onJSONLoaded=function(){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0)) }i.load()},n.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.ImageLoader=function(t,e){n.EventTarget.call(this),this.texture=n.Texture.fromImage(t,e)},n.ImageLoader.constructor=n.ImageLoader,n.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},n.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.BitmapFontLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},n.BitmapFontLoader.constructor=n.BitmapFontLoader,n.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},n.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new n.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],a=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(a.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var s=this.ajaxRequest.responseXML.getElementsByTagName("char"),o=0;s.length>o;o++){var h=parseInt(s[o].attributes.getNamedItem("id").nodeValue,10),l={x:parseInt(s[o].attributes.getNamedItem("x").nodeValue,10),y:parseInt(s[o].attributes.getNamedItem("y").nodeValue,10),width:parseInt(s[o].attributes.getNamedItem("width").nodeValue,10),height:parseInt(s[o].attributes.getNamedItem("height").nodeValue,10)};n.TextureCache[h]=new n.Texture(this.texture,l),i.chars[h]={xOffset:parseInt(s[o].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(s[o].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(s[o].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{},texture:new n.Texture(this.texture,l)}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(o=0;u.length>o;o++){var c=parseInt(u[o].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[o].attributes.getNamedItem("second").nodeValue,10),p=parseInt(u[o].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=p}n.BitmapText.fonts[i.font]=i;var f=this;e.addEventListener("loaded",function(){f.onLoaded()}),e.load()}},n.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.SpineLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.crossorigin=e,this.loaded=!1},n.SpineLoader.constructor=n.SpineLoader,n.SpineLoader.prototype.load=function(){new n.JsonLoader(this.url,this.crossorigin),jsonLoader.addEventListener("loaded",function(t){scope.json=t.content.json,scope.onJSONLoaded()}),jsonLoader.load()},n.SpineLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpineLoader.prototype.onJSONLoaded=function(){var t=new u.SkeletonJson,e=t.readSkeletonData(this.json);n.AnimCache[this.url]=e,this.onLoaded()},n.SpineLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports.PIXI=n):i.PIXI=n}).call(this); \ No newline at end of file diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.js b/bin/pixi.js index 51d6836..96307b0 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -9,7 +9,7 @@ * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; +(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[],t._webGL.indices=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; if(0!=r.length){var a=new n.Point(r[0],r[1]),s=new n.Point(r[r.length-2],r[r.length-1]);if(a.x==s.x&&a.y==s.y){r.pop(),r.pop(),s=new n.Point(r[r.length-2],r[r.length-1]);var o=s.x+.5*(a.x-s.x),h=s.y+.5*(a.y-s.y);r.unshift(o,h),r.push(o,h)}var l,u,c,d,p,f,g,v,m,x,b,y,T,A,w,_,R,S,C,L,E,B=i.points,F=i.indices,P=r.length/2,G=r.length,I=B.length/6,D=t.lineWidth/2,M=e(t.lineColor),O=t.lineAlpha,W=M[0]*O,U=M[1]*O,j=M[2]*O;l=r[0],u=r[1],c=r[2],d=r[3],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(l-g,u-v,W,U,j,O),B.push(l+g,u+v,W,U,j,O);for(var k=1;P-1>k;k++)l=r[2*(k-1)],u=r[2*(k-1)+1],c=r[2*k],d=r[2*k+1],p=r[2*(k+1)],f=r[2*(k+1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,m=-(d-f),x=c-p,E=Math.sqrt(m*m+x*x),m/=E,x/=E,m*=D,x*=D,T=-v+u-(-v+d),A=-g+c-(-g+l),w=(-g+l)*(-v+d)-(-g+c)*(-v+u),_=-x+f-(-x+d),R=-m+c-(-m+p),S=(-m+p)*(-x+d)-(-m+c)*(-x+f),C=T*R-_*A,0==C&&(C+=1),px=(A*S-R*w)/C,py=(_*w-T*S)/C,L=(px-c)*(px-c)+(py-d)+(py-d),L>19600?(b=g-m,y=v-x,E=Math.sqrt(b*b+y*y),b/=E,y/=E,b*=D,y*=D,B.push(c-b,d-y),B.push(W,U,j,O),B.push(c+b,d+y),B.push(W,U,j,O),B.push(c-b,d-y),B.push(W,U,j,O),G++):(B.push(px,py),B.push(W,U,j,O),B.push(c-(px-c),d-(py-d)),B.push(W,U,j,O));l=r[2*(P-2)],u=r[2*(P-2)+1],c=r[2*(P-1)],d=r[2*(P-1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(c-g,d-v),B.push(W,U,j,O),B.push(c+g,d+v),B.push(W,U,j,O),F.push(I);for(var k=0;G>k;k++)F.push(I++);F.push(I-1)}},n.WebGLGraphics.buildPoly=function(t,i){var r=t.points;if(!(6>r.length)){for(var a=i.points,s=i.indices,o=r.length/2,h=e(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=n.PolyK.Triangulate(r),f=a.length/6,g=0;p.length>g;g+=3)s.push(p[g]+f),s.push(p[g]+f),s.push(p[g+1]+f),s.push(p[g+2]+f),s.push(p[g+2]+f);for(var g=0;o>g;g++)a.push(r[2*g],r[2*g+1],u,c,d,l)}},n._defaultFrame=new n.Rectangle(0,0,1,1),n.gl,n.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var a=this;this.view.addEventListener("webglcontextlost",function(t){a.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){a.handleContextRestored(t)},!1),this.batchs=[];try{n.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!0,premultipliedAlpha:!1})}catch(s){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}n.initPrimitiveShader(),n.initDefaultShader(),n.initDefaultStripShader(),n.activateDefaultShader();var o=this.gl;n.WebGLRenderer.gl=o,this.batch=new n.WebGLBatch(o),o.disable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.enable(o.BLEND),o.colorMask(!0,!0,!0,this.transparent),n.projection=new n.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new n.WebGLRenderGroup(this.gl)},n.WebGLRenderer.constructor=n.WebGLRenderer,n.WebGLRenderer.getBatch=function(){return 0==n._batchs.length?new n.WebGLBatch(n.WebGLRenderer.gl):n._batchs.pop()},n.WebGLRenderer.returnBatch=function(t){t.clean(),n._batchs.push(t)},n.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),n.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],!this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(n.projection),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0){for(var i=0;n.Texture.frameUpdates.length>i;i++)n.Texture.frameUpdates[i].updateFrame=!1;n.Texture.frameUpdates=[]}}},n.WebGLRenderer.updateTextures=function(){for(var t=0;n.texturesToUpdate.length>t;t++)this.updateTexture(n.texturesToUpdate[t]);for(var t=0;n.texturesToDestroy.length>t;t++)this.destroyTexture(n.texturesToDestroy[t]);n.texturesToUpdate=[],n.texturesToDestroy=[]},n.WebGLRenderer.updateTexture=function(t){var e=n.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},n.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},n.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),n.projection.x=this.width/2,n.projection.y=this.height/2},n.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},n.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;n.TextureCache.length>t;t++)this.updateTexture(n.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;n._restoreBatchs(this.gl),this.contextLost=!1},n._batchs=[],n._getBatch=function(t){return 0==n._batchs.length?new n.WebGLBatch(t):n._batchs.pop()},n._returnBatch=function(t){t.clean(),n._batchs.push(t)},n._restoreBatchs=function(t){for(var e=0;n._batchs.length>e;e++)n._batchs[e].restoreLostContext(t)},n.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=n.blendModes.NORMAL,this.dynamicSize=1},n.WebGLBatch.constructor=n.WebGLBatch,n.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},n.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},n.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},n.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},n.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},n.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},n.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new n.WebGLBatch(this.gl);e.init(t),e.texture=this.texture,e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},n.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},n.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,n=4*i;this.indices[r+0]=n+0,this.indices[r+1]=n+1,this.indices[r+2]=n+2,this.indices[r+3]=n+0,this.indices[r+4]=n+2,this.indices[r+5]=n+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},n.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof n.WebGLBatch?this.batchs[r].render():i instanceof n.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof n.Strip?i.visible&&this.renderStrip(i,t):i instanceof n.Graphics&&i.visible&&n.WebGLGraphics.renderGraphics(i,t)},n.WebGLRenderGroup.prototype.renderSpecific=function(t,e){n.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniform2f(n.shaderProgram.projectionVector,e.x,e.y);var r,a,s,o,h=t.renderable?t:this.getNextRenderable(t),l=h.batch;if(h instanceof n.Sprite){l=h.batch;var u=l.head;if(u==h)r=0;else for(r=1;u.__next!=h;)r++,u=u.__next}else l=h;for(var c,d=t,p=t;p.children.length>0;)p=p.children[p.children.length-1],p.renderable&&(d=p);if(d instanceof n.Sprite){c=d.batch;var u=c.head;if(u==d)s=0;else for(s=1;u.__next!=d;)s++,u=u.__next}else c=d;if(l==c)return l instanceof n.WebGLBatch?l.render(r,s+1):this.renderSpecial(l),void 0;a=this.batchs.indexOf(l),o=this.batchs.indexOf(c),l instanceof n.WebGLBatch?l.render(r):this.renderSpecial(l);for(var f=a+1;o>f;f++)renderable=this.batchs[f],renderable instanceof n.WebGLBatch?this.batchs[f].render():this.renderSpecial(renderable);c instanceof n.WebGLBatch?c.render(0,s+1):this.renderSpecial(c)},n.WebGLRenderGroup.prototype.renderSpecial=function(t){t instanceof n.TilingSprite?t.visible&&this.renderTilingSprite(t,projectionMatrix):t instanceof n.Strip?t.visible&&this.renderStrip(t,projectionMatrix):t instanceof n.CustomRenderable?t.visible&&t.renderWebGL(this,projectionMatrix):t instanceof n.Graphics&&t.visible&&n.WebGLGraphics.renderGraphics(t)},n.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var n=i[r];n.worldVisible=n.visible&&e,n.textureChange&&(n.textureChange=!1,n.worldVisible&&(this.removeDisplayObject(n),this.addDisplayObject(n))),n.children.length>0&&this.checkVisibility(n,n.worldVisible)}},n.WebGLRenderGroup.prototype.updateTexture=function(t){if(1==t.batch.length)return t.batch.texture=t.texture.baseTexture,void 0;if(t.batch.texture!=t.texture.baseTexture)if(t.batch.head==t){var e=t.batch,i=this.batchs.indexOf(e),r=this.batchs[i-1];if(e.remove(t),r)if(r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)r.insertAfter(t,r.tail);else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i-1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(0,0,a)}}else if(t.batch.tail==t){var e=t.batch,i=this.batchs.indexOf(e),s=this.batchs[i+1];if(e.remove(t),s){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,s.head),void 0;var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i+1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.push(a)}}else{var e=t.batch,o=e.split(t);o.remove(t);var a=n.WebGLRenderer.getBatch(),i=this.batchs.indexOf(e);a.init(t),this.batchs.splice(i+1,0,a,o)}},n.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof n.Sprite){var r,a;if(e instanceof n.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof n.Sprite){if(a=i.batch){if(a.texture==t.texture.baseTexture&&a.blendMode==t.blendMode)return a.insertBefore(t,i),void 0;if(a==r){var s=r.split(i),o=n.WebGLRenderer.getBatch(),h=this.batchs.indexOf(r);return o.init(t),this.batchs.splice(h+1,0,o,s),void 0}}}else a=i;var o=n.WebGLRenderer.getBatch();if(o.init(t),r){var h=this.batchs.indexOf(r);this.batchs.splice(h+1,0,o)}else this.batchs.push(o)}else t instanceof n.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof n.Strip?(this.initStrip(t),this.batchs.push(t)):t instanceof n.Graphics&&this.batchs.push(t);this.batchUpdate=!0}},n.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},n.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof n.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof n.WebGLBatch&&this.batchs[r+1]instanceof n.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),n.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e)}}},n.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},n.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},n.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=n.shaderProgram;i.useProgram(n.stripShaderProgram);var a=n.mat3.clone(t.worldTransform);n.mat3.transpose(a),i.uniformMatrix3fv(n.stripShaderProgram.translationMatrix,!1,a),i.uniform2f(n.stripShaderProgram.projectionVector,e.x,e.y),i.uniform1f(n.stripShaderProgram.alpha,t.worldAlpha),t.blendMode==n.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.useProgram(n.shaderProgram)},n.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;n.shaderProgram;var r=t.tilePosition,a=t.tileScale,s=r.x/t.texture.baseTexture.width,o=r.y/t.texture.baseTexture.height,h=t.width/t.texture.baseTexture.width/a.x,l=t.height/t.texture.baseTexture.height/a.y;t.uvs[0]=0-s,t.uvs[1]=0-o,t.uvs[2]=1*h-s,t.uvs[3]=0-o,t.uvs[4]=1*h-s,t.uvs[5]=1*l-o,t.uvs[6]=0-s,t.uvs[7]=1*l-o,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},n.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},n.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},n.CanvasRenderer.constructor=n.CanvasRenderer,n.CanvasRenderer.prototype.render=function(t){n.texturesToUpdate=[],n.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0&&(n.Texture.frameUpdates=[])},n.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},n.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof n.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof n.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof n.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof n.CustomRenderable?t.renderCanvas(this):t instanceof n.Graphics&&(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),n.CanvasGraphics.renderGraphics(t,i));if(t.children)for(var a=0;t.children.length>a;a++)this.renderDisplayObject(t.children[a]);this.context.setTransform(1,0,0,1,0,0)}},n.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var n=1;r-2>n;n++){var a=2*n,s=i[a],o=i[a+2],h=i[a+4],l=i[a+1],u=i[a+3],c=i[a+5];e.moveTo(s,l),e.lineTo(o,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},n.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;e.globalAlpha=t.worldAlpha,t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},n.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,n=i.length/2;this.count++;for(var a=1;n-2>a;a++){var s=2*a,o=i[s],h=i[s+2],l=i[s+4],u=i[s+1],c=i[s+3],d=i[s+5],p=r[s]*t.texture.width,f=r[s+2]*t.texture.width,g=r[s+4]*t.texture.width,v=r[s+1]*t.texture.height,m=r[s+3]*t.texture.height,x=r[s+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var b=p*m+v*g+f*x-m*g-v*f-p*x,y=o*m+v*l+h*x-m*l-v*h-o*x,T=p*h+o*g+f*l-h*g-o*f-p*l,A=p*m*l+v*h*g+o*f*x-o*m*g-v*f*l-p*h*x,w=u*m+v*d+c*x-m*d-v*c-u*x,_=p*c+u*g+f*d-c*g-u*f-p*d,R=p*m*d+v*c*g+u*f*x-u*m*g-v*f*d-p*c*x;e.transform(y/b,w/b,T/b,_/b,A/b,R/b),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},n.CanvasGraphics=function(){},n.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,r=0;t.graphicsData.length>r;r++){var a=t.graphicsData[r],s=a.points;if(e.strokeStyle=color="#"+("00000"+(0|a.lineColor).toString(16)).substr(-6),e.lineWidth=a.lineWidth,a.type==n.Graphics.POLY){e.beginPath(),e.moveTo(s[0],s[1]);for(var o=1;s.length/2>o;o++)e.lineTo(s[2*o],s[2*o+1]);s[0]==s[s.length-2]&&s[1]==s[s.length-1]&&e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}else if(a.type==n.Graphics.RECT)a.fillColor&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fillRect(s[0],s[1],s[2],s[3])),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.strokeRect(s[0],s[1],s[2],s[3]));else if(a.type==n.Graphics.CIRC)e.beginPath(),e.arc(s[0],s[1],s[2],0,2*Math.PI),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke());else if(a.type==n.Graphics.ELIP){var h=a.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,v=c+l,m=d+u,x=c+l/2,b=d+u/2;e.moveTo(c,b),e.bezierCurveTo(c,b-g,x-f,d,x,d),e.bezierCurveTo(x+f,d,v,b-g,v,b),e.bezierCurveTo(v,b+g,x+f,m,x,m),e.bezierCurveTo(x-f,m,c,b+g,c,b),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}}},n.Graphics=function(){n.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=2,this.lineColor="#FF0000",this.graphicsData=[],this.currentPath={points:[]}},n.Graphics.constructor=n.Graphics,n.Graphics.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Graphics.prototype.lineStyle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=void 0==i?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.graphicsData.push(this.currentPath)},n.Graphics.prototype.moveTo=function(t,e){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath)},n.Graphics.prototype.lineTo=function(t,e){this.currentPath.points.push(t,e),this.dirty=!0},n.Graphics.prototype.beginFill=function(t,e){this.filling=!0,this.fillColor=t||0,this.fillAlpha=e||1},n.Graphics.prototype.endFill=function(){this.filling=!1,this.fillColor=null,this.fillAlpha=1},n.Graphics.prototype.drawRect=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawCircle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:n.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawElipse=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.clear=function(){this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[]},n.Graphics.POLY=0,n.Graphics.RECT=1,n.Graphics.CIRC=2,n.Graphics.ELIP=3,n.Strip=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=n.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Strip.constructor=n.Strip,n.Strip.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},n.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Rope=function(t,e){n.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},n.Rope.constructor=n.Rope,n.Rope.prototype=Object.create(n.Strip.prototype),n.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,n=t[0],a=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var s=t.length,o=1;s>o;o++){var a=t[o],h=4*o,l=o/(s-1);o%2?(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1):(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,n=a}}},n.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],a={x:0,y:0},s=t[0];this.count-=.2,i[0]=s.x+a.x,i[1]=s.y+a.y,i[2]=s.x-a.x,i[3]=s.y-a.y;for(var o=t.length,h=1;o>h;h++){var s=t[h],l=4*h;e=t.length-1>h?t[h+1]:s,a.y=-(e.x-r.x),a.x=e.y-r.y;var u=10*(1-h/(o-1));u>1&&(u=1);var c=Math.sqrt(a.x*a.x+a.y*a.y),d=this.texture.height/2;a.x/=c,a.y/=c,a.x*=d,a.y*=d,i[l]=s.x+a.x,i[l+1]=s.y+a.y,i[l+2]=s.x-a.x,i[l+3]=s.y-a.y,r=s}n.DisplayObjectContainer.prototype.updateTransform.call(this)}},n.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0 },n.TilingSprite=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new n.Point(1,1),this.tilePosition=new n.Point(0,0),this.blendMode=n.blendModes.NORMAL},n.TilingSprite.constructor=n.TilingSprite,n.TilingSprite.prototype=Object.create(n.DisplayObjectContainer.prototype),n.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},n.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Spine=function(t){if(n.DisplayObjectContainer.call(this),this.spineData=n.AnimCache[t],!this.spineData)throw Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+t);this.count=0,this.sprites=[],this.skeleton=new u.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new u.AnimationStateData(this.spineData),this.state=new u.AnimationState(this.stateData);for(var e=0;this.skeleton.drawOrder.length>e;e++){var i=this.skeleton.drawOrder[e].data.attachmentName;n.TextureCache[i]||(i+=".png");var r=new n.Sprite(n.Texture.fromFrame(i));r.anchor.x=r.anchor.y=.5,this.addChild(r),this.sprites.push(r)}},n.Spine.constructor=n.Spine,n.Spine.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Spine.prototype.updateTransform=function(){this.state.update(1/60),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var t=0;this.skeleton.drawOrder.length>t;t++){var e=this.skeleton.drawOrder[t],i=e.bone.worldX+e.attachment.x*e.bone.m00+e.attachment.y*e.bone.m01+.5*e.attachment.width,r=e.bone.worldY+e.attachment.x*e.bone.m10+e.attachment.y*e.bone.m11+.5*e.attachment.height;if(e.cacheName!=e.attachment.name){var a=e.attachment.name;n.TextureCache[a]||(a+=".png"),this.sprites[t].setTexture(n.TextureCache[a]),e.cacheName=e.attachment.name}i+=-(e.attachment.width*(e.bone.worldScaleX+e.attachment.scaleX-1)>>1),r+=-(e.attachment.height*(e.bone.worldScaleY+e.attachment.scaleY-1)>>1),this.sprites[t].position.x=i,this.sprites[t].position.y=r,this.sprites[t].rotation=-(e.bone.worldRotation+e.attachment.rotation)*(Math.PI/180)}n.DisplayObjectContainer.prototype.updateTransform.call(this)};var u={};u.BoneData=function(t,e){this.name=t,this.parent=e},u.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},u.SlotData=function(t,e){this.name=t,this.boneData=e},u.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},u.Bone=function(t,e){this.data=t,this.parent=e,this.setToSetupPose()},u.Bone.yDown=!1,u.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(t,e){var i=this.parent;null!=i?(this.worldX=this.x*i.m00+this.y*i.m01+i.worldX,this.worldY=this.x*i.m10+this.y*i.m11+i.worldY,this.worldScaleX=i.worldScaleX*this.scaleX,this.worldScaleY=i.worldScaleY*this.scaleY,this.worldRotation=i.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var r=this.worldRotation*Math.PI/180,n=Math.cos(r),a=Math.sin(r);this.m00=n*this.worldScaleX,this.m10=a*this.worldScaleX,this.m01=-a*this.worldScaleY,this.m11=n*this.worldScaleY,t&&(this.m00=-this.m00,this.m01=-this.m01),e&&(this.m10=-this.m10,this.m11=-this.m11),u.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY}},u.Slot=function(t,e,i){this.data=t,this.skeleton=e,this.bone=i,this.setToSetupPose()},u.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(t){this.attachment=t,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(t){this._attachmentTime=this.skeleton.time-t},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var t=this.data;this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a;for(var e=this.skeleton.data.slots,i=0,r=e.length;r>i;i++)if(e[i]==t){this.setAttachment(t.attachmentName?this.skeleton.getAttachmentBySlotIndex(i,t.attachmentName):null);break}}},u.Skin=function(t){this.name=t,this.attachments={}},u.Skin.prototype={addAttachment:function(t,e,i){this.attachments[t+":"+e]=i},getAttachment:function(t,e){return this.attachments[t+":"+e]},_attachAll:function(t,e){for(var i in e.attachments){var r=i.indexOf(":"),n=parseInt(i.substring(0,r)),a=i.substring(r+1),s=t.slots[n];if(s.attachment&&s.attachment.name==a){var o=this.getAttachment(n,a);o&&s.setAttachment(o)}}}},u.Animation=function(t,e,i){this.name=t,this.timelines=e,this.duration=i},u.Animation.prototype={apply:function(t,e,i){i&&0!=this.duration&&(e%=this.duration);for(var r=this.timelines,n=0,a=r.length;a>n;n++)r[n].apply(t,e,1)},mix:function(t,e,i,r){i&&0!=this.duration&&(e%=this.duration);for(var n=this.timelines,a=0,s=n.length;s>a;a++)n[a].apply(t,e,r)}},u.binarySearch=function(t,e,i){var r=0,n=Math.floor(t.length/i)-2;if(0==n)return i;for(var a=n>>>1;;){if(e>=t[(a+1)*i]?r=a+1:n=a,r==n)return(r+1)*i;a=r+n>>>1}},u.linearSearch=function(t,e,i){for(var r=0,n=t.length-i;n>=r;r+=i)if(t[r]>e)return r;return-1},u.Curves=function(t){this.curves=[],this.curves.length=6*(t-1)},u.Curves.prototype={setLinear:function(t){this.curves[6*t]=0},setStepped:function(t){this.curves[6*t]=-1},setCurve:function(t,e,i,r,n){var a=.1,s=a*a,o=s*a,h=3*a,l=3*s,u=6*s,c=6*o,d=2*-e+r,p=2*-i+n,f=3*(e-r)+1,g=3*(i-n)+1,v=6*t,m=this.curves;m[v]=e*h+d*l+f*o,m[v+1]=i*h+p*l+g*o,m[v+2]=d*u+f*c,m[v+3]=p*u+g*c,m[v+4]=f*c,m[v+5]=g*c},getCurvePercent:function(t,e){e=0>e?0:e>1?1:e;var i=6*t,r=this.curves,n=r[i];if(!n)return e;if(-1==n)return 0;for(var a=r[i+1],s=r[i+2],o=r[i+3],h=r[i+4],l=r[i+5],u=n,c=a,d=8;;){if(u>=e){var p=u-n,f=c-a;return f+(c-f)*(e-p)/(u-p)}if(0==d)break;d--,n+=s,a+=o,s+=h,o+=l,u+=n,c+=a}return c+(1-c)*(e-u)/(1-u)}},u.RotateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=2*t},u.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){t*=2,this.frames[t]=e,this.frames[t+1]=i},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-2]){for(var a=n.data.rotation+r[r.length-1]-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;return n.rotation+=a*i,void 0}var s=u.binarySearch(r,e,2),o=r[s-1],h=r[s],l=1-(e-h)/(r[s-2]-h);l=this.curves.getCurvePercent(s/2-1,l);for(var a=r[s+1]-o;a>180;)a-=360;for(;-180>a;)a+=360;for(a=n.data.rotation+(o+a*l)-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;n.rotation+=a*i}}},u.TranslateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.x+=(n.data.x+r[r.length-2]-n.x)*i,n.y+=(n.data.y+r[r.length-1]-n.y)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.x+=(n.data.x+s+(r[a+1]-s)*l-n.x)*i,n.y+=(n.data.y+o+(r[a+2]-o)*l-n.y)*i}}},u.ScaleTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.scaleX+=(n.data.scaleX-1+r[r.length-2]-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+r[r.length-1]-n.scaleY)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.scaleX+=(n.data.scaleX-1+s+(r[a+1]-s)*l-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+o+(r[a+2]-o)*l-n.scaleY)*i}}},u.ColorTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=5*t},u.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e){t*=5,this.frames[t]=e,this.frames[t+1]=r,this.frames[t+2]=g,this.frames[t+3]=b,this.frames[t+4]=a},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.slots[this.slotIndex];if(e>=r[r.length-5]){var a=r.length-1;return n.r=r[a-3],n.g=r[a-2],n.b=r[a-1],n.a=r[a],void 0}var s=u.binarySearch(r,e,5),o=r[s-4],h=r[s-3],l=r[s-2],c=r[s-1],d=r[s],p=1-(e-d)/(r[s-5]-d);p=this.curves.getCurvePercent(s/5-1,p);var f=o+(r[s+1]-o)*p,g=h+(r[s+2]-h)*p,v=l+(r[s+3]-l)*p,m=c+(r[s+4]-c)*p;1>i?(n.r+=(f-n.r)*i,n.g+=(g-n.g)*i,n.b+=(v-n.b)*i,n.a+=(m-n.a)*i):(n.r=f,n.g=g,n.b=v,n.a=m)}}},u.AttachmentTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=t,this.attachmentNames=[],this.attachmentNames.length=t},u.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){this.frames[t]=e,this.attachmentNames[t]=i},apply:function(t,e){var i=this.frames;if(!(i[0]>e)){var r;r=e>=i[i.length-1]?i.length-1:u.binarySearch(i,e,1)-1;var n=this.attachmentNames[r];t.slots[this.slotIndex].setAttachment(n?t.getAttachmentBySlotIndex(this.slotIndex,n):null)}}},u.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},u.SkeletonData.prototype={defaultSkin:null,findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return slot[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSkin:function(t){for(var e=this.skins,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findAnimation:function(t){for(var e=this.animations,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null}},u.Skeleton=function(t){this.data=t,this.bones=[];for(var e=0,i=t.bones.length;i>e;e++){var r=t.bones[e],n=r.parent?this.bones[t.bones.indexOf(r.parent)]:null;this.bones.push(new u.Bone(r,n))}this.slots=[],this.drawOrder=[];for(var e=0,i=t.slots.length;i>e;e++){var a=t.slots[e],s=this.bones[t.bones.indexOf(a.boneData)],o=new u.Slot(a,this,s);this.slots.push(o),this.drawOrder.push(o)}},u.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var t=this.flipX,e=this.flipY,i=this.bones,r=0,n=i.length;n>r;r++)i[r].updateWorldTransform(t,e)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var t=this.bones,e=0,i=t.length;i>e;e++)t[e].setToSetupPose()},setSlotsToSetupPose:function(){for(var t=this.slots,e=0,i=t.length;i>e;e++)t[e].setToSetupPose(e)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},setSkinByName:function(t){var e=this.data.findSkin(t);if(!e)throw"Skin not found: "+t;this.setSkin(e)},setSkin:function(t){this.skin&&t&&t._attachAll(this,this.skin),this.skin=t},getAttachmentBySlotName:function(t,e){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(t),e)},getAttachmentBySlotIndex:function(t,e){if(this.skin){var i=this.skin.getAttachment(t,e);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},setAttachment:function(t,e){for(var i=this.slots,r=0,n=i.size;n>r;r++){var a=i[r];if(a.data.name==t){var s=null;if(e&&(s=this.getAttachment(r,e),null==s))throw"Attachment not found: "+e+", for slot: "+t;return a.setAttachment(s),void 0}}throw"Slot not found: "+t},update:function(t){time+=t}},u.AttachmentType={region:0},u.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},u.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(t,e,i,r,n){var a=this.uvs;n?(a[2]=t,a[3]=r,a[4]=t,a[5]=e,a[6]=i,a[7]=e,a[0]=i,a[1]=r):(a[0]=t,a[1]=r,a[2]=t,a[3]=e,a[4]=i,a[5]=e,a[6]=i,a[7]=r)},updateOffset:function(){var t=this.width/this.regionOriginalWidth*this.scaleX,e=this.height/this.regionOriginalHeight*this.scaleY,i=-this.width/2*this.scaleX+this.regionOffsetX*t,r=-this.height/2*this.scaleY+this.regionOffsetY*e,n=i+this.regionWidth*t,a=r+this.regionHeight*e,s=this.rotation*Math.PI/180,o=Math.cos(s),h=Math.sin(s),l=i*o+this.x,u=i*h,c=r*o+this.y,d=r*h,p=n*o+this.x,f=n*h,g=a*o+this.y,v=a*h,m=this.offset;m[0]=l-d,m[1]=c+u,m[2]=l-v,m[3]=g+u,m[4]=p-v,m[5]=g+f,m[6]=p-d,m[7]=c+f},computeVertices:function(t,e,i,r){t+=i.worldX,e+=i.worldY;var n=i.m00,a=i.m01,s=i.m10,o=i.m11,h=this.offset;r[0]=h[0]*n+h[1]*a+t,r[1]=h[0]*s+h[1]*o+e,r[2]=h[2]*n+h[3]*a+t,r[3]=h[2]*s+h[3]*o+e,r[4]=h[4]*n+h[5]*a+t,r[5]=h[4]*s+h[5]*o+e,r[6]=h[6]*n+h[7]*a+t,r[7]=h[6]*s+h[7]*o+e}},u.AnimationStateData=function(t){this.skeletonData=t,this.animationToMixTime={}},u.AnimationStateData.prototype={setMixByName:function(t,e,i){var r=this.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;var n=this.skeletonData.findAnimation(e);if(!n)throw"Animation not found: "+e;this.setMix(r,n,i)},setMix:function(t,e,i){this.animationToMixTime[t.name+":"+e.name]=i},getMix:function(t,e){var i=this.animationToMixTime[t.name+":"+e.name];return i?i:0}},u.AnimationState=function(t){this.data=t,this.queue=[]},u.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(t){if(this.currentTime+=t,this.previousTime+=t,this.mixTime+=t,this.queue.length>0){var e=this.queue[0];this.currentTime>=e.delay&&(this._setAnimation(e.animation,e.loop),this.queue.shift())}},apply:function(t){if(this.current)if(this.previous){this.previous.apply(t,this.previousTime,this.previousLoop);var e=this.mixTime/this.mixDuration;e>=1&&(e=1,this.previous=null),this.current.mix(t,this.currentTime,this.currentLoop,e)}else this.current.apply(t,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(t,e){this.previous=null,t&&this.current&&(this.mixDuration=this.data.getMix(this.current,t),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=t,this.currentLoop=e,this.currentTime=0},setAnimationByName:function(t,e){var i=this.data.skeletonData.findAnimation(t);if(!i)throw"Animation not found: "+t;this.setAnimation(i,e)},setAnimation:function(t,e){this.queue.length=0,this._setAnimation(t,e)},addAnimationByName:function(t,e,i){var r=this.data.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;this.addAnimation(r,e,i)},addAnimation:function(t,e,i){var r={};if(r.animation=t,r.loop=e,!i||0>=i){var n=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;i=null!=n?n.duration-this.data.getMix(n,t)+(i||0):0}r.delay=i,this.queue.push(r)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},u.SkeletonJson=function(t){this.attachmentLoader=t},u.SkeletonJson.prototype={scale:1,readSkeletonData:function(t){for(var e=new u.SkeletonData,i=t.bones,r=0,n=i.length;n>r;r++){var a=i[r],s=null;if(a.parent&&(s=e.findBone(a.parent),!s))throw"Parent bone not found: "+a.parent;var o=new u.BoneData(a.name,s);o.length=(a.length||0)*this.scale,o.x=(a.x||0)*this.scale,o.y=(a.y||0)*this.scale,o.rotation=a.rotation||0,o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1,e.bones.push(o)}for(var h=t.slots,r=0,n=h.length;n>r;r++){var l=h[r],o=e.findBone(l.bone);if(!o)throw"Slot bone not found: "+l.bone;var c=new u.SlotData(l.name,o),d=l.color;d&&(c.r=u.SkeletonJson.toColor(d,0),c.g=u.SkeletonJson.toColor(d,1),c.b=u.SkeletonJson.toColor(d,2),c.a=u.SkeletonJson.toColor(d,3)),c.attachmentName=l.attachment,e.slots.push(c)}var p=t.skins;for(var f in p)if(p.hasOwnProperty(f)){var g=p[f],v=new u.Skin(f);for(var m in g)if(g.hasOwnProperty(m)){var x=e.findSlotIndex(m),b=g[m];for(var y in b)if(b.hasOwnProperty(y)){var T=this.readAttachment(v,y,b[y]);null!=T&&v.addAttachment(x,y,T)}}e.skins.push(v),"default"==v.name&&(e.defaultSkin=v)}var A=t.animations;for(var w in A)A.hasOwnProperty(w)&&this.readAnimation(w,A[w],e);return e},readAttachment:function(t,e,i){e=i.name||e;var r=u.AttachmentType[i.type||"region"],n=new u.RegionAttachment;return n.name=e,r==u.AttachmentType.region&&(n.x=(i.x||0)*this.scale,n.y=(i.y||0)*this.scale,n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1,n.rotation=i.rotation||0,n.width=(i.width||32)*this.scale,n.height=(i.height||32)*this.scale,n.updateOffset()),n},readAnimation:function(t,e,i){var r=[],n=0,a=e.bones;for(var s in a)if(a.hasOwnProperty(s)){var o=i.findBoneIndex(s);if(-1==o)throw"Bone not found: "+s;var h=a[s];for(var l in h)if(h.hasOwnProperty(l)){var c=h[l];if("rotate"==l){var d=new u.RotateTimeline(c.length);d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p,v.time,v.angle),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[2*d.getFrameCount()-2])}else{if("translate"!=l&&"scale"!=l)throw"Invalid timeline type for a bone: "+l+" ("+s+")";var d,m=1;"scale"==l?d=new u.ScaleTimeline(c.length):(d=new u.TranslateTimeline(c.length),m=this.scale),d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],x=(v.x||0)*m,b=(v.y||0)*m;d.setFrame(p,v.time,x,b),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[3*d.getFrameCount()-3])}}}var y=e.slots;for(var T in y)if(y.hasOwnProperty(T)){var A=y[T],w=i.findSlotIndex(T);for(var l in A)if(A.hasOwnProperty(l)){var c=A[l];if("color"==l){var d=new u.ColorTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],_=v.color,R=u.SkeletonJson.toColor(_,0),S=u.SkeletonJson.toColor(_,1),C=u.SkeletonJson.toColor(_,2),L=u.SkeletonJson.toColor(_,3);d.setFrame(p,v.time,R,S,C,L),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[5*d.getFrameCount()-5])}else{if("attachment"!=l)throw"Invalid timeline type for a slot: "+l+" ("+T+")";var d=new u.AttachmentTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p++,v.time,v.name)}r.push(d),n=Math.max(n,d.frames[Math.floor(d.getFrameCount())-1])}}}i.animations.push(new u.Animation(t,r,n))}},u.SkeletonJson.readCurve=function(t,e,i){var r=i.curve;r&&("stepped"==r?t.curves.setStepped(e):r instanceof Array&&t.curves.setCurve(e,r[0],r[1],r[2],r[3]))},u.SkeletonJson.toColor=function(t,e){if(8!=t.length)throw"Color hexidecimal length must be 8, recieved: "+t;return parseInt(t.substring(2*e,2),16)/255},u.Atlas=function(t,e){this.textureLoader=e,this.pages=[],this.regions=[];var i=new u.AtlasReader(t),r=[];r.length=4;for(var n=null;;){var a=i.readLine();if(null==a)break;if(a=i.trim(a),0==a.length)n=null;else if(n){var s=new u.AtlasRegion;s.name=a,s.page=n,s.rotate="true"==i.readValue(),i.readTuple(r);var o=parseInt(r[0]),h=parseInt(r[1]);i.readTuple(r);var l=parseInt(r[0]),c=parseInt(r[1]);s.u=o/n.width,s.v=h/n.height,s.rotate?(s.u2=(o+c)/n.width,s.v2=(h+l)/n.height):(s.u2=(o+l)/n.width,s.v2=(h+c)/n.height),s.x=o,s.y=h,s.width=Math.abs(l),s.height=Math.abs(c),4==i.readTuple(r)&&(s.splits=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],4==i.readTuple(r)&&(s.pads=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],i.readTuple(r))),s.originalWidth=parseInt(r[0]),s.originalHeight=parseInt(r[1]),i.readTuple(r),s.offsetX=parseInt(r[0]),s.offsetY=parseInt(r[1]),s.index=parseInt(i.readValue()),this.regions.push(s)}else{n=new u.AtlasPage,n.name=a,n.format=u.Atlas.Format[i.readValue()],i.readTuple(r),n.minFilter=u.Atlas.TextureFilter[r[0]],n.magFilter=u.Atlas.TextureFilter[r[1]];var d=i.readValue();n.uWrap=u.Atlas.TextureWrap.clampToEdge,n.vWrap=u.Atlas.TextureWrap.clampToEdge,"x"==d?n.uWrap=u.Atlas.TextureWrap.repeat:"y"==d?n.vWrap=u.Atlas.TextureWrap.repeat:"xy"==d&&(n.uWrap=n.vWrap=u.Atlas.TextureWrap.repeat),e.load(n,a),this.pages.push(n)}}},u.Atlas.prototype={findRegion:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},dispose:function(){for(var t=this.pages,e=0,i=t.length;i>e;e++)this.textureLoader.unload(t[e].rendererObject)},updateUVs:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++){var n=e[i];n.page==t&&(n.u=n.x/t.width,n.v=n.y/t.height,n.rotate?(n.u2=(n.x+n.height)/t.width,n.v2=(n.y+n.width)/t.height):(n.u2=(n.x+n.width)/t.width,n.v2=(n.y+n.height)/t.height))}}},u.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},u.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},u.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},u.AtlasPage=function(){},u.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},u.AtlasRegion=function(){},u.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},u.AtlasReader=function(t){this.lines=t.split(/\r\n|\r|\n/)},u.AtlasReader.prototype={index:0,trim:function(t){return t.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw"Invalid line: "+t;return this.trim(t.substring(e+1))},readTuple:function(t){var e=this.readLine(),i=e.indexOf(":");if(-1==i)throw"Invalid line: "+e;for(var r=0,n=i+1;3>r;r++){var a=e.indexOf(",",n);if(-1==a){if(0==r)throw"Invalid line: "+e;break}t[r]=this.trim(e.substr(n,a-n)),n=a+1}return t[r]=this.trim(e.substring(n)),r+1}},u.AtlasAttachmentLoader=function(t){this.atlas=t},u.AtlasAttachmentLoader.prototype={newAttachment:function(t,e,i){switch(e){case u.AttachmentType.region:var r=this.atlas.findRegion(i);if(!r)throw"Region not found in atlas: "+i+" ("+e+")";var n=new u.RegionAttachment(i);return n.rendererObject=r,n.setUVs(r.u,r.v,r.u2,r.v2,r.rotate),n.regionOffsetX=r.offsetX,n.regionOffsetY=r.offsetY,n.regionWidth=r.width,n.regionHeight=r.height,n.regionOriginalWidth=r.originalWidth,n.regionOriginalHeight=r.originalHeight,n}throw"Unknown attachment type: "+e}},n.AnimCache={},u.Bone.yDown=!0,n.CustomRenderable=function(){n.DisplayObject.call(this)},n.CustomRenderable.constructor=n.CustomRenderable,n.CustomRenderable.prototype=Object.create(n.DisplayObject.prototype),n.CustomRenderable.prototype.renderCanvas=function(){},n.CustomRenderable.prototype.initWebGL=function(){},n.CustomRenderable.prototype.renderWebGL=function(){},n.BaseTextureCache={},n.texturesToUpdate=[],n.texturesToDestroy=[],n.BaseTexture=function(t){if(n.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,n.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);this._powerOf2=!1}},n.BaseTexture.constructor=n.BaseTexture,n.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,n.texturesToDestroy.push(this)},n.BaseTexture.fromImage=function(t,e){var i=n.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new n.BaseTexture(r),n.BaseTextureCache[t]=i}return i},n.TextureCache={},n.FrameCache={},n.Texture=function(t,e){if(n.EventTarget.call(this),e||(this.noFrame=!0,e=new n.Rectangle(0,0,1,1)),this.trim=new n.Point,t instanceof n.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new n.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},n.Texture.constructor=n.Texture,n.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new n.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},n.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},n.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,n.Texture.frameUpdates.push(this)},n.Texture.fromImage=function(t,e){var i=n.TextureCache[t];return i||(i=new n.Texture(n.BaseTexture.fromImage(t,e)),n.TextureCache[t]=i),i},n.Texture.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},n.Texture.fromCanvas=function(t){var e=new n.BaseTexture(t);return new n.Texture(e)},n.Texture.addTextureToCache=function(t,e){n.TextureCache[e]=t},n.Texture.removeTextureFromCache=function(t){var e=n.TextureCache[t];return n.TextureCache[t]=null,e},n.Texture.frameUpdates=[],n.RenderTexture=function(t,e){n.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=n.mat3.create(),this.frame=new n.Rectangle(0,0,this.width,this.height),n.gl?this.initWebGL():this.initCanvas()},n.RenderTexture.constructor=n.RenderTexture,n.RenderTexture.prototype=Object.create(n.Texture.prototype),n.RenderTexture.prototype.initWebGL=function(){var t=n.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new n.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new n.Point(this.width/2,this.height/2),this.projectionMatrix=n.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},n.RenderTexture.prototype.initCanvas=function(){this.renderer=new n.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new n.BaseTexture(this.renderer.view),this.frame=new n.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},n.RenderTexture.prototype.renderWebGL=function(t,e){var i=n.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=n.mat3.create(),t.worldTransform[4]=-1,t.worldTransform[5]=2*this.projection.y;for(var a=0,s=r.length;s>a;a++)r[a].updateTransform();var o=t.__renderGroup;o?t==o.root?o.render(this.projection):o.renderSpecific(t,this.projection):(this.renderGroup||(this.renderGroup=new n.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projection))},n.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=n.mat3.create();for(var r=0,a=i.length;a>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),n.texturesToUpdate.push(this.baseTexture)},n.AssetLoader=function(t){n.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:n.ImageLoader,jpeg:n.ImageLoader,png:n.ImageLoader,gif:n.ImageLoader,json:n.JsonLoader,anim:n.SpineLoader,xml:n.BitmapFontLoader,fnt:n.BitmapFontLoader}},n.AssetLoader.constructor=n.AssetLoader,n.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),n=this.loadersByType[r];if(!n)throw Error(r+" is an unsupported file type");var a=new n(i,this.crossorigin);a.addEventListener("loaded",function(){t.onAssetLoaded()}),a.load()}},n.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},n.JsonLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.crossorigin=e,this.loaded=!1},n.JsonLoader.constructor=n.JsonLoader,n.JsonLoader.prototype.load=function(){this.ajaxRequest=new l;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},n.JsonLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState)if(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))if(this.json=JSON.parse(this.ajaxRequest.responseText),this.json.frames){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0))}i.load()}else if(this.json.bones){var o=new u.SkeletonJson,h=o.readSkeletonData(this.json);n.AnimCache[this.url]=h,this.onLoaded()}else this.onLoaded();else this.onError()},n.JsonLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},n.JsonLoader.prototype.onError=function(){this.dispatchEvent({type:"error",content:this})},n.SpriteSheetLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},n.SpriteSheetLoader.constructor=n.SpriteSheetLoader,n.SpriteSheetLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpriteSheetLoader.prototype.onJSONLoaded=function(){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0)) }i.load()},n.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.ImageLoader=function(t,e){n.EventTarget.call(this),this.texture=n.Texture.fromImage(t,e)},n.ImageLoader.constructor=n.ImageLoader,n.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},n.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.BitmapFontLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},n.BitmapFontLoader.constructor=n.BitmapFontLoader,n.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},n.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new n.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],a=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(a.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var s=this.ajaxRequest.responseXML.getElementsByTagName("char"),o=0;s.length>o;o++){var h=parseInt(s[o].attributes.getNamedItem("id").nodeValue,10),l={x:parseInt(s[o].attributes.getNamedItem("x").nodeValue,10),y:parseInt(s[o].attributes.getNamedItem("y").nodeValue,10),width:parseInt(s[o].attributes.getNamedItem("width").nodeValue,10),height:parseInt(s[o].attributes.getNamedItem("height").nodeValue,10)};n.TextureCache[h]=new n.Texture(this.texture,l),i.chars[h]={xOffset:parseInt(s[o].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(s[o].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(s[o].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{},texture:new n.Texture(this.texture,l)}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(o=0;u.length>o;o++){var c=parseInt(u[o].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[o].attributes.getNamedItem("second").nodeValue,10),p=parseInt(u[o].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=p}n.BitmapText.fonts[i.font]=i;var f=this;e.addEventListener("loaded",function(){f.onLoaded()}),e.load()}},n.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.SpineLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.crossorigin=e,this.loaded=!1},n.SpineLoader.constructor=n.SpineLoader,n.SpineLoader.prototype.load=function(){new n.JsonLoader(this.url,this.crossorigin),jsonLoader.addEventListener("loaded",function(t){scope.json=t.content.json,scope.onJSONLoaded()}),jsonLoader.load()},n.SpineLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpineLoader.prototype.onJSONLoaded=function(){var t=new u.SkeletonJson,e=t.readSkeletonData(this.json);n.AnimCache[this.url]=e,this.onLoaded()},n.SpineLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports.PIXI=n):i.PIXI=n}).call(this); \ No newline at end of file diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index 25cca17..0391561 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.js b/bin/pixi.js index 51d6836..96307b0 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -9,7 +9,7 @@ * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; +(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[],t._webGL.indices=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; if(0!=r.length){var a=new n.Point(r[0],r[1]),s=new n.Point(r[r.length-2],r[r.length-1]);if(a.x==s.x&&a.y==s.y){r.pop(),r.pop(),s=new n.Point(r[r.length-2],r[r.length-1]);var o=s.x+.5*(a.x-s.x),h=s.y+.5*(a.y-s.y);r.unshift(o,h),r.push(o,h)}var l,u,c,d,p,f,g,v,m,x,b,y,T,A,w,_,R,S,C,L,E,B=i.points,F=i.indices,P=r.length/2,G=r.length,I=B.length/6,D=t.lineWidth/2,M=e(t.lineColor),O=t.lineAlpha,W=M[0]*O,U=M[1]*O,j=M[2]*O;l=r[0],u=r[1],c=r[2],d=r[3],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(l-g,u-v,W,U,j,O),B.push(l+g,u+v,W,U,j,O);for(var k=1;P-1>k;k++)l=r[2*(k-1)],u=r[2*(k-1)+1],c=r[2*k],d=r[2*k+1],p=r[2*(k+1)],f=r[2*(k+1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,m=-(d-f),x=c-p,E=Math.sqrt(m*m+x*x),m/=E,x/=E,m*=D,x*=D,T=-v+u-(-v+d),A=-g+c-(-g+l),w=(-g+l)*(-v+d)-(-g+c)*(-v+u),_=-x+f-(-x+d),R=-m+c-(-m+p),S=(-m+p)*(-x+d)-(-m+c)*(-x+f),C=T*R-_*A,0==C&&(C+=1),px=(A*S-R*w)/C,py=(_*w-T*S)/C,L=(px-c)*(px-c)+(py-d)+(py-d),L>19600?(b=g-m,y=v-x,E=Math.sqrt(b*b+y*y),b/=E,y/=E,b*=D,y*=D,B.push(c-b,d-y),B.push(W,U,j,O),B.push(c+b,d+y),B.push(W,U,j,O),B.push(c-b,d-y),B.push(W,U,j,O),G++):(B.push(px,py),B.push(W,U,j,O),B.push(c-(px-c),d-(py-d)),B.push(W,U,j,O));l=r[2*(P-2)],u=r[2*(P-2)+1],c=r[2*(P-1)],d=r[2*(P-1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(c-g,d-v),B.push(W,U,j,O),B.push(c+g,d+v),B.push(W,U,j,O),F.push(I);for(var k=0;G>k;k++)F.push(I++);F.push(I-1)}},n.WebGLGraphics.buildPoly=function(t,i){var r=t.points;if(!(6>r.length)){for(var a=i.points,s=i.indices,o=r.length/2,h=e(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=n.PolyK.Triangulate(r),f=a.length/6,g=0;p.length>g;g+=3)s.push(p[g]+f),s.push(p[g]+f),s.push(p[g+1]+f),s.push(p[g+2]+f),s.push(p[g+2]+f);for(var g=0;o>g;g++)a.push(r[2*g],r[2*g+1],u,c,d,l)}},n._defaultFrame=new n.Rectangle(0,0,1,1),n.gl,n.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var a=this;this.view.addEventListener("webglcontextlost",function(t){a.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){a.handleContextRestored(t)},!1),this.batchs=[];try{n.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!0,premultipliedAlpha:!1})}catch(s){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}n.initPrimitiveShader(),n.initDefaultShader(),n.initDefaultStripShader(),n.activateDefaultShader();var o=this.gl;n.WebGLRenderer.gl=o,this.batch=new n.WebGLBatch(o),o.disable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.enable(o.BLEND),o.colorMask(!0,!0,!0,this.transparent),n.projection=new n.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new n.WebGLRenderGroup(this.gl)},n.WebGLRenderer.constructor=n.WebGLRenderer,n.WebGLRenderer.getBatch=function(){return 0==n._batchs.length?new n.WebGLBatch(n.WebGLRenderer.gl):n._batchs.pop()},n.WebGLRenderer.returnBatch=function(t){t.clean(),n._batchs.push(t)},n.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),n.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],!this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(n.projection),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0){for(var i=0;n.Texture.frameUpdates.length>i;i++)n.Texture.frameUpdates[i].updateFrame=!1;n.Texture.frameUpdates=[]}}},n.WebGLRenderer.updateTextures=function(){for(var t=0;n.texturesToUpdate.length>t;t++)this.updateTexture(n.texturesToUpdate[t]);for(var t=0;n.texturesToDestroy.length>t;t++)this.destroyTexture(n.texturesToDestroy[t]);n.texturesToUpdate=[],n.texturesToDestroy=[]},n.WebGLRenderer.updateTexture=function(t){var e=n.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},n.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},n.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),n.projection.x=this.width/2,n.projection.y=this.height/2},n.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},n.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;n.TextureCache.length>t;t++)this.updateTexture(n.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;n._restoreBatchs(this.gl),this.contextLost=!1},n._batchs=[],n._getBatch=function(t){return 0==n._batchs.length?new n.WebGLBatch(t):n._batchs.pop()},n._returnBatch=function(t){t.clean(),n._batchs.push(t)},n._restoreBatchs=function(t){for(var e=0;n._batchs.length>e;e++)n._batchs[e].restoreLostContext(t)},n.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=n.blendModes.NORMAL,this.dynamicSize=1},n.WebGLBatch.constructor=n.WebGLBatch,n.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},n.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},n.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},n.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},n.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},n.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},n.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new n.WebGLBatch(this.gl);e.init(t),e.texture=this.texture,e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},n.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},n.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,n=4*i;this.indices[r+0]=n+0,this.indices[r+1]=n+1,this.indices[r+2]=n+2,this.indices[r+3]=n+0,this.indices[r+4]=n+2,this.indices[r+5]=n+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},n.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof n.WebGLBatch?this.batchs[r].render():i instanceof n.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof n.Strip?i.visible&&this.renderStrip(i,t):i instanceof n.Graphics&&i.visible&&n.WebGLGraphics.renderGraphics(i,t)},n.WebGLRenderGroup.prototype.renderSpecific=function(t,e){n.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniform2f(n.shaderProgram.projectionVector,e.x,e.y);var r,a,s,o,h=t.renderable?t:this.getNextRenderable(t),l=h.batch;if(h instanceof n.Sprite){l=h.batch;var u=l.head;if(u==h)r=0;else for(r=1;u.__next!=h;)r++,u=u.__next}else l=h;for(var c,d=t,p=t;p.children.length>0;)p=p.children[p.children.length-1],p.renderable&&(d=p);if(d instanceof n.Sprite){c=d.batch;var u=c.head;if(u==d)s=0;else for(s=1;u.__next!=d;)s++,u=u.__next}else c=d;if(l==c)return l instanceof n.WebGLBatch?l.render(r,s+1):this.renderSpecial(l),void 0;a=this.batchs.indexOf(l),o=this.batchs.indexOf(c),l instanceof n.WebGLBatch?l.render(r):this.renderSpecial(l);for(var f=a+1;o>f;f++)renderable=this.batchs[f],renderable instanceof n.WebGLBatch?this.batchs[f].render():this.renderSpecial(renderable);c instanceof n.WebGLBatch?c.render(0,s+1):this.renderSpecial(c)},n.WebGLRenderGroup.prototype.renderSpecial=function(t){t instanceof n.TilingSprite?t.visible&&this.renderTilingSprite(t,projectionMatrix):t instanceof n.Strip?t.visible&&this.renderStrip(t,projectionMatrix):t instanceof n.CustomRenderable?t.visible&&t.renderWebGL(this,projectionMatrix):t instanceof n.Graphics&&t.visible&&n.WebGLGraphics.renderGraphics(t)},n.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var n=i[r];n.worldVisible=n.visible&&e,n.textureChange&&(n.textureChange=!1,n.worldVisible&&(this.removeDisplayObject(n),this.addDisplayObject(n))),n.children.length>0&&this.checkVisibility(n,n.worldVisible)}},n.WebGLRenderGroup.prototype.updateTexture=function(t){if(1==t.batch.length)return t.batch.texture=t.texture.baseTexture,void 0;if(t.batch.texture!=t.texture.baseTexture)if(t.batch.head==t){var e=t.batch,i=this.batchs.indexOf(e),r=this.batchs[i-1];if(e.remove(t),r)if(r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)r.insertAfter(t,r.tail);else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i-1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(0,0,a)}}else if(t.batch.tail==t){var e=t.batch,i=this.batchs.indexOf(e),s=this.batchs[i+1];if(e.remove(t),s){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,s.head),void 0;var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i+1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.push(a)}}else{var e=t.batch,o=e.split(t);o.remove(t);var a=n.WebGLRenderer.getBatch(),i=this.batchs.indexOf(e);a.init(t),this.batchs.splice(i+1,0,a,o)}},n.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof n.Sprite){var r,a;if(e instanceof n.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof n.Sprite){if(a=i.batch){if(a.texture==t.texture.baseTexture&&a.blendMode==t.blendMode)return a.insertBefore(t,i),void 0;if(a==r){var s=r.split(i),o=n.WebGLRenderer.getBatch(),h=this.batchs.indexOf(r);return o.init(t),this.batchs.splice(h+1,0,o,s),void 0}}}else a=i;var o=n.WebGLRenderer.getBatch();if(o.init(t),r){var h=this.batchs.indexOf(r);this.batchs.splice(h+1,0,o)}else this.batchs.push(o)}else t instanceof n.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof n.Strip?(this.initStrip(t),this.batchs.push(t)):t instanceof n.Graphics&&this.batchs.push(t);this.batchUpdate=!0}},n.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},n.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof n.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof n.WebGLBatch&&this.batchs[r+1]instanceof n.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),n.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e)}}},n.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},n.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},n.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=n.shaderProgram;i.useProgram(n.stripShaderProgram);var a=n.mat3.clone(t.worldTransform);n.mat3.transpose(a),i.uniformMatrix3fv(n.stripShaderProgram.translationMatrix,!1,a),i.uniform2f(n.stripShaderProgram.projectionVector,e.x,e.y),i.uniform1f(n.stripShaderProgram.alpha,t.worldAlpha),t.blendMode==n.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.useProgram(n.shaderProgram)},n.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;n.shaderProgram;var r=t.tilePosition,a=t.tileScale,s=r.x/t.texture.baseTexture.width,o=r.y/t.texture.baseTexture.height,h=t.width/t.texture.baseTexture.width/a.x,l=t.height/t.texture.baseTexture.height/a.y;t.uvs[0]=0-s,t.uvs[1]=0-o,t.uvs[2]=1*h-s,t.uvs[3]=0-o,t.uvs[4]=1*h-s,t.uvs[5]=1*l-o,t.uvs[6]=0-s,t.uvs[7]=1*l-o,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},n.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},n.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},n.CanvasRenderer.constructor=n.CanvasRenderer,n.CanvasRenderer.prototype.render=function(t){n.texturesToUpdate=[],n.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0&&(n.Texture.frameUpdates=[])},n.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},n.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof n.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof n.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof n.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof n.CustomRenderable?t.renderCanvas(this):t instanceof n.Graphics&&(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),n.CanvasGraphics.renderGraphics(t,i));if(t.children)for(var a=0;t.children.length>a;a++)this.renderDisplayObject(t.children[a]);this.context.setTransform(1,0,0,1,0,0)}},n.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var n=1;r-2>n;n++){var a=2*n,s=i[a],o=i[a+2],h=i[a+4],l=i[a+1],u=i[a+3],c=i[a+5];e.moveTo(s,l),e.lineTo(o,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},n.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;e.globalAlpha=t.worldAlpha,t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},n.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,n=i.length/2;this.count++;for(var a=1;n-2>a;a++){var s=2*a,o=i[s],h=i[s+2],l=i[s+4],u=i[s+1],c=i[s+3],d=i[s+5],p=r[s]*t.texture.width,f=r[s+2]*t.texture.width,g=r[s+4]*t.texture.width,v=r[s+1]*t.texture.height,m=r[s+3]*t.texture.height,x=r[s+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var b=p*m+v*g+f*x-m*g-v*f-p*x,y=o*m+v*l+h*x-m*l-v*h-o*x,T=p*h+o*g+f*l-h*g-o*f-p*l,A=p*m*l+v*h*g+o*f*x-o*m*g-v*f*l-p*h*x,w=u*m+v*d+c*x-m*d-v*c-u*x,_=p*c+u*g+f*d-c*g-u*f-p*d,R=p*m*d+v*c*g+u*f*x-u*m*g-v*f*d-p*c*x;e.transform(y/b,w/b,T/b,_/b,A/b,R/b),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},n.CanvasGraphics=function(){},n.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,r=0;t.graphicsData.length>r;r++){var a=t.graphicsData[r],s=a.points;if(e.strokeStyle=color="#"+("00000"+(0|a.lineColor).toString(16)).substr(-6),e.lineWidth=a.lineWidth,a.type==n.Graphics.POLY){e.beginPath(),e.moveTo(s[0],s[1]);for(var o=1;s.length/2>o;o++)e.lineTo(s[2*o],s[2*o+1]);s[0]==s[s.length-2]&&s[1]==s[s.length-1]&&e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}else if(a.type==n.Graphics.RECT)a.fillColor&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fillRect(s[0],s[1],s[2],s[3])),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.strokeRect(s[0],s[1],s[2],s[3]));else if(a.type==n.Graphics.CIRC)e.beginPath(),e.arc(s[0],s[1],s[2],0,2*Math.PI),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke());else if(a.type==n.Graphics.ELIP){var h=a.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,v=c+l,m=d+u,x=c+l/2,b=d+u/2;e.moveTo(c,b),e.bezierCurveTo(c,b-g,x-f,d,x,d),e.bezierCurveTo(x+f,d,v,b-g,v,b),e.bezierCurveTo(v,b+g,x+f,m,x,m),e.bezierCurveTo(x-f,m,c,b+g,c,b),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}}},n.Graphics=function(){n.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=2,this.lineColor="#FF0000",this.graphicsData=[],this.currentPath={points:[]}},n.Graphics.constructor=n.Graphics,n.Graphics.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Graphics.prototype.lineStyle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=void 0==i?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.graphicsData.push(this.currentPath)},n.Graphics.prototype.moveTo=function(t,e){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath)},n.Graphics.prototype.lineTo=function(t,e){this.currentPath.points.push(t,e),this.dirty=!0},n.Graphics.prototype.beginFill=function(t,e){this.filling=!0,this.fillColor=t||0,this.fillAlpha=e||1},n.Graphics.prototype.endFill=function(){this.filling=!1,this.fillColor=null,this.fillAlpha=1},n.Graphics.prototype.drawRect=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawCircle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:n.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawElipse=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.clear=function(){this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[]},n.Graphics.POLY=0,n.Graphics.RECT=1,n.Graphics.CIRC=2,n.Graphics.ELIP=3,n.Strip=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=n.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Strip.constructor=n.Strip,n.Strip.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},n.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Rope=function(t,e){n.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},n.Rope.constructor=n.Rope,n.Rope.prototype=Object.create(n.Strip.prototype),n.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,n=t[0],a=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var s=t.length,o=1;s>o;o++){var a=t[o],h=4*o,l=o/(s-1);o%2?(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1):(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,n=a}}},n.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],a={x:0,y:0},s=t[0];this.count-=.2,i[0]=s.x+a.x,i[1]=s.y+a.y,i[2]=s.x-a.x,i[3]=s.y-a.y;for(var o=t.length,h=1;o>h;h++){var s=t[h],l=4*h;e=t.length-1>h?t[h+1]:s,a.y=-(e.x-r.x),a.x=e.y-r.y;var u=10*(1-h/(o-1));u>1&&(u=1);var c=Math.sqrt(a.x*a.x+a.y*a.y),d=this.texture.height/2;a.x/=c,a.y/=c,a.x*=d,a.y*=d,i[l]=s.x+a.x,i[l+1]=s.y+a.y,i[l+2]=s.x-a.x,i[l+3]=s.y-a.y,r=s}n.DisplayObjectContainer.prototype.updateTransform.call(this)}},n.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0 },n.TilingSprite=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new n.Point(1,1),this.tilePosition=new n.Point(0,0),this.blendMode=n.blendModes.NORMAL},n.TilingSprite.constructor=n.TilingSprite,n.TilingSprite.prototype=Object.create(n.DisplayObjectContainer.prototype),n.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},n.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Spine=function(t){if(n.DisplayObjectContainer.call(this),this.spineData=n.AnimCache[t],!this.spineData)throw Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+t);this.count=0,this.sprites=[],this.skeleton=new u.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new u.AnimationStateData(this.spineData),this.state=new u.AnimationState(this.stateData);for(var e=0;this.skeleton.drawOrder.length>e;e++){var i=this.skeleton.drawOrder[e].data.attachmentName;n.TextureCache[i]||(i+=".png");var r=new n.Sprite(n.Texture.fromFrame(i));r.anchor.x=r.anchor.y=.5,this.addChild(r),this.sprites.push(r)}},n.Spine.constructor=n.Spine,n.Spine.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Spine.prototype.updateTransform=function(){this.state.update(1/60),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var t=0;this.skeleton.drawOrder.length>t;t++){var e=this.skeleton.drawOrder[t],i=e.bone.worldX+e.attachment.x*e.bone.m00+e.attachment.y*e.bone.m01+.5*e.attachment.width,r=e.bone.worldY+e.attachment.x*e.bone.m10+e.attachment.y*e.bone.m11+.5*e.attachment.height;if(e.cacheName!=e.attachment.name){var a=e.attachment.name;n.TextureCache[a]||(a+=".png"),this.sprites[t].setTexture(n.TextureCache[a]),e.cacheName=e.attachment.name}i+=-(e.attachment.width*(e.bone.worldScaleX+e.attachment.scaleX-1)>>1),r+=-(e.attachment.height*(e.bone.worldScaleY+e.attachment.scaleY-1)>>1),this.sprites[t].position.x=i,this.sprites[t].position.y=r,this.sprites[t].rotation=-(e.bone.worldRotation+e.attachment.rotation)*(Math.PI/180)}n.DisplayObjectContainer.prototype.updateTransform.call(this)};var u={};u.BoneData=function(t,e){this.name=t,this.parent=e},u.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},u.SlotData=function(t,e){this.name=t,this.boneData=e},u.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},u.Bone=function(t,e){this.data=t,this.parent=e,this.setToSetupPose()},u.Bone.yDown=!1,u.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(t,e){var i=this.parent;null!=i?(this.worldX=this.x*i.m00+this.y*i.m01+i.worldX,this.worldY=this.x*i.m10+this.y*i.m11+i.worldY,this.worldScaleX=i.worldScaleX*this.scaleX,this.worldScaleY=i.worldScaleY*this.scaleY,this.worldRotation=i.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var r=this.worldRotation*Math.PI/180,n=Math.cos(r),a=Math.sin(r);this.m00=n*this.worldScaleX,this.m10=a*this.worldScaleX,this.m01=-a*this.worldScaleY,this.m11=n*this.worldScaleY,t&&(this.m00=-this.m00,this.m01=-this.m01),e&&(this.m10=-this.m10,this.m11=-this.m11),u.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY}},u.Slot=function(t,e,i){this.data=t,this.skeleton=e,this.bone=i,this.setToSetupPose()},u.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(t){this.attachment=t,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(t){this._attachmentTime=this.skeleton.time-t},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var t=this.data;this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a;for(var e=this.skeleton.data.slots,i=0,r=e.length;r>i;i++)if(e[i]==t){this.setAttachment(t.attachmentName?this.skeleton.getAttachmentBySlotIndex(i,t.attachmentName):null);break}}},u.Skin=function(t){this.name=t,this.attachments={}},u.Skin.prototype={addAttachment:function(t,e,i){this.attachments[t+":"+e]=i},getAttachment:function(t,e){return this.attachments[t+":"+e]},_attachAll:function(t,e){for(var i in e.attachments){var r=i.indexOf(":"),n=parseInt(i.substring(0,r)),a=i.substring(r+1),s=t.slots[n];if(s.attachment&&s.attachment.name==a){var o=this.getAttachment(n,a);o&&s.setAttachment(o)}}}},u.Animation=function(t,e,i){this.name=t,this.timelines=e,this.duration=i},u.Animation.prototype={apply:function(t,e,i){i&&0!=this.duration&&(e%=this.duration);for(var r=this.timelines,n=0,a=r.length;a>n;n++)r[n].apply(t,e,1)},mix:function(t,e,i,r){i&&0!=this.duration&&(e%=this.duration);for(var n=this.timelines,a=0,s=n.length;s>a;a++)n[a].apply(t,e,r)}},u.binarySearch=function(t,e,i){var r=0,n=Math.floor(t.length/i)-2;if(0==n)return i;for(var a=n>>>1;;){if(e>=t[(a+1)*i]?r=a+1:n=a,r==n)return(r+1)*i;a=r+n>>>1}},u.linearSearch=function(t,e,i){for(var r=0,n=t.length-i;n>=r;r+=i)if(t[r]>e)return r;return-1},u.Curves=function(t){this.curves=[],this.curves.length=6*(t-1)},u.Curves.prototype={setLinear:function(t){this.curves[6*t]=0},setStepped:function(t){this.curves[6*t]=-1},setCurve:function(t,e,i,r,n){var a=.1,s=a*a,o=s*a,h=3*a,l=3*s,u=6*s,c=6*o,d=2*-e+r,p=2*-i+n,f=3*(e-r)+1,g=3*(i-n)+1,v=6*t,m=this.curves;m[v]=e*h+d*l+f*o,m[v+1]=i*h+p*l+g*o,m[v+2]=d*u+f*c,m[v+3]=p*u+g*c,m[v+4]=f*c,m[v+5]=g*c},getCurvePercent:function(t,e){e=0>e?0:e>1?1:e;var i=6*t,r=this.curves,n=r[i];if(!n)return e;if(-1==n)return 0;for(var a=r[i+1],s=r[i+2],o=r[i+3],h=r[i+4],l=r[i+5],u=n,c=a,d=8;;){if(u>=e){var p=u-n,f=c-a;return f+(c-f)*(e-p)/(u-p)}if(0==d)break;d--,n+=s,a+=o,s+=h,o+=l,u+=n,c+=a}return c+(1-c)*(e-u)/(1-u)}},u.RotateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=2*t},u.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){t*=2,this.frames[t]=e,this.frames[t+1]=i},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-2]){for(var a=n.data.rotation+r[r.length-1]-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;return n.rotation+=a*i,void 0}var s=u.binarySearch(r,e,2),o=r[s-1],h=r[s],l=1-(e-h)/(r[s-2]-h);l=this.curves.getCurvePercent(s/2-1,l);for(var a=r[s+1]-o;a>180;)a-=360;for(;-180>a;)a+=360;for(a=n.data.rotation+(o+a*l)-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;n.rotation+=a*i}}},u.TranslateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.x+=(n.data.x+r[r.length-2]-n.x)*i,n.y+=(n.data.y+r[r.length-1]-n.y)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.x+=(n.data.x+s+(r[a+1]-s)*l-n.x)*i,n.y+=(n.data.y+o+(r[a+2]-o)*l-n.y)*i}}},u.ScaleTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.scaleX+=(n.data.scaleX-1+r[r.length-2]-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+r[r.length-1]-n.scaleY)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.scaleX+=(n.data.scaleX-1+s+(r[a+1]-s)*l-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+o+(r[a+2]-o)*l-n.scaleY)*i}}},u.ColorTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=5*t},u.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e){t*=5,this.frames[t]=e,this.frames[t+1]=r,this.frames[t+2]=g,this.frames[t+3]=b,this.frames[t+4]=a},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.slots[this.slotIndex];if(e>=r[r.length-5]){var a=r.length-1;return n.r=r[a-3],n.g=r[a-2],n.b=r[a-1],n.a=r[a],void 0}var s=u.binarySearch(r,e,5),o=r[s-4],h=r[s-3],l=r[s-2],c=r[s-1],d=r[s],p=1-(e-d)/(r[s-5]-d);p=this.curves.getCurvePercent(s/5-1,p);var f=o+(r[s+1]-o)*p,g=h+(r[s+2]-h)*p,v=l+(r[s+3]-l)*p,m=c+(r[s+4]-c)*p;1>i?(n.r+=(f-n.r)*i,n.g+=(g-n.g)*i,n.b+=(v-n.b)*i,n.a+=(m-n.a)*i):(n.r=f,n.g=g,n.b=v,n.a=m)}}},u.AttachmentTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=t,this.attachmentNames=[],this.attachmentNames.length=t},u.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){this.frames[t]=e,this.attachmentNames[t]=i},apply:function(t,e){var i=this.frames;if(!(i[0]>e)){var r;r=e>=i[i.length-1]?i.length-1:u.binarySearch(i,e,1)-1;var n=this.attachmentNames[r];t.slots[this.slotIndex].setAttachment(n?t.getAttachmentBySlotIndex(this.slotIndex,n):null)}}},u.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},u.SkeletonData.prototype={defaultSkin:null,findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return slot[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSkin:function(t){for(var e=this.skins,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findAnimation:function(t){for(var e=this.animations,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null}},u.Skeleton=function(t){this.data=t,this.bones=[];for(var e=0,i=t.bones.length;i>e;e++){var r=t.bones[e],n=r.parent?this.bones[t.bones.indexOf(r.parent)]:null;this.bones.push(new u.Bone(r,n))}this.slots=[],this.drawOrder=[];for(var e=0,i=t.slots.length;i>e;e++){var a=t.slots[e],s=this.bones[t.bones.indexOf(a.boneData)],o=new u.Slot(a,this,s);this.slots.push(o),this.drawOrder.push(o)}},u.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var t=this.flipX,e=this.flipY,i=this.bones,r=0,n=i.length;n>r;r++)i[r].updateWorldTransform(t,e)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var t=this.bones,e=0,i=t.length;i>e;e++)t[e].setToSetupPose()},setSlotsToSetupPose:function(){for(var t=this.slots,e=0,i=t.length;i>e;e++)t[e].setToSetupPose(e)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},setSkinByName:function(t){var e=this.data.findSkin(t);if(!e)throw"Skin not found: "+t;this.setSkin(e)},setSkin:function(t){this.skin&&t&&t._attachAll(this,this.skin),this.skin=t},getAttachmentBySlotName:function(t,e){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(t),e)},getAttachmentBySlotIndex:function(t,e){if(this.skin){var i=this.skin.getAttachment(t,e);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},setAttachment:function(t,e){for(var i=this.slots,r=0,n=i.size;n>r;r++){var a=i[r];if(a.data.name==t){var s=null;if(e&&(s=this.getAttachment(r,e),null==s))throw"Attachment not found: "+e+", for slot: "+t;return a.setAttachment(s),void 0}}throw"Slot not found: "+t},update:function(t){time+=t}},u.AttachmentType={region:0},u.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},u.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(t,e,i,r,n){var a=this.uvs;n?(a[2]=t,a[3]=r,a[4]=t,a[5]=e,a[6]=i,a[7]=e,a[0]=i,a[1]=r):(a[0]=t,a[1]=r,a[2]=t,a[3]=e,a[4]=i,a[5]=e,a[6]=i,a[7]=r)},updateOffset:function(){var t=this.width/this.regionOriginalWidth*this.scaleX,e=this.height/this.regionOriginalHeight*this.scaleY,i=-this.width/2*this.scaleX+this.regionOffsetX*t,r=-this.height/2*this.scaleY+this.regionOffsetY*e,n=i+this.regionWidth*t,a=r+this.regionHeight*e,s=this.rotation*Math.PI/180,o=Math.cos(s),h=Math.sin(s),l=i*o+this.x,u=i*h,c=r*o+this.y,d=r*h,p=n*o+this.x,f=n*h,g=a*o+this.y,v=a*h,m=this.offset;m[0]=l-d,m[1]=c+u,m[2]=l-v,m[3]=g+u,m[4]=p-v,m[5]=g+f,m[6]=p-d,m[7]=c+f},computeVertices:function(t,e,i,r){t+=i.worldX,e+=i.worldY;var n=i.m00,a=i.m01,s=i.m10,o=i.m11,h=this.offset;r[0]=h[0]*n+h[1]*a+t,r[1]=h[0]*s+h[1]*o+e,r[2]=h[2]*n+h[3]*a+t,r[3]=h[2]*s+h[3]*o+e,r[4]=h[4]*n+h[5]*a+t,r[5]=h[4]*s+h[5]*o+e,r[6]=h[6]*n+h[7]*a+t,r[7]=h[6]*s+h[7]*o+e}},u.AnimationStateData=function(t){this.skeletonData=t,this.animationToMixTime={}},u.AnimationStateData.prototype={setMixByName:function(t,e,i){var r=this.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;var n=this.skeletonData.findAnimation(e);if(!n)throw"Animation not found: "+e;this.setMix(r,n,i)},setMix:function(t,e,i){this.animationToMixTime[t.name+":"+e.name]=i},getMix:function(t,e){var i=this.animationToMixTime[t.name+":"+e.name];return i?i:0}},u.AnimationState=function(t){this.data=t,this.queue=[]},u.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(t){if(this.currentTime+=t,this.previousTime+=t,this.mixTime+=t,this.queue.length>0){var e=this.queue[0];this.currentTime>=e.delay&&(this._setAnimation(e.animation,e.loop),this.queue.shift())}},apply:function(t){if(this.current)if(this.previous){this.previous.apply(t,this.previousTime,this.previousLoop);var e=this.mixTime/this.mixDuration;e>=1&&(e=1,this.previous=null),this.current.mix(t,this.currentTime,this.currentLoop,e)}else this.current.apply(t,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(t,e){this.previous=null,t&&this.current&&(this.mixDuration=this.data.getMix(this.current,t),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=t,this.currentLoop=e,this.currentTime=0},setAnimationByName:function(t,e){var i=this.data.skeletonData.findAnimation(t);if(!i)throw"Animation not found: "+t;this.setAnimation(i,e)},setAnimation:function(t,e){this.queue.length=0,this._setAnimation(t,e)},addAnimationByName:function(t,e,i){var r=this.data.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;this.addAnimation(r,e,i)},addAnimation:function(t,e,i){var r={};if(r.animation=t,r.loop=e,!i||0>=i){var n=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;i=null!=n?n.duration-this.data.getMix(n,t)+(i||0):0}r.delay=i,this.queue.push(r)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},u.SkeletonJson=function(t){this.attachmentLoader=t},u.SkeletonJson.prototype={scale:1,readSkeletonData:function(t){for(var e=new u.SkeletonData,i=t.bones,r=0,n=i.length;n>r;r++){var a=i[r],s=null;if(a.parent&&(s=e.findBone(a.parent),!s))throw"Parent bone not found: "+a.parent;var o=new u.BoneData(a.name,s);o.length=(a.length||0)*this.scale,o.x=(a.x||0)*this.scale,o.y=(a.y||0)*this.scale,o.rotation=a.rotation||0,o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1,e.bones.push(o)}for(var h=t.slots,r=0,n=h.length;n>r;r++){var l=h[r],o=e.findBone(l.bone);if(!o)throw"Slot bone not found: "+l.bone;var c=new u.SlotData(l.name,o),d=l.color;d&&(c.r=u.SkeletonJson.toColor(d,0),c.g=u.SkeletonJson.toColor(d,1),c.b=u.SkeletonJson.toColor(d,2),c.a=u.SkeletonJson.toColor(d,3)),c.attachmentName=l.attachment,e.slots.push(c)}var p=t.skins;for(var f in p)if(p.hasOwnProperty(f)){var g=p[f],v=new u.Skin(f);for(var m in g)if(g.hasOwnProperty(m)){var x=e.findSlotIndex(m),b=g[m];for(var y in b)if(b.hasOwnProperty(y)){var T=this.readAttachment(v,y,b[y]);null!=T&&v.addAttachment(x,y,T)}}e.skins.push(v),"default"==v.name&&(e.defaultSkin=v)}var A=t.animations;for(var w in A)A.hasOwnProperty(w)&&this.readAnimation(w,A[w],e);return e},readAttachment:function(t,e,i){e=i.name||e;var r=u.AttachmentType[i.type||"region"],n=new u.RegionAttachment;return n.name=e,r==u.AttachmentType.region&&(n.x=(i.x||0)*this.scale,n.y=(i.y||0)*this.scale,n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1,n.rotation=i.rotation||0,n.width=(i.width||32)*this.scale,n.height=(i.height||32)*this.scale,n.updateOffset()),n},readAnimation:function(t,e,i){var r=[],n=0,a=e.bones;for(var s in a)if(a.hasOwnProperty(s)){var o=i.findBoneIndex(s);if(-1==o)throw"Bone not found: "+s;var h=a[s];for(var l in h)if(h.hasOwnProperty(l)){var c=h[l];if("rotate"==l){var d=new u.RotateTimeline(c.length);d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p,v.time,v.angle),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[2*d.getFrameCount()-2])}else{if("translate"!=l&&"scale"!=l)throw"Invalid timeline type for a bone: "+l+" ("+s+")";var d,m=1;"scale"==l?d=new u.ScaleTimeline(c.length):(d=new u.TranslateTimeline(c.length),m=this.scale),d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],x=(v.x||0)*m,b=(v.y||0)*m;d.setFrame(p,v.time,x,b),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[3*d.getFrameCount()-3])}}}var y=e.slots;for(var T in y)if(y.hasOwnProperty(T)){var A=y[T],w=i.findSlotIndex(T);for(var l in A)if(A.hasOwnProperty(l)){var c=A[l];if("color"==l){var d=new u.ColorTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],_=v.color,R=u.SkeletonJson.toColor(_,0),S=u.SkeletonJson.toColor(_,1),C=u.SkeletonJson.toColor(_,2),L=u.SkeletonJson.toColor(_,3);d.setFrame(p,v.time,R,S,C,L),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[5*d.getFrameCount()-5])}else{if("attachment"!=l)throw"Invalid timeline type for a slot: "+l+" ("+T+")";var d=new u.AttachmentTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p++,v.time,v.name)}r.push(d),n=Math.max(n,d.frames[Math.floor(d.getFrameCount())-1])}}}i.animations.push(new u.Animation(t,r,n))}},u.SkeletonJson.readCurve=function(t,e,i){var r=i.curve;r&&("stepped"==r?t.curves.setStepped(e):r instanceof Array&&t.curves.setCurve(e,r[0],r[1],r[2],r[3]))},u.SkeletonJson.toColor=function(t,e){if(8!=t.length)throw"Color hexidecimal length must be 8, recieved: "+t;return parseInt(t.substring(2*e,2),16)/255},u.Atlas=function(t,e){this.textureLoader=e,this.pages=[],this.regions=[];var i=new u.AtlasReader(t),r=[];r.length=4;for(var n=null;;){var a=i.readLine();if(null==a)break;if(a=i.trim(a),0==a.length)n=null;else if(n){var s=new u.AtlasRegion;s.name=a,s.page=n,s.rotate="true"==i.readValue(),i.readTuple(r);var o=parseInt(r[0]),h=parseInt(r[1]);i.readTuple(r);var l=parseInt(r[0]),c=parseInt(r[1]);s.u=o/n.width,s.v=h/n.height,s.rotate?(s.u2=(o+c)/n.width,s.v2=(h+l)/n.height):(s.u2=(o+l)/n.width,s.v2=(h+c)/n.height),s.x=o,s.y=h,s.width=Math.abs(l),s.height=Math.abs(c),4==i.readTuple(r)&&(s.splits=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],4==i.readTuple(r)&&(s.pads=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],i.readTuple(r))),s.originalWidth=parseInt(r[0]),s.originalHeight=parseInt(r[1]),i.readTuple(r),s.offsetX=parseInt(r[0]),s.offsetY=parseInt(r[1]),s.index=parseInt(i.readValue()),this.regions.push(s)}else{n=new u.AtlasPage,n.name=a,n.format=u.Atlas.Format[i.readValue()],i.readTuple(r),n.minFilter=u.Atlas.TextureFilter[r[0]],n.magFilter=u.Atlas.TextureFilter[r[1]];var d=i.readValue();n.uWrap=u.Atlas.TextureWrap.clampToEdge,n.vWrap=u.Atlas.TextureWrap.clampToEdge,"x"==d?n.uWrap=u.Atlas.TextureWrap.repeat:"y"==d?n.vWrap=u.Atlas.TextureWrap.repeat:"xy"==d&&(n.uWrap=n.vWrap=u.Atlas.TextureWrap.repeat),e.load(n,a),this.pages.push(n)}}},u.Atlas.prototype={findRegion:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},dispose:function(){for(var t=this.pages,e=0,i=t.length;i>e;e++)this.textureLoader.unload(t[e].rendererObject)},updateUVs:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++){var n=e[i];n.page==t&&(n.u=n.x/t.width,n.v=n.y/t.height,n.rotate?(n.u2=(n.x+n.height)/t.width,n.v2=(n.y+n.width)/t.height):(n.u2=(n.x+n.width)/t.width,n.v2=(n.y+n.height)/t.height))}}},u.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},u.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},u.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},u.AtlasPage=function(){},u.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},u.AtlasRegion=function(){},u.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},u.AtlasReader=function(t){this.lines=t.split(/\r\n|\r|\n/)},u.AtlasReader.prototype={index:0,trim:function(t){return t.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw"Invalid line: "+t;return this.trim(t.substring(e+1))},readTuple:function(t){var e=this.readLine(),i=e.indexOf(":");if(-1==i)throw"Invalid line: "+e;for(var r=0,n=i+1;3>r;r++){var a=e.indexOf(",",n);if(-1==a){if(0==r)throw"Invalid line: "+e;break}t[r]=this.trim(e.substr(n,a-n)),n=a+1}return t[r]=this.trim(e.substring(n)),r+1}},u.AtlasAttachmentLoader=function(t){this.atlas=t},u.AtlasAttachmentLoader.prototype={newAttachment:function(t,e,i){switch(e){case u.AttachmentType.region:var r=this.atlas.findRegion(i);if(!r)throw"Region not found in atlas: "+i+" ("+e+")";var n=new u.RegionAttachment(i);return n.rendererObject=r,n.setUVs(r.u,r.v,r.u2,r.v2,r.rotate),n.regionOffsetX=r.offsetX,n.regionOffsetY=r.offsetY,n.regionWidth=r.width,n.regionHeight=r.height,n.regionOriginalWidth=r.originalWidth,n.regionOriginalHeight=r.originalHeight,n}throw"Unknown attachment type: "+e}},n.AnimCache={},u.Bone.yDown=!0,n.CustomRenderable=function(){n.DisplayObject.call(this)},n.CustomRenderable.constructor=n.CustomRenderable,n.CustomRenderable.prototype=Object.create(n.DisplayObject.prototype),n.CustomRenderable.prototype.renderCanvas=function(){},n.CustomRenderable.prototype.initWebGL=function(){},n.CustomRenderable.prototype.renderWebGL=function(){},n.BaseTextureCache={},n.texturesToUpdate=[],n.texturesToDestroy=[],n.BaseTexture=function(t){if(n.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,n.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);this._powerOf2=!1}},n.BaseTexture.constructor=n.BaseTexture,n.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,n.texturesToDestroy.push(this)},n.BaseTexture.fromImage=function(t,e){var i=n.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new n.BaseTexture(r),n.BaseTextureCache[t]=i}return i},n.TextureCache={},n.FrameCache={},n.Texture=function(t,e){if(n.EventTarget.call(this),e||(this.noFrame=!0,e=new n.Rectangle(0,0,1,1)),this.trim=new n.Point,t instanceof n.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new n.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},n.Texture.constructor=n.Texture,n.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new n.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},n.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},n.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,n.Texture.frameUpdates.push(this)},n.Texture.fromImage=function(t,e){var i=n.TextureCache[t];return i||(i=new n.Texture(n.BaseTexture.fromImage(t,e)),n.TextureCache[t]=i),i},n.Texture.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},n.Texture.fromCanvas=function(t){var e=new n.BaseTexture(t);return new n.Texture(e)},n.Texture.addTextureToCache=function(t,e){n.TextureCache[e]=t},n.Texture.removeTextureFromCache=function(t){var e=n.TextureCache[t];return n.TextureCache[t]=null,e},n.Texture.frameUpdates=[],n.RenderTexture=function(t,e){n.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=n.mat3.create(),this.frame=new n.Rectangle(0,0,this.width,this.height),n.gl?this.initWebGL():this.initCanvas()},n.RenderTexture.constructor=n.RenderTexture,n.RenderTexture.prototype=Object.create(n.Texture.prototype),n.RenderTexture.prototype.initWebGL=function(){var t=n.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new n.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new n.Point(this.width/2,this.height/2),this.projectionMatrix=n.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},n.RenderTexture.prototype.initCanvas=function(){this.renderer=new n.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new n.BaseTexture(this.renderer.view),this.frame=new n.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},n.RenderTexture.prototype.renderWebGL=function(t,e){var i=n.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=n.mat3.create(),t.worldTransform[4]=-1,t.worldTransform[5]=2*this.projection.y;for(var a=0,s=r.length;s>a;a++)r[a].updateTransform();var o=t.__renderGroup;o?t==o.root?o.render(this.projection):o.renderSpecific(t,this.projection):(this.renderGroup||(this.renderGroup=new n.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projection))},n.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=n.mat3.create();for(var r=0,a=i.length;a>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),n.texturesToUpdate.push(this.baseTexture)},n.AssetLoader=function(t){n.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:n.ImageLoader,jpeg:n.ImageLoader,png:n.ImageLoader,gif:n.ImageLoader,json:n.JsonLoader,anim:n.SpineLoader,xml:n.BitmapFontLoader,fnt:n.BitmapFontLoader}},n.AssetLoader.constructor=n.AssetLoader,n.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),n=this.loadersByType[r];if(!n)throw Error(r+" is an unsupported file type");var a=new n(i,this.crossorigin);a.addEventListener("loaded",function(){t.onAssetLoaded()}),a.load()}},n.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},n.JsonLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.crossorigin=e,this.loaded=!1},n.JsonLoader.constructor=n.JsonLoader,n.JsonLoader.prototype.load=function(){this.ajaxRequest=new l;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},n.JsonLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState)if(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))if(this.json=JSON.parse(this.ajaxRequest.responseText),this.json.frames){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0))}i.load()}else if(this.json.bones){var o=new u.SkeletonJson,h=o.readSkeletonData(this.json);n.AnimCache[this.url]=h,this.onLoaded()}else this.onLoaded();else this.onError()},n.JsonLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},n.JsonLoader.prototype.onError=function(){this.dispatchEvent({type:"error",content:this})},n.SpriteSheetLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},n.SpriteSheetLoader.constructor=n.SpriteSheetLoader,n.SpriteSheetLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpriteSheetLoader.prototype.onJSONLoaded=function(){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0)) }i.load()},n.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.ImageLoader=function(t,e){n.EventTarget.call(this),this.texture=n.Texture.fromImage(t,e)},n.ImageLoader.constructor=n.ImageLoader,n.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},n.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.BitmapFontLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},n.BitmapFontLoader.constructor=n.BitmapFontLoader,n.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},n.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new n.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],a=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(a.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var s=this.ajaxRequest.responseXML.getElementsByTagName("char"),o=0;s.length>o;o++){var h=parseInt(s[o].attributes.getNamedItem("id").nodeValue,10),l={x:parseInt(s[o].attributes.getNamedItem("x").nodeValue,10),y:parseInt(s[o].attributes.getNamedItem("y").nodeValue,10),width:parseInt(s[o].attributes.getNamedItem("width").nodeValue,10),height:parseInt(s[o].attributes.getNamedItem("height").nodeValue,10)};n.TextureCache[h]=new n.Texture(this.texture,l),i.chars[h]={xOffset:parseInt(s[o].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(s[o].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(s[o].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{},texture:new n.Texture(this.texture,l)}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(o=0;u.length>o;o++){var c=parseInt(u[o].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[o].attributes.getNamedItem("second").nodeValue,10),p=parseInt(u[o].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=p}n.BitmapText.fonts[i.font]=i;var f=this;e.addEventListener("loaded",function(){f.onLoaded()}),e.load()}},n.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.SpineLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.crossorigin=e,this.loaded=!1},n.SpineLoader.constructor=n.SpineLoader,n.SpineLoader.prototype.load=function(){new n.JsonLoader(this.url,this.crossorigin),jsonLoader.addEventListener("loaded",function(t){scope.json=t.content.json,scope.onJSONLoaded()}),jsonLoader.load()},n.SpineLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpineLoader.prototype.onJSONLoaded=function(){var t=new u.SkeletonJson,e=t.readSkeletonData(this.json);n.AnimCache[this.url]=e,this.onLoaded()},n.SpineLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports.PIXI=n):i.PIXI=n}).call(this); \ No newline at end of file diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index 25cca17..0391561 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index 25cca17..0391561 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.js b/bin/pixi.js index 51d6836..96307b0 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -9,7 +9,7 @@ * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; +(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[],t._webGL.indices=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; if(0!=r.length){var a=new n.Point(r[0],r[1]),s=new n.Point(r[r.length-2],r[r.length-1]);if(a.x==s.x&&a.y==s.y){r.pop(),r.pop(),s=new n.Point(r[r.length-2],r[r.length-1]);var o=s.x+.5*(a.x-s.x),h=s.y+.5*(a.y-s.y);r.unshift(o,h),r.push(o,h)}var l,u,c,d,p,f,g,v,m,x,b,y,T,A,w,_,R,S,C,L,E,B=i.points,F=i.indices,P=r.length/2,G=r.length,I=B.length/6,D=t.lineWidth/2,M=e(t.lineColor),O=t.lineAlpha,W=M[0]*O,U=M[1]*O,j=M[2]*O;l=r[0],u=r[1],c=r[2],d=r[3],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(l-g,u-v,W,U,j,O),B.push(l+g,u+v,W,U,j,O);for(var k=1;P-1>k;k++)l=r[2*(k-1)],u=r[2*(k-1)+1],c=r[2*k],d=r[2*k+1],p=r[2*(k+1)],f=r[2*(k+1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,m=-(d-f),x=c-p,E=Math.sqrt(m*m+x*x),m/=E,x/=E,m*=D,x*=D,T=-v+u-(-v+d),A=-g+c-(-g+l),w=(-g+l)*(-v+d)-(-g+c)*(-v+u),_=-x+f-(-x+d),R=-m+c-(-m+p),S=(-m+p)*(-x+d)-(-m+c)*(-x+f),C=T*R-_*A,0==C&&(C+=1),px=(A*S-R*w)/C,py=(_*w-T*S)/C,L=(px-c)*(px-c)+(py-d)+(py-d),L>19600?(b=g-m,y=v-x,E=Math.sqrt(b*b+y*y),b/=E,y/=E,b*=D,y*=D,B.push(c-b,d-y),B.push(W,U,j,O),B.push(c+b,d+y),B.push(W,U,j,O),B.push(c-b,d-y),B.push(W,U,j,O),G++):(B.push(px,py),B.push(W,U,j,O),B.push(c-(px-c),d-(py-d)),B.push(W,U,j,O));l=r[2*(P-2)],u=r[2*(P-2)+1],c=r[2*(P-1)],d=r[2*(P-1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(c-g,d-v),B.push(W,U,j,O),B.push(c+g,d+v),B.push(W,U,j,O),F.push(I);for(var k=0;G>k;k++)F.push(I++);F.push(I-1)}},n.WebGLGraphics.buildPoly=function(t,i){var r=t.points;if(!(6>r.length)){for(var a=i.points,s=i.indices,o=r.length/2,h=e(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=n.PolyK.Triangulate(r),f=a.length/6,g=0;p.length>g;g+=3)s.push(p[g]+f),s.push(p[g]+f),s.push(p[g+1]+f),s.push(p[g+2]+f),s.push(p[g+2]+f);for(var g=0;o>g;g++)a.push(r[2*g],r[2*g+1],u,c,d,l)}},n._defaultFrame=new n.Rectangle(0,0,1,1),n.gl,n.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var a=this;this.view.addEventListener("webglcontextlost",function(t){a.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){a.handleContextRestored(t)},!1),this.batchs=[];try{n.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!0,premultipliedAlpha:!1})}catch(s){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}n.initPrimitiveShader(),n.initDefaultShader(),n.initDefaultStripShader(),n.activateDefaultShader();var o=this.gl;n.WebGLRenderer.gl=o,this.batch=new n.WebGLBatch(o),o.disable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.enable(o.BLEND),o.colorMask(!0,!0,!0,this.transparent),n.projection=new n.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new n.WebGLRenderGroup(this.gl)},n.WebGLRenderer.constructor=n.WebGLRenderer,n.WebGLRenderer.getBatch=function(){return 0==n._batchs.length?new n.WebGLBatch(n.WebGLRenderer.gl):n._batchs.pop()},n.WebGLRenderer.returnBatch=function(t){t.clean(),n._batchs.push(t)},n.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),n.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],!this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(n.projection),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0){for(var i=0;n.Texture.frameUpdates.length>i;i++)n.Texture.frameUpdates[i].updateFrame=!1;n.Texture.frameUpdates=[]}}},n.WebGLRenderer.updateTextures=function(){for(var t=0;n.texturesToUpdate.length>t;t++)this.updateTexture(n.texturesToUpdate[t]);for(var t=0;n.texturesToDestroy.length>t;t++)this.destroyTexture(n.texturesToDestroy[t]);n.texturesToUpdate=[],n.texturesToDestroy=[]},n.WebGLRenderer.updateTexture=function(t){var e=n.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},n.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},n.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),n.projection.x=this.width/2,n.projection.y=this.height/2},n.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},n.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;n.TextureCache.length>t;t++)this.updateTexture(n.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;n._restoreBatchs(this.gl),this.contextLost=!1},n._batchs=[],n._getBatch=function(t){return 0==n._batchs.length?new n.WebGLBatch(t):n._batchs.pop()},n._returnBatch=function(t){t.clean(),n._batchs.push(t)},n._restoreBatchs=function(t){for(var e=0;n._batchs.length>e;e++)n._batchs[e].restoreLostContext(t)},n.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=n.blendModes.NORMAL,this.dynamicSize=1},n.WebGLBatch.constructor=n.WebGLBatch,n.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},n.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},n.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},n.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},n.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},n.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},n.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new n.WebGLBatch(this.gl);e.init(t),e.texture=this.texture,e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},n.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},n.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,n=4*i;this.indices[r+0]=n+0,this.indices[r+1]=n+1,this.indices[r+2]=n+2,this.indices[r+3]=n+0,this.indices[r+4]=n+2,this.indices[r+5]=n+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},n.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof n.WebGLBatch?this.batchs[r].render():i instanceof n.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof n.Strip?i.visible&&this.renderStrip(i,t):i instanceof n.Graphics&&i.visible&&n.WebGLGraphics.renderGraphics(i,t)},n.WebGLRenderGroup.prototype.renderSpecific=function(t,e){n.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniform2f(n.shaderProgram.projectionVector,e.x,e.y);var r,a,s,o,h=t.renderable?t:this.getNextRenderable(t),l=h.batch;if(h instanceof n.Sprite){l=h.batch;var u=l.head;if(u==h)r=0;else for(r=1;u.__next!=h;)r++,u=u.__next}else l=h;for(var c,d=t,p=t;p.children.length>0;)p=p.children[p.children.length-1],p.renderable&&(d=p);if(d instanceof n.Sprite){c=d.batch;var u=c.head;if(u==d)s=0;else for(s=1;u.__next!=d;)s++,u=u.__next}else c=d;if(l==c)return l instanceof n.WebGLBatch?l.render(r,s+1):this.renderSpecial(l),void 0;a=this.batchs.indexOf(l),o=this.batchs.indexOf(c),l instanceof n.WebGLBatch?l.render(r):this.renderSpecial(l);for(var f=a+1;o>f;f++)renderable=this.batchs[f],renderable instanceof n.WebGLBatch?this.batchs[f].render():this.renderSpecial(renderable);c instanceof n.WebGLBatch?c.render(0,s+1):this.renderSpecial(c)},n.WebGLRenderGroup.prototype.renderSpecial=function(t){t instanceof n.TilingSprite?t.visible&&this.renderTilingSprite(t,projectionMatrix):t instanceof n.Strip?t.visible&&this.renderStrip(t,projectionMatrix):t instanceof n.CustomRenderable?t.visible&&t.renderWebGL(this,projectionMatrix):t instanceof n.Graphics&&t.visible&&n.WebGLGraphics.renderGraphics(t)},n.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var n=i[r];n.worldVisible=n.visible&&e,n.textureChange&&(n.textureChange=!1,n.worldVisible&&(this.removeDisplayObject(n),this.addDisplayObject(n))),n.children.length>0&&this.checkVisibility(n,n.worldVisible)}},n.WebGLRenderGroup.prototype.updateTexture=function(t){if(1==t.batch.length)return t.batch.texture=t.texture.baseTexture,void 0;if(t.batch.texture!=t.texture.baseTexture)if(t.batch.head==t){var e=t.batch,i=this.batchs.indexOf(e),r=this.batchs[i-1];if(e.remove(t),r)if(r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)r.insertAfter(t,r.tail);else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i-1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(0,0,a)}}else if(t.batch.tail==t){var e=t.batch,i=this.batchs.indexOf(e),s=this.batchs[i+1];if(e.remove(t),s){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,s.head),void 0;var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i+1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.push(a)}}else{var e=t.batch,o=e.split(t);o.remove(t);var a=n.WebGLRenderer.getBatch(),i=this.batchs.indexOf(e);a.init(t),this.batchs.splice(i+1,0,a,o)}},n.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof n.Sprite){var r,a;if(e instanceof n.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof n.Sprite){if(a=i.batch){if(a.texture==t.texture.baseTexture&&a.blendMode==t.blendMode)return a.insertBefore(t,i),void 0;if(a==r){var s=r.split(i),o=n.WebGLRenderer.getBatch(),h=this.batchs.indexOf(r);return o.init(t),this.batchs.splice(h+1,0,o,s),void 0}}}else a=i;var o=n.WebGLRenderer.getBatch();if(o.init(t),r){var h=this.batchs.indexOf(r);this.batchs.splice(h+1,0,o)}else this.batchs.push(o)}else t instanceof n.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof n.Strip?(this.initStrip(t),this.batchs.push(t)):t instanceof n.Graphics&&this.batchs.push(t);this.batchUpdate=!0}},n.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},n.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof n.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof n.WebGLBatch&&this.batchs[r+1]instanceof n.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),n.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e)}}},n.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},n.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},n.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=n.shaderProgram;i.useProgram(n.stripShaderProgram);var a=n.mat3.clone(t.worldTransform);n.mat3.transpose(a),i.uniformMatrix3fv(n.stripShaderProgram.translationMatrix,!1,a),i.uniform2f(n.stripShaderProgram.projectionVector,e.x,e.y),i.uniform1f(n.stripShaderProgram.alpha,t.worldAlpha),t.blendMode==n.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.useProgram(n.shaderProgram)},n.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;n.shaderProgram;var r=t.tilePosition,a=t.tileScale,s=r.x/t.texture.baseTexture.width,o=r.y/t.texture.baseTexture.height,h=t.width/t.texture.baseTexture.width/a.x,l=t.height/t.texture.baseTexture.height/a.y;t.uvs[0]=0-s,t.uvs[1]=0-o,t.uvs[2]=1*h-s,t.uvs[3]=0-o,t.uvs[4]=1*h-s,t.uvs[5]=1*l-o,t.uvs[6]=0-s,t.uvs[7]=1*l-o,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},n.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},n.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},n.CanvasRenderer.constructor=n.CanvasRenderer,n.CanvasRenderer.prototype.render=function(t){n.texturesToUpdate=[],n.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0&&(n.Texture.frameUpdates=[])},n.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},n.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof n.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof n.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof n.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof n.CustomRenderable?t.renderCanvas(this):t instanceof n.Graphics&&(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),n.CanvasGraphics.renderGraphics(t,i));if(t.children)for(var a=0;t.children.length>a;a++)this.renderDisplayObject(t.children[a]);this.context.setTransform(1,0,0,1,0,0)}},n.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var n=1;r-2>n;n++){var a=2*n,s=i[a],o=i[a+2],h=i[a+4],l=i[a+1],u=i[a+3],c=i[a+5];e.moveTo(s,l),e.lineTo(o,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},n.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;e.globalAlpha=t.worldAlpha,t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},n.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,n=i.length/2;this.count++;for(var a=1;n-2>a;a++){var s=2*a,o=i[s],h=i[s+2],l=i[s+4],u=i[s+1],c=i[s+3],d=i[s+5],p=r[s]*t.texture.width,f=r[s+2]*t.texture.width,g=r[s+4]*t.texture.width,v=r[s+1]*t.texture.height,m=r[s+3]*t.texture.height,x=r[s+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var b=p*m+v*g+f*x-m*g-v*f-p*x,y=o*m+v*l+h*x-m*l-v*h-o*x,T=p*h+o*g+f*l-h*g-o*f-p*l,A=p*m*l+v*h*g+o*f*x-o*m*g-v*f*l-p*h*x,w=u*m+v*d+c*x-m*d-v*c-u*x,_=p*c+u*g+f*d-c*g-u*f-p*d,R=p*m*d+v*c*g+u*f*x-u*m*g-v*f*d-p*c*x;e.transform(y/b,w/b,T/b,_/b,A/b,R/b),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},n.CanvasGraphics=function(){},n.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,r=0;t.graphicsData.length>r;r++){var a=t.graphicsData[r],s=a.points;if(e.strokeStyle=color="#"+("00000"+(0|a.lineColor).toString(16)).substr(-6),e.lineWidth=a.lineWidth,a.type==n.Graphics.POLY){e.beginPath(),e.moveTo(s[0],s[1]);for(var o=1;s.length/2>o;o++)e.lineTo(s[2*o],s[2*o+1]);s[0]==s[s.length-2]&&s[1]==s[s.length-1]&&e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}else if(a.type==n.Graphics.RECT)a.fillColor&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fillRect(s[0],s[1],s[2],s[3])),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.strokeRect(s[0],s[1],s[2],s[3]));else if(a.type==n.Graphics.CIRC)e.beginPath(),e.arc(s[0],s[1],s[2],0,2*Math.PI),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke());else if(a.type==n.Graphics.ELIP){var h=a.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,v=c+l,m=d+u,x=c+l/2,b=d+u/2;e.moveTo(c,b),e.bezierCurveTo(c,b-g,x-f,d,x,d),e.bezierCurveTo(x+f,d,v,b-g,v,b),e.bezierCurveTo(v,b+g,x+f,m,x,m),e.bezierCurveTo(x-f,m,c,b+g,c,b),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}}},n.Graphics=function(){n.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=2,this.lineColor="#FF0000",this.graphicsData=[],this.currentPath={points:[]}},n.Graphics.constructor=n.Graphics,n.Graphics.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Graphics.prototype.lineStyle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=void 0==i?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.graphicsData.push(this.currentPath)},n.Graphics.prototype.moveTo=function(t,e){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath)},n.Graphics.prototype.lineTo=function(t,e){this.currentPath.points.push(t,e),this.dirty=!0},n.Graphics.prototype.beginFill=function(t,e){this.filling=!0,this.fillColor=t||0,this.fillAlpha=e||1},n.Graphics.prototype.endFill=function(){this.filling=!1,this.fillColor=null,this.fillAlpha=1},n.Graphics.prototype.drawRect=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawCircle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:n.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawElipse=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.clear=function(){this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[]},n.Graphics.POLY=0,n.Graphics.RECT=1,n.Graphics.CIRC=2,n.Graphics.ELIP=3,n.Strip=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=n.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Strip.constructor=n.Strip,n.Strip.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},n.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Rope=function(t,e){n.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},n.Rope.constructor=n.Rope,n.Rope.prototype=Object.create(n.Strip.prototype),n.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,n=t[0],a=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var s=t.length,o=1;s>o;o++){var a=t[o],h=4*o,l=o/(s-1);o%2?(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1):(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,n=a}}},n.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],a={x:0,y:0},s=t[0];this.count-=.2,i[0]=s.x+a.x,i[1]=s.y+a.y,i[2]=s.x-a.x,i[3]=s.y-a.y;for(var o=t.length,h=1;o>h;h++){var s=t[h],l=4*h;e=t.length-1>h?t[h+1]:s,a.y=-(e.x-r.x),a.x=e.y-r.y;var u=10*(1-h/(o-1));u>1&&(u=1);var c=Math.sqrt(a.x*a.x+a.y*a.y),d=this.texture.height/2;a.x/=c,a.y/=c,a.x*=d,a.y*=d,i[l]=s.x+a.x,i[l+1]=s.y+a.y,i[l+2]=s.x-a.x,i[l+3]=s.y-a.y,r=s}n.DisplayObjectContainer.prototype.updateTransform.call(this)}},n.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0 },n.TilingSprite=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new n.Point(1,1),this.tilePosition=new n.Point(0,0),this.blendMode=n.blendModes.NORMAL},n.TilingSprite.constructor=n.TilingSprite,n.TilingSprite.prototype=Object.create(n.DisplayObjectContainer.prototype),n.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},n.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Spine=function(t){if(n.DisplayObjectContainer.call(this),this.spineData=n.AnimCache[t],!this.spineData)throw Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+t);this.count=0,this.sprites=[],this.skeleton=new u.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new u.AnimationStateData(this.spineData),this.state=new u.AnimationState(this.stateData);for(var e=0;this.skeleton.drawOrder.length>e;e++){var i=this.skeleton.drawOrder[e].data.attachmentName;n.TextureCache[i]||(i+=".png");var r=new n.Sprite(n.Texture.fromFrame(i));r.anchor.x=r.anchor.y=.5,this.addChild(r),this.sprites.push(r)}},n.Spine.constructor=n.Spine,n.Spine.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Spine.prototype.updateTransform=function(){this.state.update(1/60),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var t=0;this.skeleton.drawOrder.length>t;t++){var e=this.skeleton.drawOrder[t],i=e.bone.worldX+e.attachment.x*e.bone.m00+e.attachment.y*e.bone.m01+.5*e.attachment.width,r=e.bone.worldY+e.attachment.x*e.bone.m10+e.attachment.y*e.bone.m11+.5*e.attachment.height;if(e.cacheName!=e.attachment.name){var a=e.attachment.name;n.TextureCache[a]||(a+=".png"),this.sprites[t].setTexture(n.TextureCache[a]),e.cacheName=e.attachment.name}i+=-(e.attachment.width*(e.bone.worldScaleX+e.attachment.scaleX-1)>>1),r+=-(e.attachment.height*(e.bone.worldScaleY+e.attachment.scaleY-1)>>1),this.sprites[t].position.x=i,this.sprites[t].position.y=r,this.sprites[t].rotation=-(e.bone.worldRotation+e.attachment.rotation)*(Math.PI/180)}n.DisplayObjectContainer.prototype.updateTransform.call(this)};var u={};u.BoneData=function(t,e){this.name=t,this.parent=e},u.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},u.SlotData=function(t,e){this.name=t,this.boneData=e},u.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},u.Bone=function(t,e){this.data=t,this.parent=e,this.setToSetupPose()},u.Bone.yDown=!1,u.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(t,e){var i=this.parent;null!=i?(this.worldX=this.x*i.m00+this.y*i.m01+i.worldX,this.worldY=this.x*i.m10+this.y*i.m11+i.worldY,this.worldScaleX=i.worldScaleX*this.scaleX,this.worldScaleY=i.worldScaleY*this.scaleY,this.worldRotation=i.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var r=this.worldRotation*Math.PI/180,n=Math.cos(r),a=Math.sin(r);this.m00=n*this.worldScaleX,this.m10=a*this.worldScaleX,this.m01=-a*this.worldScaleY,this.m11=n*this.worldScaleY,t&&(this.m00=-this.m00,this.m01=-this.m01),e&&(this.m10=-this.m10,this.m11=-this.m11),u.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY}},u.Slot=function(t,e,i){this.data=t,this.skeleton=e,this.bone=i,this.setToSetupPose()},u.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(t){this.attachment=t,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(t){this._attachmentTime=this.skeleton.time-t},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var t=this.data;this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a;for(var e=this.skeleton.data.slots,i=0,r=e.length;r>i;i++)if(e[i]==t){this.setAttachment(t.attachmentName?this.skeleton.getAttachmentBySlotIndex(i,t.attachmentName):null);break}}},u.Skin=function(t){this.name=t,this.attachments={}},u.Skin.prototype={addAttachment:function(t,e,i){this.attachments[t+":"+e]=i},getAttachment:function(t,e){return this.attachments[t+":"+e]},_attachAll:function(t,e){for(var i in e.attachments){var r=i.indexOf(":"),n=parseInt(i.substring(0,r)),a=i.substring(r+1),s=t.slots[n];if(s.attachment&&s.attachment.name==a){var o=this.getAttachment(n,a);o&&s.setAttachment(o)}}}},u.Animation=function(t,e,i){this.name=t,this.timelines=e,this.duration=i},u.Animation.prototype={apply:function(t,e,i){i&&0!=this.duration&&(e%=this.duration);for(var r=this.timelines,n=0,a=r.length;a>n;n++)r[n].apply(t,e,1)},mix:function(t,e,i,r){i&&0!=this.duration&&(e%=this.duration);for(var n=this.timelines,a=0,s=n.length;s>a;a++)n[a].apply(t,e,r)}},u.binarySearch=function(t,e,i){var r=0,n=Math.floor(t.length/i)-2;if(0==n)return i;for(var a=n>>>1;;){if(e>=t[(a+1)*i]?r=a+1:n=a,r==n)return(r+1)*i;a=r+n>>>1}},u.linearSearch=function(t,e,i){for(var r=0,n=t.length-i;n>=r;r+=i)if(t[r]>e)return r;return-1},u.Curves=function(t){this.curves=[],this.curves.length=6*(t-1)},u.Curves.prototype={setLinear:function(t){this.curves[6*t]=0},setStepped:function(t){this.curves[6*t]=-1},setCurve:function(t,e,i,r,n){var a=.1,s=a*a,o=s*a,h=3*a,l=3*s,u=6*s,c=6*o,d=2*-e+r,p=2*-i+n,f=3*(e-r)+1,g=3*(i-n)+1,v=6*t,m=this.curves;m[v]=e*h+d*l+f*o,m[v+1]=i*h+p*l+g*o,m[v+2]=d*u+f*c,m[v+3]=p*u+g*c,m[v+4]=f*c,m[v+5]=g*c},getCurvePercent:function(t,e){e=0>e?0:e>1?1:e;var i=6*t,r=this.curves,n=r[i];if(!n)return e;if(-1==n)return 0;for(var a=r[i+1],s=r[i+2],o=r[i+3],h=r[i+4],l=r[i+5],u=n,c=a,d=8;;){if(u>=e){var p=u-n,f=c-a;return f+(c-f)*(e-p)/(u-p)}if(0==d)break;d--,n+=s,a+=o,s+=h,o+=l,u+=n,c+=a}return c+(1-c)*(e-u)/(1-u)}},u.RotateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=2*t},u.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){t*=2,this.frames[t]=e,this.frames[t+1]=i},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-2]){for(var a=n.data.rotation+r[r.length-1]-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;return n.rotation+=a*i,void 0}var s=u.binarySearch(r,e,2),o=r[s-1],h=r[s],l=1-(e-h)/(r[s-2]-h);l=this.curves.getCurvePercent(s/2-1,l);for(var a=r[s+1]-o;a>180;)a-=360;for(;-180>a;)a+=360;for(a=n.data.rotation+(o+a*l)-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;n.rotation+=a*i}}},u.TranslateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.x+=(n.data.x+r[r.length-2]-n.x)*i,n.y+=(n.data.y+r[r.length-1]-n.y)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.x+=(n.data.x+s+(r[a+1]-s)*l-n.x)*i,n.y+=(n.data.y+o+(r[a+2]-o)*l-n.y)*i}}},u.ScaleTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.scaleX+=(n.data.scaleX-1+r[r.length-2]-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+r[r.length-1]-n.scaleY)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.scaleX+=(n.data.scaleX-1+s+(r[a+1]-s)*l-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+o+(r[a+2]-o)*l-n.scaleY)*i}}},u.ColorTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=5*t},u.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e){t*=5,this.frames[t]=e,this.frames[t+1]=r,this.frames[t+2]=g,this.frames[t+3]=b,this.frames[t+4]=a},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.slots[this.slotIndex];if(e>=r[r.length-5]){var a=r.length-1;return n.r=r[a-3],n.g=r[a-2],n.b=r[a-1],n.a=r[a],void 0}var s=u.binarySearch(r,e,5),o=r[s-4],h=r[s-3],l=r[s-2],c=r[s-1],d=r[s],p=1-(e-d)/(r[s-5]-d);p=this.curves.getCurvePercent(s/5-1,p);var f=o+(r[s+1]-o)*p,g=h+(r[s+2]-h)*p,v=l+(r[s+3]-l)*p,m=c+(r[s+4]-c)*p;1>i?(n.r+=(f-n.r)*i,n.g+=(g-n.g)*i,n.b+=(v-n.b)*i,n.a+=(m-n.a)*i):(n.r=f,n.g=g,n.b=v,n.a=m)}}},u.AttachmentTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=t,this.attachmentNames=[],this.attachmentNames.length=t},u.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){this.frames[t]=e,this.attachmentNames[t]=i},apply:function(t,e){var i=this.frames;if(!(i[0]>e)){var r;r=e>=i[i.length-1]?i.length-1:u.binarySearch(i,e,1)-1;var n=this.attachmentNames[r];t.slots[this.slotIndex].setAttachment(n?t.getAttachmentBySlotIndex(this.slotIndex,n):null)}}},u.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},u.SkeletonData.prototype={defaultSkin:null,findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return slot[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSkin:function(t){for(var e=this.skins,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findAnimation:function(t){for(var e=this.animations,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null}},u.Skeleton=function(t){this.data=t,this.bones=[];for(var e=0,i=t.bones.length;i>e;e++){var r=t.bones[e],n=r.parent?this.bones[t.bones.indexOf(r.parent)]:null;this.bones.push(new u.Bone(r,n))}this.slots=[],this.drawOrder=[];for(var e=0,i=t.slots.length;i>e;e++){var a=t.slots[e],s=this.bones[t.bones.indexOf(a.boneData)],o=new u.Slot(a,this,s);this.slots.push(o),this.drawOrder.push(o)}},u.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var t=this.flipX,e=this.flipY,i=this.bones,r=0,n=i.length;n>r;r++)i[r].updateWorldTransform(t,e)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var t=this.bones,e=0,i=t.length;i>e;e++)t[e].setToSetupPose()},setSlotsToSetupPose:function(){for(var t=this.slots,e=0,i=t.length;i>e;e++)t[e].setToSetupPose(e)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},setSkinByName:function(t){var e=this.data.findSkin(t);if(!e)throw"Skin not found: "+t;this.setSkin(e)},setSkin:function(t){this.skin&&t&&t._attachAll(this,this.skin),this.skin=t},getAttachmentBySlotName:function(t,e){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(t),e)},getAttachmentBySlotIndex:function(t,e){if(this.skin){var i=this.skin.getAttachment(t,e);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},setAttachment:function(t,e){for(var i=this.slots,r=0,n=i.size;n>r;r++){var a=i[r];if(a.data.name==t){var s=null;if(e&&(s=this.getAttachment(r,e),null==s))throw"Attachment not found: "+e+", for slot: "+t;return a.setAttachment(s),void 0}}throw"Slot not found: "+t},update:function(t){time+=t}},u.AttachmentType={region:0},u.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},u.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(t,e,i,r,n){var a=this.uvs;n?(a[2]=t,a[3]=r,a[4]=t,a[5]=e,a[6]=i,a[7]=e,a[0]=i,a[1]=r):(a[0]=t,a[1]=r,a[2]=t,a[3]=e,a[4]=i,a[5]=e,a[6]=i,a[7]=r)},updateOffset:function(){var t=this.width/this.regionOriginalWidth*this.scaleX,e=this.height/this.regionOriginalHeight*this.scaleY,i=-this.width/2*this.scaleX+this.regionOffsetX*t,r=-this.height/2*this.scaleY+this.regionOffsetY*e,n=i+this.regionWidth*t,a=r+this.regionHeight*e,s=this.rotation*Math.PI/180,o=Math.cos(s),h=Math.sin(s),l=i*o+this.x,u=i*h,c=r*o+this.y,d=r*h,p=n*o+this.x,f=n*h,g=a*o+this.y,v=a*h,m=this.offset;m[0]=l-d,m[1]=c+u,m[2]=l-v,m[3]=g+u,m[4]=p-v,m[5]=g+f,m[6]=p-d,m[7]=c+f},computeVertices:function(t,e,i,r){t+=i.worldX,e+=i.worldY;var n=i.m00,a=i.m01,s=i.m10,o=i.m11,h=this.offset;r[0]=h[0]*n+h[1]*a+t,r[1]=h[0]*s+h[1]*o+e,r[2]=h[2]*n+h[3]*a+t,r[3]=h[2]*s+h[3]*o+e,r[4]=h[4]*n+h[5]*a+t,r[5]=h[4]*s+h[5]*o+e,r[6]=h[6]*n+h[7]*a+t,r[7]=h[6]*s+h[7]*o+e}},u.AnimationStateData=function(t){this.skeletonData=t,this.animationToMixTime={}},u.AnimationStateData.prototype={setMixByName:function(t,e,i){var r=this.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;var n=this.skeletonData.findAnimation(e);if(!n)throw"Animation not found: "+e;this.setMix(r,n,i)},setMix:function(t,e,i){this.animationToMixTime[t.name+":"+e.name]=i},getMix:function(t,e){var i=this.animationToMixTime[t.name+":"+e.name];return i?i:0}},u.AnimationState=function(t){this.data=t,this.queue=[]},u.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(t){if(this.currentTime+=t,this.previousTime+=t,this.mixTime+=t,this.queue.length>0){var e=this.queue[0];this.currentTime>=e.delay&&(this._setAnimation(e.animation,e.loop),this.queue.shift())}},apply:function(t){if(this.current)if(this.previous){this.previous.apply(t,this.previousTime,this.previousLoop);var e=this.mixTime/this.mixDuration;e>=1&&(e=1,this.previous=null),this.current.mix(t,this.currentTime,this.currentLoop,e)}else this.current.apply(t,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(t,e){this.previous=null,t&&this.current&&(this.mixDuration=this.data.getMix(this.current,t),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=t,this.currentLoop=e,this.currentTime=0},setAnimationByName:function(t,e){var i=this.data.skeletonData.findAnimation(t);if(!i)throw"Animation not found: "+t;this.setAnimation(i,e)},setAnimation:function(t,e){this.queue.length=0,this._setAnimation(t,e)},addAnimationByName:function(t,e,i){var r=this.data.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;this.addAnimation(r,e,i)},addAnimation:function(t,e,i){var r={};if(r.animation=t,r.loop=e,!i||0>=i){var n=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;i=null!=n?n.duration-this.data.getMix(n,t)+(i||0):0}r.delay=i,this.queue.push(r)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},u.SkeletonJson=function(t){this.attachmentLoader=t},u.SkeletonJson.prototype={scale:1,readSkeletonData:function(t){for(var e=new u.SkeletonData,i=t.bones,r=0,n=i.length;n>r;r++){var a=i[r],s=null;if(a.parent&&(s=e.findBone(a.parent),!s))throw"Parent bone not found: "+a.parent;var o=new u.BoneData(a.name,s);o.length=(a.length||0)*this.scale,o.x=(a.x||0)*this.scale,o.y=(a.y||0)*this.scale,o.rotation=a.rotation||0,o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1,e.bones.push(o)}for(var h=t.slots,r=0,n=h.length;n>r;r++){var l=h[r],o=e.findBone(l.bone);if(!o)throw"Slot bone not found: "+l.bone;var c=new u.SlotData(l.name,o),d=l.color;d&&(c.r=u.SkeletonJson.toColor(d,0),c.g=u.SkeletonJson.toColor(d,1),c.b=u.SkeletonJson.toColor(d,2),c.a=u.SkeletonJson.toColor(d,3)),c.attachmentName=l.attachment,e.slots.push(c)}var p=t.skins;for(var f in p)if(p.hasOwnProperty(f)){var g=p[f],v=new u.Skin(f);for(var m in g)if(g.hasOwnProperty(m)){var x=e.findSlotIndex(m),b=g[m];for(var y in b)if(b.hasOwnProperty(y)){var T=this.readAttachment(v,y,b[y]);null!=T&&v.addAttachment(x,y,T)}}e.skins.push(v),"default"==v.name&&(e.defaultSkin=v)}var A=t.animations;for(var w in A)A.hasOwnProperty(w)&&this.readAnimation(w,A[w],e);return e},readAttachment:function(t,e,i){e=i.name||e;var r=u.AttachmentType[i.type||"region"],n=new u.RegionAttachment;return n.name=e,r==u.AttachmentType.region&&(n.x=(i.x||0)*this.scale,n.y=(i.y||0)*this.scale,n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1,n.rotation=i.rotation||0,n.width=(i.width||32)*this.scale,n.height=(i.height||32)*this.scale,n.updateOffset()),n},readAnimation:function(t,e,i){var r=[],n=0,a=e.bones;for(var s in a)if(a.hasOwnProperty(s)){var o=i.findBoneIndex(s);if(-1==o)throw"Bone not found: "+s;var h=a[s];for(var l in h)if(h.hasOwnProperty(l)){var c=h[l];if("rotate"==l){var d=new u.RotateTimeline(c.length);d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p,v.time,v.angle),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[2*d.getFrameCount()-2])}else{if("translate"!=l&&"scale"!=l)throw"Invalid timeline type for a bone: "+l+" ("+s+")";var d,m=1;"scale"==l?d=new u.ScaleTimeline(c.length):(d=new u.TranslateTimeline(c.length),m=this.scale),d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],x=(v.x||0)*m,b=(v.y||0)*m;d.setFrame(p,v.time,x,b),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[3*d.getFrameCount()-3])}}}var y=e.slots;for(var T in y)if(y.hasOwnProperty(T)){var A=y[T],w=i.findSlotIndex(T);for(var l in A)if(A.hasOwnProperty(l)){var c=A[l];if("color"==l){var d=new u.ColorTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],_=v.color,R=u.SkeletonJson.toColor(_,0),S=u.SkeletonJson.toColor(_,1),C=u.SkeletonJson.toColor(_,2),L=u.SkeletonJson.toColor(_,3);d.setFrame(p,v.time,R,S,C,L),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[5*d.getFrameCount()-5])}else{if("attachment"!=l)throw"Invalid timeline type for a slot: "+l+" ("+T+")";var d=new u.AttachmentTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p++,v.time,v.name)}r.push(d),n=Math.max(n,d.frames[Math.floor(d.getFrameCount())-1])}}}i.animations.push(new u.Animation(t,r,n))}},u.SkeletonJson.readCurve=function(t,e,i){var r=i.curve;r&&("stepped"==r?t.curves.setStepped(e):r instanceof Array&&t.curves.setCurve(e,r[0],r[1],r[2],r[3]))},u.SkeletonJson.toColor=function(t,e){if(8!=t.length)throw"Color hexidecimal length must be 8, recieved: "+t;return parseInt(t.substring(2*e,2),16)/255},u.Atlas=function(t,e){this.textureLoader=e,this.pages=[],this.regions=[];var i=new u.AtlasReader(t),r=[];r.length=4;for(var n=null;;){var a=i.readLine();if(null==a)break;if(a=i.trim(a),0==a.length)n=null;else if(n){var s=new u.AtlasRegion;s.name=a,s.page=n,s.rotate="true"==i.readValue(),i.readTuple(r);var o=parseInt(r[0]),h=parseInt(r[1]);i.readTuple(r);var l=parseInt(r[0]),c=parseInt(r[1]);s.u=o/n.width,s.v=h/n.height,s.rotate?(s.u2=(o+c)/n.width,s.v2=(h+l)/n.height):(s.u2=(o+l)/n.width,s.v2=(h+c)/n.height),s.x=o,s.y=h,s.width=Math.abs(l),s.height=Math.abs(c),4==i.readTuple(r)&&(s.splits=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],4==i.readTuple(r)&&(s.pads=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],i.readTuple(r))),s.originalWidth=parseInt(r[0]),s.originalHeight=parseInt(r[1]),i.readTuple(r),s.offsetX=parseInt(r[0]),s.offsetY=parseInt(r[1]),s.index=parseInt(i.readValue()),this.regions.push(s)}else{n=new u.AtlasPage,n.name=a,n.format=u.Atlas.Format[i.readValue()],i.readTuple(r),n.minFilter=u.Atlas.TextureFilter[r[0]],n.magFilter=u.Atlas.TextureFilter[r[1]];var d=i.readValue();n.uWrap=u.Atlas.TextureWrap.clampToEdge,n.vWrap=u.Atlas.TextureWrap.clampToEdge,"x"==d?n.uWrap=u.Atlas.TextureWrap.repeat:"y"==d?n.vWrap=u.Atlas.TextureWrap.repeat:"xy"==d&&(n.uWrap=n.vWrap=u.Atlas.TextureWrap.repeat),e.load(n,a),this.pages.push(n)}}},u.Atlas.prototype={findRegion:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},dispose:function(){for(var t=this.pages,e=0,i=t.length;i>e;e++)this.textureLoader.unload(t[e].rendererObject)},updateUVs:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++){var n=e[i];n.page==t&&(n.u=n.x/t.width,n.v=n.y/t.height,n.rotate?(n.u2=(n.x+n.height)/t.width,n.v2=(n.y+n.width)/t.height):(n.u2=(n.x+n.width)/t.width,n.v2=(n.y+n.height)/t.height))}}},u.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},u.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},u.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},u.AtlasPage=function(){},u.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},u.AtlasRegion=function(){},u.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},u.AtlasReader=function(t){this.lines=t.split(/\r\n|\r|\n/)},u.AtlasReader.prototype={index:0,trim:function(t){return t.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw"Invalid line: "+t;return this.trim(t.substring(e+1))},readTuple:function(t){var e=this.readLine(),i=e.indexOf(":");if(-1==i)throw"Invalid line: "+e;for(var r=0,n=i+1;3>r;r++){var a=e.indexOf(",",n);if(-1==a){if(0==r)throw"Invalid line: "+e;break}t[r]=this.trim(e.substr(n,a-n)),n=a+1}return t[r]=this.trim(e.substring(n)),r+1}},u.AtlasAttachmentLoader=function(t){this.atlas=t},u.AtlasAttachmentLoader.prototype={newAttachment:function(t,e,i){switch(e){case u.AttachmentType.region:var r=this.atlas.findRegion(i);if(!r)throw"Region not found in atlas: "+i+" ("+e+")";var n=new u.RegionAttachment(i);return n.rendererObject=r,n.setUVs(r.u,r.v,r.u2,r.v2,r.rotate),n.regionOffsetX=r.offsetX,n.regionOffsetY=r.offsetY,n.regionWidth=r.width,n.regionHeight=r.height,n.regionOriginalWidth=r.originalWidth,n.regionOriginalHeight=r.originalHeight,n}throw"Unknown attachment type: "+e}},n.AnimCache={},u.Bone.yDown=!0,n.CustomRenderable=function(){n.DisplayObject.call(this)},n.CustomRenderable.constructor=n.CustomRenderable,n.CustomRenderable.prototype=Object.create(n.DisplayObject.prototype),n.CustomRenderable.prototype.renderCanvas=function(){},n.CustomRenderable.prototype.initWebGL=function(){},n.CustomRenderable.prototype.renderWebGL=function(){},n.BaseTextureCache={},n.texturesToUpdate=[],n.texturesToDestroy=[],n.BaseTexture=function(t){if(n.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,n.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);this._powerOf2=!1}},n.BaseTexture.constructor=n.BaseTexture,n.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,n.texturesToDestroy.push(this)},n.BaseTexture.fromImage=function(t,e){var i=n.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new n.BaseTexture(r),n.BaseTextureCache[t]=i}return i},n.TextureCache={},n.FrameCache={},n.Texture=function(t,e){if(n.EventTarget.call(this),e||(this.noFrame=!0,e=new n.Rectangle(0,0,1,1)),this.trim=new n.Point,t instanceof n.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new n.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},n.Texture.constructor=n.Texture,n.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new n.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},n.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},n.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,n.Texture.frameUpdates.push(this)},n.Texture.fromImage=function(t,e){var i=n.TextureCache[t];return i||(i=new n.Texture(n.BaseTexture.fromImage(t,e)),n.TextureCache[t]=i),i},n.Texture.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},n.Texture.fromCanvas=function(t){var e=new n.BaseTexture(t);return new n.Texture(e)},n.Texture.addTextureToCache=function(t,e){n.TextureCache[e]=t},n.Texture.removeTextureFromCache=function(t){var e=n.TextureCache[t];return n.TextureCache[t]=null,e},n.Texture.frameUpdates=[],n.RenderTexture=function(t,e){n.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=n.mat3.create(),this.frame=new n.Rectangle(0,0,this.width,this.height),n.gl?this.initWebGL():this.initCanvas()},n.RenderTexture.constructor=n.RenderTexture,n.RenderTexture.prototype=Object.create(n.Texture.prototype),n.RenderTexture.prototype.initWebGL=function(){var t=n.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new n.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new n.Point(this.width/2,this.height/2),this.projectionMatrix=n.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},n.RenderTexture.prototype.initCanvas=function(){this.renderer=new n.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new n.BaseTexture(this.renderer.view),this.frame=new n.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},n.RenderTexture.prototype.renderWebGL=function(t,e){var i=n.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=n.mat3.create(),t.worldTransform[4]=-1,t.worldTransform[5]=2*this.projection.y;for(var a=0,s=r.length;s>a;a++)r[a].updateTransform();var o=t.__renderGroup;o?t==o.root?o.render(this.projection):o.renderSpecific(t,this.projection):(this.renderGroup||(this.renderGroup=new n.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projection))},n.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=n.mat3.create();for(var r=0,a=i.length;a>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),n.texturesToUpdate.push(this.baseTexture)},n.AssetLoader=function(t){n.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:n.ImageLoader,jpeg:n.ImageLoader,png:n.ImageLoader,gif:n.ImageLoader,json:n.JsonLoader,anim:n.SpineLoader,xml:n.BitmapFontLoader,fnt:n.BitmapFontLoader}},n.AssetLoader.constructor=n.AssetLoader,n.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),n=this.loadersByType[r];if(!n)throw Error(r+" is an unsupported file type");var a=new n(i,this.crossorigin);a.addEventListener("loaded",function(){t.onAssetLoaded()}),a.load()}},n.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},n.JsonLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.crossorigin=e,this.loaded=!1},n.JsonLoader.constructor=n.JsonLoader,n.JsonLoader.prototype.load=function(){this.ajaxRequest=new l;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},n.JsonLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState)if(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))if(this.json=JSON.parse(this.ajaxRequest.responseText),this.json.frames){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0))}i.load()}else if(this.json.bones){var o=new u.SkeletonJson,h=o.readSkeletonData(this.json);n.AnimCache[this.url]=h,this.onLoaded()}else this.onLoaded();else this.onError()},n.JsonLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},n.JsonLoader.prototype.onError=function(){this.dispatchEvent({type:"error",content:this})},n.SpriteSheetLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},n.SpriteSheetLoader.constructor=n.SpriteSheetLoader,n.SpriteSheetLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpriteSheetLoader.prototype.onJSONLoaded=function(){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0)) }i.load()},n.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.ImageLoader=function(t,e){n.EventTarget.call(this),this.texture=n.Texture.fromImage(t,e)},n.ImageLoader.constructor=n.ImageLoader,n.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},n.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.BitmapFontLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},n.BitmapFontLoader.constructor=n.BitmapFontLoader,n.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},n.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new n.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],a=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(a.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var s=this.ajaxRequest.responseXML.getElementsByTagName("char"),o=0;s.length>o;o++){var h=parseInt(s[o].attributes.getNamedItem("id").nodeValue,10),l={x:parseInt(s[o].attributes.getNamedItem("x").nodeValue,10),y:parseInt(s[o].attributes.getNamedItem("y").nodeValue,10),width:parseInt(s[o].attributes.getNamedItem("width").nodeValue,10),height:parseInt(s[o].attributes.getNamedItem("height").nodeValue,10)};n.TextureCache[h]=new n.Texture(this.texture,l),i.chars[h]={xOffset:parseInt(s[o].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(s[o].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(s[o].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{},texture:new n.Texture(this.texture,l)}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(o=0;u.length>o;o++){var c=parseInt(u[o].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[o].attributes.getNamedItem("second").nodeValue,10),p=parseInt(u[o].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=p}n.BitmapText.fonts[i.font]=i;var f=this;e.addEventListener("loaded",function(){f.onLoaded()}),e.load()}},n.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.SpineLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.crossorigin=e,this.loaded=!1},n.SpineLoader.constructor=n.SpineLoader,n.SpineLoader.prototype.load=function(){new n.JsonLoader(this.url,this.crossorigin),jsonLoader.addEventListener("loaded",function(t){scope.json=t.content.json,scope.onJSONLoaded()}),jsonLoader.load()},n.SpineLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpineLoader.prototype.onJSONLoaded=function(){var t=new u.SkeletonJson,e=t.readSkeletonData(this.json);n.AnimCache[this.url]=e,this.onLoaded()},n.SpineLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports.PIXI=n):i.PIXI=n}).call(this); \ No newline at end of file diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index 25cca17..0391561 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index 25cca17..0391561 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 12 - Spine/pixi.js b/examples/example 12 - Spine/pixi.js index 25cca17..0391561 100644 --- a/examples/example 12 - Spine/pixi.js +++ b/examples/example 12 - Spine/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.js b/bin/pixi.js index 51d6836..96307b0 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -9,7 +9,7 @@ * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; +(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[],t._webGL.indices=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; if(0!=r.length){var a=new n.Point(r[0],r[1]),s=new n.Point(r[r.length-2],r[r.length-1]);if(a.x==s.x&&a.y==s.y){r.pop(),r.pop(),s=new n.Point(r[r.length-2],r[r.length-1]);var o=s.x+.5*(a.x-s.x),h=s.y+.5*(a.y-s.y);r.unshift(o,h),r.push(o,h)}var l,u,c,d,p,f,g,v,m,x,b,y,T,A,w,_,R,S,C,L,E,B=i.points,F=i.indices,P=r.length/2,G=r.length,I=B.length/6,D=t.lineWidth/2,M=e(t.lineColor),O=t.lineAlpha,W=M[0]*O,U=M[1]*O,j=M[2]*O;l=r[0],u=r[1],c=r[2],d=r[3],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(l-g,u-v,W,U,j,O),B.push(l+g,u+v,W,U,j,O);for(var k=1;P-1>k;k++)l=r[2*(k-1)],u=r[2*(k-1)+1],c=r[2*k],d=r[2*k+1],p=r[2*(k+1)],f=r[2*(k+1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,m=-(d-f),x=c-p,E=Math.sqrt(m*m+x*x),m/=E,x/=E,m*=D,x*=D,T=-v+u-(-v+d),A=-g+c-(-g+l),w=(-g+l)*(-v+d)-(-g+c)*(-v+u),_=-x+f-(-x+d),R=-m+c-(-m+p),S=(-m+p)*(-x+d)-(-m+c)*(-x+f),C=T*R-_*A,0==C&&(C+=1),px=(A*S-R*w)/C,py=(_*w-T*S)/C,L=(px-c)*(px-c)+(py-d)+(py-d),L>19600?(b=g-m,y=v-x,E=Math.sqrt(b*b+y*y),b/=E,y/=E,b*=D,y*=D,B.push(c-b,d-y),B.push(W,U,j,O),B.push(c+b,d+y),B.push(W,U,j,O),B.push(c-b,d-y),B.push(W,U,j,O),G++):(B.push(px,py),B.push(W,U,j,O),B.push(c-(px-c),d-(py-d)),B.push(W,U,j,O));l=r[2*(P-2)],u=r[2*(P-2)+1],c=r[2*(P-1)],d=r[2*(P-1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(c-g,d-v),B.push(W,U,j,O),B.push(c+g,d+v),B.push(W,U,j,O),F.push(I);for(var k=0;G>k;k++)F.push(I++);F.push(I-1)}},n.WebGLGraphics.buildPoly=function(t,i){var r=t.points;if(!(6>r.length)){for(var a=i.points,s=i.indices,o=r.length/2,h=e(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=n.PolyK.Triangulate(r),f=a.length/6,g=0;p.length>g;g+=3)s.push(p[g]+f),s.push(p[g]+f),s.push(p[g+1]+f),s.push(p[g+2]+f),s.push(p[g+2]+f);for(var g=0;o>g;g++)a.push(r[2*g],r[2*g+1],u,c,d,l)}},n._defaultFrame=new n.Rectangle(0,0,1,1),n.gl,n.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var a=this;this.view.addEventListener("webglcontextlost",function(t){a.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){a.handleContextRestored(t)},!1),this.batchs=[];try{n.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!0,premultipliedAlpha:!1})}catch(s){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}n.initPrimitiveShader(),n.initDefaultShader(),n.initDefaultStripShader(),n.activateDefaultShader();var o=this.gl;n.WebGLRenderer.gl=o,this.batch=new n.WebGLBatch(o),o.disable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.enable(o.BLEND),o.colorMask(!0,!0,!0,this.transparent),n.projection=new n.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new n.WebGLRenderGroup(this.gl)},n.WebGLRenderer.constructor=n.WebGLRenderer,n.WebGLRenderer.getBatch=function(){return 0==n._batchs.length?new n.WebGLBatch(n.WebGLRenderer.gl):n._batchs.pop()},n.WebGLRenderer.returnBatch=function(t){t.clean(),n._batchs.push(t)},n.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),n.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],!this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(n.projection),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0){for(var i=0;n.Texture.frameUpdates.length>i;i++)n.Texture.frameUpdates[i].updateFrame=!1;n.Texture.frameUpdates=[]}}},n.WebGLRenderer.updateTextures=function(){for(var t=0;n.texturesToUpdate.length>t;t++)this.updateTexture(n.texturesToUpdate[t]);for(var t=0;n.texturesToDestroy.length>t;t++)this.destroyTexture(n.texturesToDestroy[t]);n.texturesToUpdate=[],n.texturesToDestroy=[]},n.WebGLRenderer.updateTexture=function(t){var e=n.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},n.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},n.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),n.projection.x=this.width/2,n.projection.y=this.height/2},n.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},n.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;n.TextureCache.length>t;t++)this.updateTexture(n.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;n._restoreBatchs(this.gl),this.contextLost=!1},n._batchs=[],n._getBatch=function(t){return 0==n._batchs.length?new n.WebGLBatch(t):n._batchs.pop()},n._returnBatch=function(t){t.clean(),n._batchs.push(t)},n._restoreBatchs=function(t){for(var e=0;n._batchs.length>e;e++)n._batchs[e].restoreLostContext(t)},n.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=n.blendModes.NORMAL,this.dynamicSize=1},n.WebGLBatch.constructor=n.WebGLBatch,n.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},n.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},n.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},n.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},n.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},n.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},n.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new n.WebGLBatch(this.gl);e.init(t),e.texture=this.texture,e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},n.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},n.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,n=4*i;this.indices[r+0]=n+0,this.indices[r+1]=n+1,this.indices[r+2]=n+2,this.indices[r+3]=n+0,this.indices[r+4]=n+2,this.indices[r+5]=n+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},n.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof n.WebGLBatch?this.batchs[r].render():i instanceof n.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof n.Strip?i.visible&&this.renderStrip(i,t):i instanceof n.Graphics&&i.visible&&n.WebGLGraphics.renderGraphics(i,t)},n.WebGLRenderGroup.prototype.renderSpecific=function(t,e){n.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniform2f(n.shaderProgram.projectionVector,e.x,e.y);var r,a,s,o,h=t.renderable?t:this.getNextRenderable(t),l=h.batch;if(h instanceof n.Sprite){l=h.batch;var u=l.head;if(u==h)r=0;else for(r=1;u.__next!=h;)r++,u=u.__next}else l=h;for(var c,d=t,p=t;p.children.length>0;)p=p.children[p.children.length-1],p.renderable&&(d=p);if(d instanceof n.Sprite){c=d.batch;var u=c.head;if(u==d)s=0;else for(s=1;u.__next!=d;)s++,u=u.__next}else c=d;if(l==c)return l instanceof n.WebGLBatch?l.render(r,s+1):this.renderSpecial(l),void 0;a=this.batchs.indexOf(l),o=this.batchs.indexOf(c),l instanceof n.WebGLBatch?l.render(r):this.renderSpecial(l);for(var f=a+1;o>f;f++)renderable=this.batchs[f],renderable instanceof n.WebGLBatch?this.batchs[f].render():this.renderSpecial(renderable);c instanceof n.WebGLBatch?c.render(0,s+1):this.renderSpecial(c)},n.WebGLRenderGroup.prototype.renderSpecial=function(t){t instanceof n.TilingSprite?t.visible&&this.renderTilingSprite(t,projectionMatrix):t instanceof n.Strip?t.visible&&this.renderStrip(t,projectionMatrix):t instanceof n.CustomRenderable?t.visible&&t.renderWebGL(this,projectionMatrix):t instanceof n.Graphics&&t.visible&&n.WebGLGraphics.renderGraphics(t)},n.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var n=i[r];n.worldVisible=n.visible&&e,n.textureChange&&(n.textureChange=!1,n.worldVisible&&(this.removeDisplayObject(n),this.addDisplayObject(n))),n.children.length>0&&this.checkVisibility(n,n.worldVisible)}},n.WebGLRenderGroup.prototype.updateTexture=function(t){if(1==t.batch.length)return t.batch.texture=t.texture.baseTexture,void 0;if(t.batch.texture!=t.texture.baseTexture)if(t.batch.head==t){var e=t.batch,i=this.batchs.indexOf(e),r=this.batchs[i-1];if(e.remove(t),r)if(r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)r.insertAfter(t,r.tail);else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i-1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(0,0,a)}}else if(t.batch.tail==t){var e=t.batch,i=this.batchs.indexOf(e),s=this.batchs[i+1];if(e.remove(t),s){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,s.head),void 0;var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i+1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.push(a)}}else{var e=t.batch,o=e.split(t);o.remove(t);var a=n.WebGLRenderer.getBatch(),i=this.batchs.indexOf(e);a.init(t),this.batchs.splice(i+1,0,a,o)}},n.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof n.Sprite){var r,a;if(e instanceof n.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof n.Sprite){if(a=i.batch){if(a.texture==t.texture.baseTexture&&a.blendMode==t.blendMode)return a.insertBefore(t,i),void 0;if(a==r){var s=r.split(i),o=n.WebGLRenderer.getBatch(),h=this.batchs.indexOf(r);return o.init(t),this.batchs.splice(h+1,0,o,s),void 0}}}else a=i;var o=n.WebGLRenderer.getBatch();if(o.init(t),r){var h=this.batchs.indexOf(r);this.batchs.splice(h+1,0,o)}else this.batchs.push(o)}else t instanceof n.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof n.Strip?(this.initStrip(t),this.batchs.push(t)):t instanceof n.Graphics&&this.batchs.push(t);this.batchUpdate=!0}},n.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},n.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof n.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof n.WebGLBatch&&this.batchs[r+1]instanceof n.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),n.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e)}}},n.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},n.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},n.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=n.shaderProgram;i.useProgram(n.stripShaderProgram);var a=n.mat3.clone(t.worldTransform);n.mat3.transpose(a),i.uniformMatrix3fv(n.stripShaderProgram.translationMatrix,!1,a),i.uniform2f(n.stripShaderProgram.projectionVector,e.x,e.y),i.uniform1f(n.stripShaderProgram.alpha,t.worldAlpha),t.blendMode==n.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.useProgram(n.shaderProgram)},n.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;n.shaderProgram;var r=t.tilePosition,a=t.tileScale,s=r.x/t.texture.baseTexture.width,o=r.y/t.texture.baseTexture.height,h=t.width/t.texture.baseTexture.width/a.x,l=t.height/t.texture.baseTexture.height/a.y;t.uvs[0]=0-s,t.uvs[1]=0-o,t.uvs[2]=1*h-s,t.uvs[3]=0-o,t.uvs[4]=1*h-s,t.uvs[5]=1*l-o,t.uvs[6]=0-s,t.uvs[7]=1*l-o,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},n.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},n.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},n.CanvasRenderer.constructor=n.CanvasRenderer,n.CanvasRenderer.prototype.render=function(t){n.texturesToUpdate=[],n.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0&&(n.Texture.frameUpdates=[])},n.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},n.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof n.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof n.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof n.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof n.CustomRenderable?t.renderCanvas(this):t instanceof n.Graphics&&(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),n.CanvasGraphics.renderGraphics(t,i));if(t.children)for(var a=0;t.children.length>a;a++)this.renderDisplayObject(t.children[a]);this.context.setTransform(1,0,0,1,0,0)}},n.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var n=1;r-2>n;n++){var a=2*n,s=i[a],o=i[a+2],h=i[a+4],l=i[a+1],u=i[a+3],c=i[a+5];e.moveTo(s,l),e.lineTo(o,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},n.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;e.globalAlpha=t.worldAlpha,t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},n.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,n=i.length/2;this.count++;for(var a=1;n-2>a;a++){var s=2*a,o=i[s],h=i[s+2],l=i[s+4],u=i[s+1],c=i[s+3],d=i[s+5],p=r[s]*t.texture.width,f=r[s+2]*t.texture.width,g=r[s+4]*t.texture.width,v=r[s+1]*t.texture.height,m=r[s+3]*t.texture.height,x=r[s+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var b=p*m+v*g+f*x-m*g-v*f-p*x,y=o*m+v*l+h*x-m*l-v*h-o*x,T=p*h+o*g+f*l-h*g-o*f-p*l,A=p*m*l+v*h*g+o*f*x-o*m*g-v*f*l-p*h*x,w=u*m+v*d+c*x-m*d-v*c-u*x,_=p*c+u*g+f*d-c*g-u*f-p*d,R=p*m*d+v*c*g+u*f*x-u*m*g-v*f*d-p*c*x;e.transform(y/b,w/b,T/b,_/b,A/b,R/b),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},n.CanvasGraphics=function(){},n.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,r=0;t.graphicsData.length>r;r++){var a=t.graphicsData[r],s=a.points;if(e.strokeStyle=color="#"+("00000"+(0|a.lineColor).toString(16)).substr(-6),e.lineWidth=a.lineWidth,a.type==n.Graphics.POLY){e.beginPath(),e.moveTo(s[0],s[1]);for(var o=1;s.length/2>o;o++)e.lineTo(s[2*o],s[2*o+1]);s[0]==s[s.length-2]&&s[1]==s[s.length-1]&&e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}else if(a.type==n.Graphics.RECT)a.fillColor&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fillRect(s[0],s[1],s[2],s[3])),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.strokeRect(s[0],s[1],s[2],s[3]));else if(a.type==n.Graphics.CIRC)e.beginPath(),e.arc(s[0],s[1],s[2],0,2*Math.PI),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke());else if(a.type==n.Graphics.ELIP){var h=a.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,v=c+l,m=d+u,x=c+l/2,b=d+u/2;e.moveTo(c,b),e.bezierCurveTo(c,b-g,x-f,d,x,d),e.bezierCurveTo(x+f,d,v,b-g,v,b),e.bezierCurveTo(v,b+g,x+f,m,x,m),e.bezierCurveTo(x-f,m,c,b+g,c,b),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}}},n.Graphics=function(){n.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=2,this.lineColor="#FF0000",this.graphicsData=[],this.currentPath={points:[]}},n.Graphics.constructor=n.Graphics,n.Graphics.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Graphics.prototype.lineStyle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=void 0==i?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.graphicsData.push(this.currentPath)},n.Graphics.prototype.moveTo=function(t,e){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath)},n.Graphics.prototype.lineTo=function(t,e){this.currentPath.points.push(t,e),this.dirty=!0},n.Graphics.prototype.beginFill=function(t,e){this.filling=!0,this.fillColor=t||0,this.fillAlpha=e||1},n.Graphics.prototype.endFill=function(){this.filling=!1,this.fillColor=null,this.fillAlpha=1},n.Graphics.prototype.drawRect=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawCircle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:n.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawElipse=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.clear=function(){this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[]},n.Graphics.POLY=0,n.Graphics.RECT=1,n.Graphics.CIRC=2,n.Graphics.ELIP=3,n.Strip=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=n.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Strip.constructor=n.Strip,n.Strip.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},n.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Rope=function(t,e){n.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},n.Rope.constructor=n.Rope,n.Rope.prototype=Object.create(n.Strip.prototype),n.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,n=t[0],a=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var s=t.length,o=1;s>o;o++){var a=t[o],h=4*o,l=o/(s-1);o%2?(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1):(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,n=a}}},n.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],a={x:0,y:0},s=t[0];this.count-=.2,i[0]=s.x+a.x,i[1]=s.y+a.y,i[2]=s.x-a.x,i[3]=s.y-a.y;for(var o=t.length,h=1;o>h;h++){var s=t[h],l=4*h;e=t.length-1>h?t[h+1]:s,a.y=-(e.x-r.x),a.x=e.y-r.y;var u=10*(1-h/(o-1));u>1&&(u=1);var c=Math.sqrt(a.x*a.x+a.y*a.y),d=this.texture.height/2;a.x/=c,a.y/=c,a.x*=d,a.y*=d,i[l]=s.x+a.x,i[l+1]=s.y+a.y,i[l+2]=s.x-a.x,i[l+3]=s.y-a.y,r=s}n.DisplayObjectContainer.prototype.updateTransform.call(this)}},n.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0 },n.TilingSprite=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new n.Point(1,1),this.tilePosition=new n.Point(0,0),this.blendMode=n.blendModes.NORMAL},n.TilingSprite.constructor=n.TilingSprite,n.TilingSprite.prototype=Object.create(n.DisplayObjectContainer.prototype),n.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},n.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Spine=function(t){if(n.DisplayObjectContainer.call(this),this.spineData=n.AnimCache[t],!this.spineData)throw Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+t);this.count=0,this.sprites=[],this.skeleton=new u.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new u.AnimationStateData(this.spineData),this.state=new u.AnimationState(this.stateData);for(var e=0;this.skeleton.drawOrder.length>e;e++){var i=this.skeleton.drawOrder[e].data.attachmentName;n.TextureCache[i]||(i+=".png");var r=new n.Sprite(n.Texture.fromFrame(i));r.anchor.x=r.anchor.y=.5,this.addChild(r),this.sprites.push(r)}},n.Spine.constructor=n.Spine,n.Spine.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Spine.prototype.updateTransform=function(){this.state.update(1/60),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var t=0;this.skeleton.drawOrder.length>t;t++){var e=this.skeleton.drawOrder[t],i=e.bone.worldX+e.attachment.x*e.bone.m00+e.attachment.y*e.bone.m01+.5*e.attachment.width,r=e.bone.worldY+e.attachment.x*e.bone.m10+e.attachment.y*e.bone.m11+.5*e.attachment.height;if(e.cacheName!=e.attachment.name){var a=e.attachment.name;n.TextureCache[a]||(a+=".png"),this.sprites[t].setTexture(n.TextureCache[a]),e.cacheName=e.attachment.name}i+=-(e.attachment.width*(e.bone.worldScaleX+e.attachment.scaleX-1)>>1),r+=-(e.attachment.height*(e.bone.worldScaleY+e.attachment.scaleY-1)>>1),this.sprites[t].position.x=i,this.sprites[t].position.y=r,this.sprites[t].rotation=-(e.bone.worldRotation+e.attachment.rotation)*(Math.PI/180)}n.DisplayObjectContainer.prototype.updateTransform.call(this)};var u={};u.BoneData=function(t,e){this.name=t,this.parent=e},u.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},u.SlotData=function(t,e){this.name=t,this.boneData=e},u.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},u.Bone=function(t,e){this.data=t,this.parent=e,this.setToSetupPose()},u.Bone.yDown=!1,u.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(t,e){var i=this.parent;null!=i?(this.worldX=this.x*i.m00+this.y*i.m01+i.worldX,this.worldY=this.x*i.m10+this.y*i.m11+i.worldY,this.worldScaleX=i.worldScaleX*this.scaleX,this.worldScaleY=i.worldScaleY*this.scaleY,this.worldRotation=i.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var r=this.worldRotation*Math.PI/180,n=Math.cos(r),a=Math.sin(r);this.m00=n*this.worldScaleX,this.m10=a*this.worldScaleX,this.m01=-a*this.worldScaleY,this.m11=n*this.worldScaleY,t&&(this.m00=-this.m00,this.m01=-this.m01),e&&(this.m10=-this.m10,this.m11=-this.m11),u.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY}},u.Slot=function(t,e,i){this.data=t,this.skeleton=e,this.bone=i,this.setToSetupPose()},u.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(t){this.attachment=t,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(t){this._attachmentTime=this.skeleton.time-t},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var t=this.data;this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a;for(var e=this.skeleton.data.slots,i=0,r=e.length;r>i;i++)if(e[i]==t){this.setAttachment(t.attachmentName?this.skeleton.getAttachmentBySlotIndex(i,t.attachmentName):null);break}}},u.Skin=function(t){this.name=t,this.attachments={}},u.Skin.prototype={addAttachment:function(t,e,i){this.attachments[t+":"+e]=i},getAttachment:function(t,e){return this.attachments[t+":"+e]},_attachAll:function(t,e){for(var i in e.attachments){var r=i.indexOf(":"),n=parseInt(i.substring(0,r)),a=i.substring(r+1),s=t.slots[n];if(s.attachment&&s.attachment.name==a){var o=this.getAttachment(n,a);o&&s.setAttachment(o)}}}},u.Animation=function(t,e,i){this.name=t,this.timelines=e,this.duration=i},u.Animation.prototype={apply:function(t,e,i){i&&0!=this.duration&&(e%=this.duration);for(var r=this.timelines,n=0,a=r.length;a>n;n++)r[n].apply(t,e,1)},mix:function(t,e,i,r){i&&0!=this.duration&&(e%=this.duration);for(var n=this.timelines,a=0,s=n.length;s>a;a++)n[a].apply(t,e,r)}},u.binarySearch=function(t,e,i){var r=0,n=Math.floor(t.length/i)-2;if(0==n)return i;for(var a=n>>>1;;){if(e>=t[(a+1)*i]?r=a+1:n=a,r==n)return(r+1)*i;a=r+n>>>1}},u.linearSearch=function(t,e,i){for(var r=0,n=t.length-i;n>=r;r+=i)if(t[r]>e)return r;return-1},u.Curves=function(t){this.curves=[],this.curves.length=6*(t-1)},u.Curves.prototype={setLinear:function(t){this.curves[6*t]=0},setStepped:function(t){this.curves[6*t]=-1},setCurve:function(t,e,i,r,n){var a=.1,s=a*a,o=s*a,h=3*a,l=3*s,u=6*s,c=6*o,d=2*-e+r,p=2*-i+n,f=3*(e-r)+1,g=3*(i-n)+1,v=6*t,m=this.curves;m[v]=e*h+d*l+f*o,m[v+1]=i*h+p*l+g*o,m[v+2]=d*u+f*c,m[v+3]=p*u+g*c,m[v+4]=f*c,m[v+5]=g*c},getCurvePercent:function(t,e){e=0>e?0:e>1?1:e;var i=6*t,r=this.curves,n=r[i];if(!n)return e;if(-1==n)return 0;for(var a=r[i+1],s=r[i+2],o=r[i+3],h=r[i+4],l=r[i+5],u=n,c=a,d=8;;){if(u>=e){var p=u-n,f=c-a;return f+(c-f)*(e-p)/(u-p)}if(0==d)break;d--,n+=s,a+=o,s+=h,o+=l,u+=n,c+=a}return c+(1-c)*(e-u)/(1-u)}},u.RotateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=2*t},u.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){t*=2,this.frames[t]=e,this.frames[t+1]=i},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-2]){for(var a=n.data.rotation+r[r.length-1]-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;return n.rotation+=a*i,void 0}var s=u.binarySearch(r,e,2),o=r[s-1],h=r[s],l=1-(e-h)/(r[s-2]-h);l=this.curves.getCurvePercent(s/2-1,l);for(var a=r[s+1]-o;a>180;)a-=360;for(;-180>a;)a+=360;for(a=n.data.rotation+(o+a*l)-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;n.rotation+=a*i}}},u.TranslateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.x+=(n.data.x+r[r.length-2]-n.x)*i,n.y+=(n.data.y+r[r.length-1]-n.y)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.x+=(n.data.x+s+(r[a+1]-s)*l-n.x)*i,n.y+=(n.data.y+o+(r[a+2]-o)*l-n.y)*i}}},u.ScaleTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.scaleX+=(n.data.scaleX-1+r[r.length-2]-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+r[r.length-1]-n.scaleY)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.scaleX+=(n.data.scaleX-1+s+(r[a+1]-s)*l-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+o+(r[a+2]-o)*l-n.scaleY)*i}}},u.ColorTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=5*t},u.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e){t*=5,this.frames[t]=e,this.frames[t+1]=r,this.frames[t+2]=g,this.frames[t+3]=b,this.frames[t+4]=a},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.slots[this.slotIndex];if(e>=r[r.length-5]){var a=r.length-1;return n.r=r[a-3],n.g=r[a-2],n.b=r[a-1],n.a=r[a],void 0}var s=u.binarySearch(r,e,5),o=r[s-4],h=r[s-3],l=r[s-2],c=r[s-1],d=r[s],p=1-(e-d)/(r[s-5]-d);p=this.curves.getCurvePercent(s/5-1,p);var f=o+(r[s+1]-o)*p,g=h+(r[s+2]-h)*p,v=l+(r[s+3]-l)*p,m=c+(r[s+4]-c)*p;1>i?(n.r+=(f-n.r)*i,n.g+=(g-n.g)*i,n.b+=(v-n.b)*i,n.a+=(m-n.a)*i):(n.r=f,n.g=g,n.b=v,n.a=m)}}},u.AttachmentTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=t,this.attachmentNames=[],this.attachmentNames.length=t},u.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){this.frames[t]=e,this.attachmentNames[t]=i},apply:function(t,e){var i=this.frames;if(!(i[0]>e)){var r;r=e>=i[i.length-1]?i.length-1:u.binarySearch(i,e,1)-1;var n=this.attachmentNames[r];t.slots[this.slotIndex].setAttachment(n?t.getAttachmentBySlotIndex(this.slotIndex,n):null)}}},u.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},u.SkeletonData.prototype={defaultSkin:null,findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return slot[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSkin:function(t){for(var e=this.skins,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findAnimation:function(t){for(var e=this.animations,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null}},u.Skeleton=function(t){this.data=t,this.bones=[];for(var e=0,i=t.bones.length;i>e;e++){var r=t.bones[e],n=r.parent?this.bones[t.bones.indexOf(r.parent)]:null;this.bones.push(new u.Bone(r,n))}this.slots=[],this.drawOrder=[];for(var e=0,i=t.slots.length;i>e;e++){var a=t.slots[e],s=this.bones[t.bones.indexOf(a.boneData)],o=new u.Slot(a,this,s);this.slots.push(o),this.drawOrder.push(o)}},u.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var t=this.flipX,e=this.flipY,i=this.bones,r=0,n=i.length;n>r;r++)i[r].updateWorldTransform(t,e)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var t=this.bones,e=0,i=t.length;i>e;e++)t[e].setToSetupPose()},setSlotsToSetupPose:function(){for(var t=this.slots,e=0,i=t.length;i>e;e++)t[e].setToSetupPose(e)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},setSkinByName:function(t){var e=this.data.findSkin(t);if(!e)throw"Skin not found: "+t;this.setSkin(e)},setSkin:function(t){this.skin&&t&&t._attachAll(this,this.skin),this.skin=t},getAttachmentBySlotName:function(t,e){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(t),e)},getAttachmentBySlotIndex:function(t,e){if(this.skin){var i=this.skin.getAttachment(t,e);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},setAttachment:function(t,e){for(var i=this.slots,r=0,n=i.size;n>r;r++){var a=i[r];if(a.data.name==t){var s=null;if(e&&(s=this.getAttachment(r,e),null==s))throw"Attachment not found: "+e+", for slot: "+t;return a.setAttachment(s),void 0}}throw"Slot not found: "+t},update:function(t){time+=t}},u.AttachmentType={region:0},u.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},u.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(t,e,i,r,n){var a=this.uvs;n?(a[2]=t,a[3]=r,a[4]=t,a[5]=e,a[6]=i,a[7]=e,a[0]=i,a[1]=r):(a[0]=t,a[1]=r,a[2]=t,a[3]=e,a[4]=i,a[5]=e,a[6]=i,a[7]=r)},updateOffset:function(){var t=this.width/this.regionOriginalWidth*this.scaleX,e=this.height/this.regionOriginalHeight*this.scaleY,i=-this.width/2*this.scaleX+this.regionOffsetX*t,r=-this.height/2*this.scaleY+this.regionOffsetY*e,n=i+this.regionWidth*t,a=r+this.regionHeight*e,s=this.rotation*Math.PI/180,o=Math.cos(s),h=Math.sin(s),l=i*o+this.x,u=i*h,c=r*o+this.y,d=r*h,p=n*o+this.x,f=n*h,g=a*o+this.y,v=a*h,m=this.offset;m[0]=l-d,m[1]=c+u,m[2]=l-v,m[3]=g+u,m[4]=p-v,m[5]=g+f,m[6]=p-d,m[7]=c+f},computeVertices:function(t,e,i,r){t+=i.worldX,e+=i.worldY;var n=i.m00,a=i.m01,s=i.m10,o=i.m11,h=this.offset;r[0]=h[0]*n+h[1]*a+t,r[1]=h[0]*s+h[1]*o+e,r[2]=h[2]*n+h[3]*a+t,r[3]=h[2]*s+h[3]*o+e,r[4]=h[4]*n+h[5]*a+t,r[5]=h[4]*s+h[5]*o+e,r[6]=h[6]*n+h[7]*a+t,r[7]=h[6]*s+h[7]*o+e}},u.AnimationStateData=function(t){this.skeletonData=t,this.animationToMixTime={}},u.AnimationStateData.prototype={setMixByName:function(t,e,i){var r=this.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;var n=this.skeletonData.findAnimation(e);if(!n)throw"Animation not found: "+e;this.setMix(r,n,i)},setMix:function(t,e,i){this.animationToMixTime[t.name+":"+e.name]=i},getMix:function(t,e){var i=this.animationToMixTime[t.name+":"+e.name];return i?i:0}},u.AnimationState=function(t){this.data=t,this.queue=[]},u.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(t){if(this.currentTime+=t,this.previousTime+=t,this.mixTime+=t,this.queue.length>0){var e=this.queue[0];this.currentTime>=e.delay&&(this._setAnimation(e.animation,e.loop),this.queue.shift())}},apply:function(t){if(this.current)if(this.previous){this.previous.apply(t,this.previousTime,this.previousLoop);var e=this.mixTime/this.mixDuration;e>=1&&(e=1,this.previous=null),this.current.mix(t,this.currentTime,this.currentLoop,e)}else this.current.apply(t,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(t,e){this.previous=null,t&&this.current&&(this.mixDuration=this.data.getMix(this.current,t),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=t,this.currentLoop=e,this.currentTime=0},setAnimationByName:function(t,e){var i=this.data.skeletonData.findAnimation(t);if(!i)throw"Animation not found: "+t;this.setAnimation(i,e)},setAnimation:function(t,e){this.queue.length=0,this._setAnimation(t,e)},addAnimationByName:function(t,e,i){var r=this.data.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;this.addAnimation(r,e,i)},addAnimation:function(t,e,i){var r={};if(r.animation=t,r.loop=e,!i||0>=i){var n=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;i=null!=n?n.duration-this.data.getMix(n,t)+(i||0):0}r.delay=i,this.queue.push(r)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},u.SkeletonJson=function(t){this.attachmentLoader=t},u.SkeletonJson.prototype={scale:1,readSkeletonData:function(t){for(var e=new u.SkeletonData,i=t.bones,r=0,n=i.length;n>r;r++){var a=i[r],s=null;if(a.parent&&(s=e.findBone(a.parent),!s))throw"Parent bone not found: "+a.parent;var o=new u.BoneData(a.name,s);o.length=(a.length||0)*this.scale,o.x=(a.x||0)*this.scale,o.y=(a.y||0)*this.scale,o.rotation=a.rotation||0,o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1,e.bones.push(o)}for(var h=t.slots,r=0,n=h.length;n>r;r++){var l=h[r],o=e.findBone(l.bone);if(!o)throw"Slot bone not found: "+l.bone;var c=new u.SlotData(l.name,o),d=l.color;d&&(c.r=u.SkeletonJson.toColor(d,0),c.g=u.SkeletonJson.toColor(d,1),c.b=u.SkeletonJson.toColor(d,2),c.a=u.SkeletonJson.toColor(d,3)),c.attachmentName=l.attachment,e.slots.push(c)}var p=t.skins;for(var f in p)if(p.hasOwnProperty(f)){var g=p[f],v=new u.Skin(f);for(var m in g)if(g.hasOwnProperty(m)){var x=e.findSlotIndex(m),b=g[m];for(var y in b)if(b.hasOwnProperty(y)){var T=this.readAttachment(v,y,b[y]);null!=T&&v.addAttachment(x,y,T)}}e.skins.push(v),"default"==v.name&&(e.defaultSkin=v)}var A=t.animations;for(var w in A)A.hasOwnProperty(w)&&this.readAnimation(w,A[w],e);return e},readAttachment:function(t,e,i){e=i.name||e;var r=u.AttachmentType[i.type||"region"],n=new u.RegionAttachment;return n.name=e,r==u.AttachmentType.region&&(n.x=(i.x||0)*this.scale,n.y=(i.y||0)*this.scale,n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1,n.rotation=i.rotation||0,n.width=(i.width||32)*this.scale,n.height=(i.height||32)*this.scale,n.updateOffset()),n},readAnimation:function(t,e,i){var r=[],n=0,a=e.bones;for(var s in a)if(a.hasOwnProperty(s)){var o=i.findBoneIndex(s);if(-1==o)throw"Bone not found: "+s;var h=a[s];for(var l in h)if(h.hasOwnProperty(l)){var c=h[l];if("rotate"==l){var d=new u.RotateTimeline(c.length);d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p,v.time,v.angle),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[2*d.getFrameCount()-2])}else{if("translate"!=l&&"scale"!=l)throw"Invalid timeline type for a bone: "+l+" ("+s+")";var d,m=1;"scale"==l?d=new u.ScaleTimeline(c.length):(d=new u.TranslateTimeline(c.length),m=this.scale),d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],x=(v.x||0)*m,b=(v.y||0)*m;d.setFrame(p,v.time,x,b),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[3*d.getFrameCount()-3])}}}var y=e.slots;for(var T in y)if(y.hasOwnProperty(T)){var A=y[T],w=i.findSlotIndex(T);for(var l in A)if(A.hasOwnProperty(l)){var c=A[l];if("color"==l){var d=new u.ColorTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],_=v.color,R=u.SkeletonJson.toColor(_,0),S=u.SkeletonJson.toColor(_,1),C=u.SkeletonJson.toColor(_,2),L=u.SkeletonJson.toColor(_,3);d.setFrame(p,v.time,R,S,C,L),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[5*d.getFrameCount()-5])}else{if("attachment"!=l)throw"Invalid timeline type for a slot: "+l+" ("+T+")";var d=new u.AttachmentTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p++,v.time,v.name)}r.push(d),n=Math.max(n,d.frames[Math.floor(d.getFrameCount())-1])}}}i.animations.push(new u.Animation(t,r,n))}},u.SkeletonJson.readCurve=function(t,e,i){var r=i.curve;r&&("stepped"==r?t.curves.setStepped(e):r instanceof Array&&t.curves.setCurve(e,r[0],r[1],r[2],r[3]))},u.SkeletonJson.toColor=function(t,e){if(8!=t.length)throw"Color hexidecimal length must be 8, recieved: "+t;return parseInt(t.substring(2*e,2),16)/255},u.Atlas=function(t,e){this.textureLoader=e,this.pages=[],this.regions=[];var i=new u.AtlasReader(t),r=[];r.length=4;for(var n=null;;){var a=i.readLine();if(null==a)break;if(a=i.trim(a),0==a.length)n=null;else if(n){var s=new u.AtlasRegion;s.name=a,s.page=n,s.rotate="true"==i.readValue(),i.readTuple(r);var o=parseInt(r[0]),h=parseInt(r[1]);i.readTuple(r);var l=parseInt(r[0]),c=parseInt(r[1]);s.u=o/n.width,s.v=h/n.height,s.rotate?(s.u2=(o+c)/n.width,s.v2=(h+l)/n.height):(s.u2=(o+l)/n.width,s.v2=(h+c)/n.height),s.x=o,s.y=h,s.width=Math.abs(l),s.height=Math.abs(c),4==i.readTuple(r)&&(s.splits=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],4==i.readTuple(r)&&(s.pads=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],i.readTuple(r))),s.originalWidth=parseInt(r[0]),s.originalHeight=parseInt(r[1]),i.readTuple(r),s.offsetX=parseInt(r[0]),s.offsetY=parseInt(r[1]),s.index=parseInt(i.readValue()),this.regions.push(s)}else{n=new u.AtlasPage,n.name=a,n.format=u.Atlas.Format[i.readValue()],i.readTuple(r),n.minFilter=u.Atlas.TextureFilter[r[0]],n.magFilter=u.Atlas.TextureFilter[r[1]];var d=i.readValue();n.uWrap=u.Atlas.TextureWrap.clampToEdge,n.vWrap=u.Atlas.TextureWrap.clampToEdge,"x"==d?n.uWrap=u.Atlas.TextureWrap.repeat:"y"==d?n.vWrap=u.Atlas.TextureWrap.repeat:"xy"==d&&(n.uWrap=n.vWrap=u.Atlas.TextureWrap.repeat),e.load(n,a),this.pages.push(n)}}},u.Atlas.prototype={findRegion:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},dispose:function(){for(var t=this.pages,e=0,i=t.length;i>e;e++)this.textureLoader.unload(t[e].rendererObject)},updateUVs:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++){var n=e[i];n.page==t&&(n.u=n.x/t.width,n.v=n.y/t.height,n.rotate?(n.u2=(n.x+n.height)/t.width,n.v2=(n.y+n.width)/t.height):(n.u2=(n.x+n.width)/t.width,n.v2=(n.y+n.height)/t.height))}}},u.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},u.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},u.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},u.AtlasPage=function(){},u.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},u.AtlasRegion=function(){},u.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},u.AtlasReader=function(t){this.lines=t.split(/\r\n|\r|\n/)},u.AtlasReader.prototype={index:0,trim:function(t){return t.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw"Invalid line: "+t;return this.trim(t.substring(e+1))},readTuple:function(t){var e=this.readLine(),i=e.indexOf(":");if(-1==i)throw"Invalid line: "+e;for(var r=0,n=i+1;3>r;r++){var a=e.indexOf(",",n);if(-1==a){if(0==r)throw"Invalid line: "+e;break}t[r]=this.trim(e.substr(n,a-n)),n=a+1}return t[r]=this.trim(e.substring(n)),r+1}},u.AtlasAttachmentLoader=function(t){this.atlas=t},u.AtlasAttachmentLoader.prototype={newAttachment:function(t,e,i){switch(e){case u.AttachmentType.region:var r=this.atlas.findRegion(i);if(!r)throw"Region not found in atlas: "+i+" ("+e+")";var n=new u.RegionAttachment(i);return n.rendererObject=r,n.setUVs(r.u,r.v,r.u2,r.v2,r.rotate),n.regionOffsetX=r.offsetX,n.regionOffsetY=r.offsetY,n.regionWidth=r.width,n.regionHeight=r.height,n.regionOriginalWidth=r.originalWidth,n.regionOriginalHeight=r.originalHeight,n}throw"Unknown attachment type: "+e}},n.AnimCache={},u.Bone.yDown=!0,n.CustomRenderable=function(){n.DisplayObject.call(this)},n.CustomRenderable.constructor=n.CustomRenderable,n.CustomRenderable.prototype=Object.create(n.DisplayObject.prototype),n.CustomRenderable.prototype.renderCanvas=function(){},n.CustomRenderable.prototype.initWebGL=function(){},n.CustomRenderable.prototype.renderWebGL=function(){},n.BaseTextureCache={},n.texturesToUpdate=[],n.texturesToDestroy=[],n.BaseTexture=function(t){if(n.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,n.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);this._powerOf2=!1}},n.BaseTexture.constructor=n.BaseTexture,n.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,n.texturesToDestroy.push(this)},n.BaseTexture.fromImage=function(t,e){var i=n.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new n.BaseTexture(r),n.BaseTextureCache[t]=i}return i},n.TextureCache={},n.FrameCache={},n.Texture=function(t,e){if(n.EventTarget.call(this),e||(this.noFrame=!0,e=new n.Rectangle(0,0,1,1)),this.trim=new n.Point,t instanceof n.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new n.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},n.Texture.constructor=n.Texture,n.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new n.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},n.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},n.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,n.Texture.frameUpdates.push(this)},n.Texture.fromImage=function(t,e){var i=n.TextureCache[t];return i||(i=new n.Texture(n.BaseTexture.fromImage(t,e)),n.TextureCache[t]=i),i},n.Texture.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},n.Texture.fromCanvas=function(t){var e=new n.BaseTexture(t);return new n.Texture(e)},n.Texture.addTextureToCache=function(t,e){n.TextureCache[e]=t},n.Texture.removeTextureFromCache=function(t){var e=n.TextureCache[t];return n.TextureCache[t]=null,e},n.Texture.frameUpdates=[],n.RenderTexture=function(t,e){n.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=n.mat3.create(),this.frame=new n.Rectangle(0,0,this.width,this.height),n.gl?this.initWebGL():this.initCanvas()},n.RenderTexture.constructor=n.RenderTexture,n.RenderTexture.prototype=Object.create(n.Texture.prototype),n.RenderTexture.prototype.initWebGL=function(){var t=n.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new n.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new n.Point(this.width/2,this.height/2),this.projectionMatrix=n.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},n.RenderTexture.prototype.initCanvas=function(){this.renderer=new n.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new n.BaseTexture(this.renderer.view),this.frame=new n.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},n.RenderTexture.prototype.renderWebGL=function(t,e){var i=n.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=n.mat3.create(),t.worldTransform[4]=-1,t.worldTransform[5]=2*this.projection.y;for(var a=0,s=r.length;s>a;a++)r[a].updateTransform();var o=t.__renderGroup;o?t==o.root?o.render(this.projection):o.renderSpecific(t,this.projection):(this.renderGroup||(this.renderGroup=new n.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projection))},n.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=n.mat3.create();for(var r=0,a=i.length;a>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),n.texturesToUpdate.push(this.baseTexture)},n.AssetLoader=function(t){n.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:n.ImageLoader,jpeg:n.ImageLoader,png:n.ImageLoader,gif:n.ImageLoader,json:n.JsonLoader,anim:n.SpineLoader,xml:n.BitmapFontLoader,fnt:n.BitmapFontLoader}},n.AssetLoader.constructor=n.AssetLoader,n.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),n=this.loadersByType[r];if(!n)throw Error(r+" is an unsupported file type");var a=new n(i,this.crossorigin);a.addEventListener("loaded",function(){t.onAssetLoaded()}),a.load()}},n.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},n.JsonLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.crossorigin=e,this.loaded=!1},n.JsonLoader.constructor=n.JsonLoader,n.JsonLoader.prototype.load=function(){this.ajaxRequest=new l;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},n.JsonLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState)if(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))if(this.json=JSON.parse(this.ajaxRequest.responseText),this.json.frames){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0))}i.load()}else if(this.json.bones){var o=new u.SkeletonJson,h=o.readSkeletonData(this.json);n.AnimCache[this.url]=h,this.onLoaded()}else this.onLoaded();else this.onError()},n.JsonLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},n.JsonLoader.prototype.onError=function(){this.dispatchEvent({type:"error",content:this})},n.SpriteSheetLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},n.SpriteSheetLoader.constructor=n.SpriteSheetLoader,n.SpriteSheetLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpriteSheetLoader.prototype.onJSONLoaded=function(){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0)) }i.load()},n.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.ImageLoader=function(t,e){n.EventTarget.call(this),this.texture=n.Texture.fromImage(t,e)},n.ImageLoader.constructor=n.ImageLoader,n.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},n.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.BitmapFontLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},n.BitmapFontLoader.constructor=n.BitmapFontLoader,n.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},n.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new n.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],a=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(a.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var s=this.ajaxRequest.responseXML.getElementsByTagName("char"),o=0;s.length>o;o++){var h=parseInt(s[o].attributes.getNamedItem("id").nodeValue,10),l={x:parseInt(s[o].attributes.getNamedItem("x").nodeValue,10),y:parseInt(s[o].attributes.getNamedItem("y").nodeValue,10),width:parseInt(s[o].attributes.getNamedItem("width").nodeValue,10),height:parseInt(s[o].attributes.getNamedItem("height").nodeValue,10)};n.TextureCache[h]=new n.Texture(this.texture,l),i.chars[h]={xOffset:parseInt(s[o].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(s[o].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(s[o].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{},texture:new n.Texture(this.texture,l)}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(o=0;u.length>o;o++){var c=parseInt(u[o].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[o].attributes.getNamedItem("second").nodeValue,10),p=parseInt(u[o].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=p}n.BitmapText.fonts[i.font]=i;var f=this;e.addEventListener("loaded",function(){f.onLoaded()}),e.load()}},n.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.SpineLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.crossorigin=e,this.loaded=!1},n.SpineLoader.constructor=n.SpineLoader,n.SpineLoader.prototype.load=function(){new n.JsonLoader(this.url,this.crossorigin),jsonLoader.addEventListener("loaded",function(t){scope.json=t.content.json,scope.onJSONLoaded()}),jsonLoader.load()},n.SpineLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpineLoader.prototype.onJSONLoaded=function(){var t=new u.SkeletonJson,e=t.readSkeletonData(this.json);n.AnimCache[this.url]=e,this.onLoaded()},n.SpineLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports.PIXI=n):i.PIXI=n}).call(this); \ No newline at end of file diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index 25cca17..0391561 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index 25cca17..0391561 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 12 - Spine/pixi.js b/examples/example 12 - Spine/pixi.js index 25cca17..0391561 100644 --- a/examples/example 12 - Spine/pixi.js +++ b/examples/example 12 - Spine/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 13 - Graphics/index.html b/examples/example 13 - Graphics/index.html index e6996b7..d847ef2 100644 --- a/examples/example 13 - Graphics/index.html +++ b/examples/example 13 - Graphics/index.html @@ -80,17 +80,40 @@ stage.addChild(graphics); + // lets create moving shape + var thing = new PIXI.Graphics(); + stage.addChild(thing); + thing.position.x = 620/2; + thing.position.y = 380/2; + + var count = 0; + stage.click = stage.tap = function() { graphics.lineStyle(Math.random() * 30, Math.random() * 0xFFFFFF, 1); graphics.moveTo(Math.random() * 620,Math.random() * 380); graphics.lineTo(Math.random() * 620,Math.random() * 380); - } requestAnimFrame(animate); function animate() { + + thing.clear(); + + count += 0.1; + + thing.clear(); + thing.lineStyle(30, 0xff0000, 1); + thing.beginFill(0xffFF00, 0.5); + + thing.moveTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + thing.lineTo(120 + Math.cos(count) * 20, -100 + Math.sin(count)* 20); + thing.lineTo(120 + Math.sin(count) * 20, 100 + Math.cos(count)* 20); + thing.lineTo(-120 + Math.cos(count)* 20, 100 + Math.sin(count)* 20); + thing.lineTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + + thing.rotation = count * 0.1; renderer.render(stage); requestAnimFrame( animate ); } diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.js b/bin/pixi.js index 51d6836..96307b0 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -9,7 +9,7 @@ * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; +(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[],t._webGL.indices=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; if(0!=r.length){var a=new n.Point(r[0],r[1]),s=new n.Point(r[r.length-2],r[r.length-1]);if(a.x==s.x&&a.y==s.y){r.pop(),r.pop(),s=new n.Point(r[r.length-2],r[r.length-1]);var o=s.x+.5*(a.x-s.x),h=s.y+.5*(a.y-s.y);r.unshift(o,h),r.push(o,h)}var l,u,c,d,p,f,g,v,m,x,b,y,T,A,w,_,R,S,C,L,E,B=i.points,F=i.indices,P=r.length/2,G=r.length,I=B.length/6,D=t.lineWidth/2,M=e(t.lineColor),O=t.lineAlpha,W=M[0]*O,U=M[1]*O,j=M[2]*O;l=r[0],u=r[1],c=r[2],d=r[3],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(l-g,u-v,W,U,j,O),B.push(l+g,u+v,W,U,j,O);for(var k=1;P-1>k;k++)l=r[2*(k-1)],u=r[2*(k-1)+1],c=r[2*k],d=r[2*k+1],p=r[2*(k+1)],f=r[2*(k+1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,m=-(d-f),x=c-p,E=Math.sqrt(m*m+x*x),m/=E,x/=E,m*=D,x*=D,T=-v+u-(-v+d),A=-g+c-(-g+l),w=(-g+l)*(-v+d)-(-g+c)*(-v+u),_=-x+f-(-x+d),R=-m+c-(-m+p),S=(-m+p)*(-x+d)-(-m+c)*(-x+f),C=T*R-_*A,0==C&&(C+=1),px=(A*S-R*w)/C,py=(_*w-T*S)/C,L=(px-c)*(px-c)+(py-d)+(py-d),L>19600?(b=g-m,y=v-x,E=Math.sqrt(b*b+y*y),b/=E,y/=E,b*=D,y*=D,B.push(c-b,d-y),B.push(W,U,j,O),B.push(c+b,d+y),B.push(W,U,j,O),B.push(c-b,d-y),B.push(W,U,j,O),G++):(B.push(px,py),B.push(W,U,j,O),B.push(c-(px-c),d-(py-d)),B.push(W,U,j,O));l=r[2*(P-2)],u=r[2*(P-2)+1],c=r[2*(P-1)],d=r[2*(P-1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(c-g,d-v),B.push(W,U,j,O),B.push(c+g,d+v),B.push(W,U,j,O),F.push(I);for(var k=0;G>k;k++)F.push(I++);F.push(I-1)}},n.WebGLGraphics.buildPoly=function(t,i){var r=t.points;if(!(6>r.length)){for(var a=i.points,s=i.indices,o=r.length/2,h=e(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=n.PolyK.Triangulate(r),f=a.length/6,g=0;p.length>g;g+=3)s.push(p[g]+f),s.push(p[g]+f),s.push(p[g+1]+f),s.push(p[g+2]+f),s.push(p[g+2]+f);for(var g=0;o>g;g++)a.push(r[2*g],r[2*g+1],u,c,d,l)}},n._defaultFrame=new n.Rectangle(0,0,1,1),n.gl,n.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var a=this;this.view.addEventListener("webglcontextlost",function(t){a.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){a.handleContextRestored(t)},!1),this.batchs=[];try{n.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!0,premultipliedAlpha:!1})}catch(s){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}n.initPrimitiveShader(),n.initDefaultShader(),n.initDefaultStripShader(),n.activateDefaultShader();var o=this.gl;n.WebGLRenderer.gl=o,this.batch=new n.WebGLBatch(o),o.disable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.enable(o.BLEND),o.colorMask(!0,!0,!0,this.transparent),n.projection=new n.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new n.WebGLRenderGroup(this.gl)},n.WebGLRenderer.constructor=n.WebGLRenderer,n.WebGLRenderer.getBatch=function(){return 0==n._batchs.length?new n.WebGLBatch(n.WebGLRenderer.gl):n._batchs.pop()},n.WebGLRenderer.returnBatch=function(t){t.clean(),n._batchs.push(t)},n.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),n.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],!this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(n.projection),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0){for(var i=0;n.Texture.frameUpdates.length>i;i++)n.Texture.frameUpdates[i].updateFrame=!1;n.Texture.frameUpdates=[]}}},n.WebGLRenderer.updateTextures=function(){for(var t=0;n.texturesToUpdate.length>t;t++)this.updateTexture(n.texturesToUpdate[t]);for(var t=0;n.texturesToDestroy.length>t;t++)this.destroyTexture(n.texturesToDestroy[t]);n.texturesToUpdate=[],n.texturesToDestroy=[]},n.WebGLRenderer.updateTexture=function(t){var e=n.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},n.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},n.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),n.projection.x=this.width/2,n.projection.y=this.height/2},n.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},n.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;n.TextureCache.length>t;t++)this.updateTexture(n.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;n._restoreBatchs(this.gl),this.contextLost=!1},n._batchs=[],n._getBatch=function(t){return 0==n._batchs.length?new n.WebGLBatch(t):n._batchs.pop()},n._returnBatch=function(t){t.clean(),n._batchs.push(t)},n._restoreBatchs=function(t){for(var e=0;n._batchs.length>e;e++)n._batchs[e].restoreLostContext(t)},n.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=n.blendModes.NORMAL,this.dynamicSize=1},n.WebGLBatch.constructor=n.WebGLBatch,n.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},n.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},n.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},n.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},n.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},n.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},n.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new n.WebGLBatch(this.gl);e.init(t),e.texture=this.texture,e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},n.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},n.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,n=4*i;this.indices[r+0]=n+0,this.indices[r+1]=n+1,this.indices[r+2]=n+2,this.indices[r+3]=n+0,this.indices[r+4]=n+2,this.indices[r+5]=n+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},n.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof n.WebGLBatch?this.batchs[r].render():i instanceof n.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof n.Strip?i.visible&&this.renderStrip(i,t):i instanceof n.Graphics&&i.visible&&n.WebGLGraphics.renderGraphics(i,t)},n.WebGLRenderGroup.prototype.renderSpecific=function(t,e){n.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniform2f(n.shaderProgram.projectionVector,e.x,e.y);var r,a,s,o,h=t.renderable?t:this.getNextRenderable(t),l=h.batch;if(h instanceof n.Sprite){l=h.batch;var u=l.head;if(u==h)r=0;else for(r=1;u.__next!=h;)r++,u=u.__next}else l=h;for(var c,d=t,p=t;p.children.length>0;)p=p.children[p.children.length-1],p.renderable&&(d=p);if(d instanceof n.Sprite){c=d.batch;var u=c.head;if(u==d)s=0;else for(s=1;u.__next!=d;)s++,u=u.__next}else c=d;if(l==c)return l instanceof n.WebGLBatch?l.render(r,s+1):this.renderSpecial(l),void 0;a=this.batchs.indexOf(l),o=this.batchs.indexOf(c),l instanceof n.WebGLBatch?l.render(r):this.renderSpecial(l);for(var f=a+1;o>f;f++)renderable=this.batchs[f],renderable instanceof n.WebGLBatch?this.batchs[f].render():this.renderSpecial(renderable);c instanceof n.WebGLBatch?c.render(0,s+1):this.renderSpecial(c)},n.WebGLRenderGroup.prototype.renderSpecial=function(t){t instanceof n.TilingSprite?t.visible&&this.renderTilingSprite(t,projectionMatrix):t instanceof n.Strip?t.visible&&this.renderStrip(t,projectionMatrix):t instanceof n.CustomRenderable?t.visible&&t.renderWebGL(this,projectionMatrix):t instanceof n.Graphics&&t.visible&&n.WebGLGraphics.renderGraphics(t)},n.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var n=i[r];n.worldVisible=n.visible&&e,n.textureChange&&(n.textureChange=!1,n.worldVisible&&(this.removeDisplayObject(n),this.addDisplayObject(n))),n.children.length>0&&this.checkVisibility(n,n.worldVisible)}},n.WebGLRenderGroup.prototype.updateTexture=function(t){if(1==t.batch.length)return t.batch.texture=t.texture.baseTexture,void 0;if(t.batch.texture!=t.texture.baseTexture)if(t.batch.head==t){var e=t.batch,i=this.batchs.indexOf(e),r=this.batchs[i-1];if(e.remove(t),r)if(r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)r.insertAfter(t,r.tail);else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i-1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(0,0,a)}}else if(t.batch.tail==t){var e=t.batch,i=this.batchs.indexOf(e),s=this.batchs[i+1];if(e.remove(t),s){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,s.head),void 0;var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i+1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.push(a)}}else{var e=t.batch,o=e.split(t);o.remove(t);var a=n.WebGLRenderer.getBatch(),i=this.batchs.indexOf(e);a.init(t),this.batchs.splice(i+1,0,a,o)}},n.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof n.Sprite){var r,a;if(e instanceof n.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof n.Sprite){if(a=i.batch){if(a.texture==t.texture.baseTexture&&a.blendMode==t.blendMode)return a.insertBefore(t,i),void 0;if(a==r){var s=r.split(i),o=n.WebGLRenderer.getBatch(),h=this.batchs.indexOf(r);return o.init(t),this.batchs.splice(h+1,0,o,s),void 0}}}else a=i;var o=n.WebGLRenderer.getBatch();if(o.init(t),r){var h=this.batchs.indexOf(r);this.batchs.splice(h+1,0,o)}else this.batchs.push(o)}else t instanceof n.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof n.Strip?(this.initStrip(t),this.batchs.push(t)):t instanceof n.Graphics&&this.batchs.push(t);this.batchUpdate=!0}},n.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},n.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof n.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof n.WebGLBatch&&this.batchs[r+1]instanceof n.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),n.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e)}}},n.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},n.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},n.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=n.shaderProgram;i.useProgram(n.stripShaderProgram);var a=n.mat3.clone(t.worldTransform);n.mat3.transpose(a),i.uniformMatrix3fv(n.stripShaderProgram.translationMatrix,!1,a),i.uniform2f(n.stripShaderProgram.projectionVector,e.x,e.y),i.uniform1f(n.stripShaderProgram.alpha,t.worldAlpha),t.blendMode==n.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.useProgram(n.shaderProgram)},n.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;n.shaderProgram;var r=t.tilePosition,a=t.tileScale,s=r.x/t.texture.baseTexture.width,o=r.y/t.texture.baseTexture.height,h=t.width/t.texture.baseTexture.width/a.x,l=t.height/t.texture.baseTexture.height/a.y;t.uvs[0]=0-s,t.uvs[1]=0-o,t.uvs[2]=1*h-s,t.uvs[3]=0-o,t.uvs[4]=1*h-s,t.uvs[5]=1*l-o,t.uvs[6]=0-s,t.uvs[7]=1*l-o,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},n.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},n.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},n.CanvasRenderer.constructor=n.CanvasRenderer,n.CanvasRenderer.prototype.render=function(t){n.texturesToUpdate=[],n.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0&&(n.Texture.frameUpdates=[])},n.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},n.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof n.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof n.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof n.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof n.CustomRenderable?t.renderCanvas(this):t instanceof n.Graphics&&(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),n.CanvasGraphics.renderGraphics(t,i));if(t.children)for(var a=0;t.children.length>a;a++)this.renderDisplayObject(t.children[a]);this.context.setTransform(1,0,0,1,0,0)}},n.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var n=1;r-2>n;n++){var a=2*n,s=i[a],o=i[a+2],h=i[a+4],l=i[a+1],u=i[a+3],c=i[a+5];e.moveTo(s,l),e.lineTo(o,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},n.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;e.globalAlpha=t.worldAlpha,t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},n.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,n=i.length/2;this.count++;for(var a=1;n-2>a;a++){var s=2*a,o=i[s],h=i[s+2],l=i[s+4],u=i[s+1],c=i[s+3],d=i[s+5],p=r[s]*t.texture.width,f=r[s+2]*t.texture.width,g=r[s+4]*t.texture.width,v=r[s+1]*t.texture.height,m=r[s+3]*t.texture.height,x=r[s+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var b=p*m+v*g+f*x-m*g-v*f-p*x,y=o*m+v*l+h*x-m*l-v*h-o*x,T=p*h+o*g+f*l-h*g-o*f-p*l,A=p*m*l+v*h*g+o*f*x-o*m*g-v*f*l-p*h*x,w=u*m+v*d+c*x-m*d-v*c-u*x,_=p*c+u*g+f*d-c*g-u*f-p*d,R=p*m*d+v*c*g+u*f*x-u*m*g-v*f*d-p*c*x;e.transform(y/b,w/b,T/b,_/b,A/b,R/b),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},n.CanvasGraphics=function(){},n.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,r=0;t.graphicsData.length>r;r++){var a=t.graphicsData[r],s=a.points;if(e.strokeStyle=color="#"+("00000"+(0|a.lineColor).toString(16)).substr(-6),e.lineWidth=a.lineWidth,a.type==n.Graphics.POLY){e.beginPath(),e.moveTo(s[0],s[1]);for(var o=1;s.length/2>o;o++)e.lineTo(s[2*o],s[2*o+1]);s[0]==s[s.length-2]&&s[1]==s[s.length-1]&&e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}else if(a.type==n.Graphics.RECT)a.fillColor&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fillRect(s[0],s[1],s[2],s[3])),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.strokeRect(s[0],s[1],s[2],s[3]));else if(a.type==n.Graphics.CIRC)e.beginPath(),e.arc(s[0],s[1],s[2],0,2*Math.PI),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke());else if(a.type==n.Graphics.ELIP){var h=a.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,v=c+l,m=d+u,x=c+l/2,b=d+u/2;e.moveTo(c,b),e.bezierCurveTo(c,b-g,x-f,d,x,d),e.bezierCurveTo(x+f,d,v,b-g,v,b),e.bezierCurveTo(v,b+g,x+f,m,x,m),e.bezierCurveTo(x-f,m,c,b+g,c,b),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}}},n.Graphics=function(){n.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=2,this.lineColor="#FF0000",this.graphicsData=[],this.currentPath={points:[]}},n.Graphics.constructor=n.Graphics,n.Graphics.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Graphics.prototype.lineStyle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=void 0==i?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.graphicsData.push(this.currentPath)},n.Graphics.prototype.moveTo=function(t,e){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath)},n.Graphics.prototype.lineTo=function(t,e){this.currentPath.points.push(t,e),this.dirty=!0},n.Graphics.prototype.beginFill=function(t,e){this.filling=!0,this.fillColor=t||0,this.fillAlpha=e||1},n.Graphics.prototype.endFill=function(){this.filling=!1,this.fillColor=null,this.fillAlpha=1},n.Graphics.prototype.drawRect=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawCircle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:n.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawElipse=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.clear=function(){this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[]},n.Graphics.POLY=0,n.Graphics.RECT=1,n.Graphics.CIRC=2,n.Graphics.ELIP=3,n.Strip=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=n.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Strip.constructor=n.Strip,n.Strip.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},n.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Rope=function(t,e){n.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},n.Rope.constructor=n.Rope,n.Rope.prototype=Object.create(n.Strip.prototype),n.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,n=t[0],a=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var s=t.length,o=1;s>o;o++){var a=t[o],h=4*o,l=o/(s-1);o%2?(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1):(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,n=a}}},n.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],a={x:0,y:0},s=t[0];this.count-=.2,i[0]=s.x+a.x,i[1]=s.y+a.y,i[2]=s.x-a.x,i[3]=s.y-a.y;for(var o=t.length,h=1;o>h;h++){var s=t[h],l=4*h;e=t.length-1>h?t[h+1]:s,a.y=-(e.x-r.x),a.x=e.y-r.y;var u=10*(1-h/(o-1));u>1&&(u=1);var c=Math.sqrt(a.x*a.x+a.y*a.y),d=this.texture.height/2;a.x/=c,a.y/=c,a.x*=d,a.y*=d,i[l]=s.x+a.x,i[l+1]=s.y+a.y,i[l+2]=s.x-a.x,i[l+3]=s.y-a.y,r=s}n.DisplayObjectContainer.prototype.updateTransform.call(this)}},n.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0 },n.TilingSprite=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new n.Point(1,1),this.tilePosition=new n.Point(0,0),this.blendMode=n.blendModes.NORMAL},n.TilingSprite.constructor=n.TilingSprite,n.TilingSprite.prototype=Object.create(n.DisplayObjectContainer.prototype),n.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},n.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Spine=function(t){if(n.DisplayObjectContainer.call(this),this.spineData=n.AnimCache[t],!this.spineData)throw Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+t);this.count=0,this.sprites=[],this.skeleton=new u.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new u.AnimationStateData(this.spineData),this.state=new u.AnimationState(this.stateData);for(var e=0;this.skeleton.drawOrder.length>e;e++){var i=this.skeleton.drawOrder[e].data.attachmentName;n.TextureCache[i]||(i+=".png");var r=new n.Sprite(n.Texture.fromFrame(i));r.anchor.x=r.anchor.y=.5,this.addChild(r),this.sprites.push(r)}},n.Spine.constructor=n.Spine,n.Spine.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Spine.prototype.updateTransform=function(){this.state.update(1/60),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var t=0;this.skeleton.drawOrder.length>t;t++){var e=this.skeleton.drawOrder[t],i=e.bone.worldX+e.attachment.x*e.bone.m00+e.attachment.y*e.bone.m01+.5*e.attachment.width,r=e.bone.worldY+e.attachment.x*e.bone.m10+e.attachment.y*e.bone.m11+.5*e.attachment.height;if(e.cacheName!=e.attachment.name){var a=e.attachment.name;n.TextureCache[a]||(a+=".png"),this.sprites[t].setTexture(n.TextureCache[a]),e.cacheName=e.attachment.name}i+=-(e.attachment.width*(e.bone.worldScaleX+e.attachment.scaleX-1)>>1),r+=-(e.attachment.height*(e.bone.worldScaleY+e.attachment.scaleY-1)>>1),this.sprites[t].position.x=i,this.sprites[t].position.y=r,this.sprites[t].rotation=-(e.bone.worldRotation+e.attachment.rotation)*(Math.PI/180)}n.DisplayObjectContainer.prototype.updateTransform.call(this)};var u={};u.BoneData=function(t,e){this.name=t,this.parent=e},u.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},u.SlotData=function(t,e){this.name=t,this.boneData=e},u.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},u.Bone=function(t,e){this.data=t,this.parent=e,this.setToSetupPose()},u.Bone.yDown=!1,u.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(t,e){var i=this.parent;null!=i?(this.worldX=this.x*i.m00+this.y*i.m01+i.worldX,this.worldY=this.x*i.m10+this.y*i.m11+i.worldY,this.worldScaleX=i.worldScaleX*this.scaleX,this.worldScaleY=i.worldScaleY*this.scaleY,this.worldRotation=i.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var r=this.worldRotation*Math.PI/180,n=Math.cos(r),a=Math.sin(r);this.m00=n*this.worldScaleX,this.m10=a*this.worldScaleX,this.m01=-a*this.worldScaleY,this.m11=n*this.worldScaleY,t&&(this.m00=-this.m00,this.m01=-this.m01),e&&(this.m10=-this.m10,this.m11=-this.m11),u.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY}},u.Slot=function(t,e,i){this.data=t,this.skeleton=e,this.bone=i,this.setToSetupPose()},u.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(t){this.attachment=t,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(t){this._attachmentTime=this.skeleton.time-t},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var t=this.data;this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a;for(var e=this.skeleton.data.slots,i=0,r=e.length;r>i;i++)if(e[i]==t){this.setAttachment(t.attachmentName?this.skeleton.getAttachmentBySlotIndex(i,t.attachmentName):null);break}}},u.Skin=function(t){this.name=t,this.attachments={}},u.Skin.prototype={addAttachment:function(t,e,i){this.attachments[t+":"+e]=i},getAttachment:function(t,e){return this.attachments[t+":"+e]},_attachAll:function(t,e){for(var i in e.attachments){var r=i.indexOf(":"),n=parseInt(i.substring(0,r)),a=i.substring(r+1),s=t.slots[n];if(s.attachment&&s.attachment.name==a){var o=this.getAttachment(n,a);o&&s.setAttachment(o)}}}},u.Animation=function(t,e,i){this.name=t,this.timelines=e,this.duration=i},u.Animation.prototype={apply:function(t,e,i){i&&0!=this.duration&&(e%=this.duration);for(var r=this.timelines,n=0,a=r.length;a>n;n++)r[n].apply(t,e,1)},mix:function(t,e,i,r){i&&0!=this.duration&&(e%=this.duration);for(var n=this.timelines,a=0,s=n.length;s>a;a++)n[a].apply(t,e,r)}},u.binarySearch=function(t,e,i){var r=0,n=Math.floor(t.length/i)-2;if(0==n)return i;for(var a=n>>>1;;){if(e>=t[(a+1)*i]?r=a+1:n=a,r==n)return(r+1)*i;a=r+n>>>1}},u.linearSearch=function(t,e,i){for(var r=0,n=t.length-i;n>=r;r+=i)if(t[r]>e)return r;return-1},u.Curves=function(t){this.curves=[],this.curves.length=6*(t-1)},u.Curves.prototype={setLinear:function(t){this.curves[6*t]=0},setStepped:function(t){this.curves[6*t]=-1},setCurve:function(t,e,i,r,n){var a=.1,s=a*a,o=s*a,h=3*a,l=3*s,u=6*s,c=6*o,d=2*-e+r,p=2*-i+n,f=3*(e-r)+1,g=3*(i-n)+1,v=6*t,m=this.curves;m[v]=e*h+d*l+f*o,m[v+1]=i*h+p*l+g*o,m[v+2]=d*u+f*c,m[v+3]=p*u+g*c,m[v+4]=f*c,m[v+5]=g*c},getCurvePercent:function(t,e){e=0>e?0:e>1?1:e;var i=6*t,r=this.curves,n=r[i];if(!n)return e;if(-1==n)return 0;for(var a=r[i+1],s=r[i+2],o=r[i+3],h=r[i+4],l=r[i+5],u=n,c=a,d=8;;){if(u>=e){var p=u-n,f=c-a;return f+(c-f)*(e-p)/(u-p)}if(0==d)break;d--,n+=s,a+=o,s+=h,o+=l,u+=n,c+=a}return c+(1-c)*(e-u)/(1-u)}},u.RotateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=2*t},u.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){t*=2,this.frames[t]=e,this.frames[t+1]=i},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-2]){for(var a=n.data.rotation+r[r.length-1]-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;return n.rotation+=a*i,void 0}var s=u.binarySearch(r,e,2),o=r[s-1],h=r[s],l=1-(e-h)/(r[s-2]-h);l=this.curves.getCurvePercent(s/2-1,l);for(var a=r[s+1]-o;a>180;)a-=360;for(;-180>a;)a+=360;for(a=n.data.rotation+(o+a*l)-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;n.rotation+=a*i}}},u.TranslateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.x+=(n.data.x+r[r.length-2]-n.x)*i,n.y+=(n.data.y+r[r.length-1]-n.y)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.x+=(n.data.x+s+(r[a+1]-s)*l-n.x)*i,n.y+=(n.data.y+o+(r[a+2]-o)*l-n.y)*i}}},u.ScaleTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.scaleX+=(n.data.scaleX-1+r[r.length-2]-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+r[r.length-1]-n.scaleY)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.scaleX+=(n.data.scaleX-1+s+(r[a+1]-s)*l-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+o+(r[a+2]-o)*l-n.scaleY)*i}}},u.ColorTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=5*t},u.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e){t*=5,this.frames[t]=e,this.frames[t+1]=r,this.frames[t+2]=g,this.frames[t+3]=b,this.frames[t+4]=a},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.slots[this.slotIndex];if(e>=r[r.length-5]){var a=r.length-1;return n.r=r[a-3],n.g=r[a-2],n.b=r[a-1],n.a=r[a],void 0}var s=u.binarySearch(r,e,5),o=r[s-4],h=r[s-3],l=r[s-2],c=r[s-1],d=r[s],p=1-(e-d)/(r[s-5]-d);p=this.curves.getCurvePercent(s/5-1,p);var f=o+(r[s+1]-o)*p,g=h+(r[s+2]-h)*p,v=l+(r[s+3]-l)*p,m=c+(r[s+4]-c)*p;1>i?(n.r+=(f-n.r)*i,n.g+=(g-n.g)*i,n.b+=(v-n.b)*i,n.a+=(m-n.a)*i):(n.r=f,n.g=g,n.b=v,n.a=m)}}},u.AttachmentTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=t,this.attachmentNames=[],this.attachmentNames.length=t},u.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){this.frames[t]=e,this.attachmentNames[t]=i},apply:function(t,e){var i=this.frames;if(!(i[0]>e)){var r;r=e>=i[i.length-1]?i.length-1:u.binarySearch(i,e,1)-1;var n=this.attachmentNames[r];t.slots[this.slotIndex].setAttachment(n?t.getAttachmentBySlotIndex(this.slotIndex,n):null)}}},u.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},u.SkeletonData.prototype={defaultSkin:null,findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return slot[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSkin:function(t){for(var e=this.skins,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findAnimation:function(t){for(var e=this.animations,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null}},u.Skeleton=function(t){this.data=t,this.bones=[];for(var e=0,i=t.bones.length;i>e;e++){var r=t.bones[e],n=r.parent?this.bones[t.bones.indexOf(r.parent)]:null;this.bones.push(new u.Bone(r,n))}this.slots=[],this.drawOrder=[];for(var e=0,i=t.slots.length;i>e;e++){var a=t.slots[e],s=this.bones[t.bones.indexOf(a.boneData)],o=new u.Slot(a,this,s);this.slots.push(o),this.drawOrder.push(o)}},u.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var t=this.flipX,e=this.flipY,i=this.bones,r=0,n=i.length;n>r;r++)i[r].updateWorldTransform(t,e)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var t=this.bones,e=0,i=t.length;i>e;e++)t[e].setToSetupPose()},setSlotsToSetupPose:function(){for(var t=this.slots,e=0,i=t.length;i>e;e++)t[e].setToSetupPose(e)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},setSkinByName:function(t){var e=this.data.findSkin(t);if(!e)throw"Skin not found: "+t;this.setSkin(e)},setSkin:function(t){this.skin&&t&&t._attachAll(this,this.skin),this.skin=t},getAttachmentBySlotName:function(t,e){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(t),e)},getAttachmentBySlotIndex:function(t,e){if(this.skin){var i=this.skin.getAttachment(t,e);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},setAttachment:function(t,e){for(var i=this.slots,r=0,n=i.size;n>r;r++){var a=i[r];if(a.data.name==t){var s=null;if(e&&(s=this.getAttachment(r,e),null==s))throw"Attachment not found: "+e+", for slot: "+t;return a.setAttachment(s),void 0}}throw"Slot not found: "+t},update:function(t){time+=t}},u.AttachmentType={region:0},u.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},u.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(t,e,i,r,n){var a=this.uvs;n?(a[2]=t,a[3]=r,a[4]=t,a[5]=e,a[6]=i,a[7]=e,a[0]=i,a[1]=r):(a[0]=t,a[1]=r,a[2]=t,a[3]=e,a[4]=i,a[5]=e,a[6]=i,a[7]=r)},updateOffset:function(){var t=this.width/this.regionOriginalWidth*this.scaleX,e=this.height/this.regionOriginalHeight*this.scaleY,i=-this.width/2*this.scaleX+this.regionOffsetX*t,r=-this.height/2*this.scaleY+this.regionOffsetY*e,n=i+this.regionWidth*t,a=r+this.regionHeight*e,s=this.rotation*Math.PI/180,o=Math.cos(s),h=Math.sin(s),l=i*o+this.x,u=i*h,c=r*o+this.y,d=r*h,p=n*o+this.x,f=n*h,g=a*o+this.y,v=a*h,m=this.offset;m[0]=l-d,m[1]=c+u,m[2]=l-v,m[3]=g+u,m[4]=p-v,m[5]=g+f,m[6]=p-d,m[7]=c+f},computeVertices:function(t,e,i,r){t+=i.worldX,e+=i.worldY;var n=i.m00,a=i.m01,s=i.m10,o=i.m11,h=this.offset;r[0]=h[0]*n+h[1]*a+t,r[1]=h[0]*s+h[1]*o+e,r[2]=h[2]*n+h[3]*a+t,r[3]=h[2]*s+h[3]*o+e,r[4]=h[4]*n+h[5]*a+t,r[5]=h[4]*s+h[5]*o+e,r[6]=h[6]*n+h[7]*a+t,r[7]=h[6]*s+h[7]*o+e}},u.AnimationStateData=function(t){this.skeletonData=t,this.animationToMixTime={}},u.AnimationStateData.prototype={setMixByName:function(t,e,i){var r=this.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;var n=this.skeletonData.findAnimation(e);if(!n)throw"Animation not found: "+e;this.setMix(r,n,i)},setMix:function(t,e,i){this.animationToMixTime[t.name+":"+e.name]=i},getMix:function(t,e){var i=this.animationToMixTime[t.name+":"+e.name];return i?i:0}},u.AnimationState=function(t){this.data=t,this.queue=[]},u.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(t){if(this.currentTime+=t,this.previousTime+=t,this.mixTime+=t,this.queue.length>0){var e=this.queue[0];this.currentTime>=e.delay&&(this._setAnimation(e.animation,e.loop),this.queue.shift())}},apply:function(t){if(this.current)if(this.previous){this.previous.apply(t,this.previousTime,this.previousLoop);var e=this.mixTime/this.mixDuration;e>=1&&(e=1,this.previous=null),this.current.mix(t,this.currentTime,this.currentLoop,e)}else this.current.apply(t,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(t,e){this.previous=null,t&&this.current&&(this.mixDuration=this.data.getMix(this.current,t),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=t,this.currentLoop=e,this.currentTime=0},setAnimationByName:function(t,e){var i=this.data.skeletonData.findAnimation(t);if(!i)throw"Animation not found: "+t;this.setAnimation(i,e)},setAnimation:function(t,e){this.queue.length=0,this._setAnimation(t,e)},addAnimationByName:function(t,e,i){var r=this.data.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;this.addAnimation(r,e,i)},addAnimation:function(t,e,i){var r={};if(r.animation=t,r.loop=e,!i||0>=i){var n=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;i=null!=n?n.duration-this.data.getMix(n,t)+(i||0):0}r.delay=i,this.queue.push(r)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},u.SkeletonJson=function(t){this.attachmentLoader=t},u.SkeletonJson.prototype={scale:1,readSkeletonData:function(t){for(var e=new u.SkeletonData,i=t.bones,r=0,n=i.length;n>r;r++){var a=i[r],s=null;if(a.parent&&(s=e.findBone(a.parent),!s))throw"Parent bone not found: "+a.parent;var o=new u.BoneData(a.name,s);o.length=(a.length||0)*this.scale,o.x=(a.x||0)*this.scale,o.y=(a.y||0)*this.scale,o.rotation=a.rotation||0,o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1,e.bones.push(o)}for(var h=t.slots,r=0,n=h.length;n>r;r++){var l=h[r],o=e.findBone(l.bone);if(!o)throw"Slot bone not found: "+l.bone;var c=new u.SlotData(l.name,o),d=l.color;d&&(c.r=u.SkeletonJson.toColor(d,0),c.g=u.SkeletonJson.toColor(d,1),c.b=u.SkeletonJson.toColor(d,2),c.a=u.SkeletonJson.toColor(d,3)),c.attachmentName=l.attachment,e.slots.push(c)}var p=t.skins;for(var f in p)if(p.hasOwnProperty(f)){var g=p[f],v=new u.Skin(f);for(var m in g)if(g.hasOwnProperty(m)){var x=e.findSlotIndex(m),b=g[m];for(var y in b)if(b.hasOwnProperty(y)){var T=this.readAttachment(v,y,b[y]);null!=T&&v.addAttachment(x,y,T)}}e.skins.push(v),"default"==v.name&&(e.defaultSkin=v)}var A=t.animations;for(var w in A)A.hasOwnProperty(w)&&this.readAnimation(w,A[w],e);return e},readAttachment:function(t,e,i){e=i.name||e;var r=u.AttachmentType[i.type||"region"],n=new u.RegionAttachment;return n.name=e,r==u.AttachmentType.region&&(n.x=(i.x||0)*this.scale,n.y=(i.y||0)*this.scale,n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1,n.rotation=i.rotation||0,n.width=(i.width||32)*this.scale,n.height=(i.height||32)*this.scale,n.updateOffset()),n},readAnimation:function(t,e,i){var r=[],n=0,a=e.bones;for(var s in a)if(a.hasOwnProperty(s)){var o=i.findBoneIndex(s);if(-1==o)throw"Bone not found: "+s;var h=a[s];for(var l in h)if(h.hasOwnProperty(l)){var c=h[l];if("rotate"==l){var d=new u.RotateTimeline(c.length);d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p,v.time,v.angle),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[2*d.getFrameCount()-2])}else{if("translate"!=l&&"scale"!=l)throw"Invalid timeline type for a bone: "+l+" ("+s+")";var d,m=1;"scale"==l?d=new u.ScaleTimeline(c.length):(d=new u.TranslateTimeline(c.length),m=this.scale),d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],x=(v.x||0)*m,b=(v.y||0)*m;d.setFrame(p,v.time,x,b),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[3*d.getFrameCount()-3])}}}var y=e.slots;for(var T in y)if(y.hasOwnProperty(T)){var A=y[T],w=i.findSlotIndex(T);for(var l in A)if(A.hasOwnProperty(l)){var c=A[l];if("color"==l){var d=new u.ColorTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],_=v.color,R=u.SkeletonJson.toColor(_,0),S=u.SkeletonJson.toColor(_,1),C=u.SkeletonJson.toColor(_,2),L=u.SkeletonJson.toColor(_,3);d.setFrame(p,v.time,R,S,C,L),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[5*d.getFrameCount()-5])}else{if("attachment"!=l)throw"Invalid timeline type for a slot: "+l+" ("+T+")";var d=new u.AttachmentTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p++,v.time,v.name)}r.push(d),n=Math.max(n,d.frames[Math.floor(d.getFrameCount())-1])}}}i.animations.push(new u.Animation(t,r,n))}},u.SkeletonJson.readCurve=function(t,e,i){var r=i.curve;r&&("stepped"==r?t.curves.setStepped(e):r instanceof Array&&t.curves.setCurve(e,r[0],r[1],r[2],r[3]))},u.SkeletonJson.toColor=function(t,e){if(8!=t.length)throw"Color hexidecimal length must be 8, recieved: "+t;return parseInt(t.substring(2*e,2),16)/255},u.Atlas=function(t,e){this.textureLoader=e,this.pages=[],this.regions=[];var i=new u.AtlasReader(t),r=[];r.length=4;for(var n=null;;){var a=i.readLine();if(null==a)break;if(a=i.trim(a),0==a.length)n=null;else if(n){var s=new u.AtlasRegion;s.name=a,s.page=n,s.rotate="true"==i.readValue(),i.readTuple(r);var o=parseInt(r[0]),h=parseInt(r[1]);i.readTuple(r);var l=parseInt(r[0]),c=parseInt(r[1]);s.u=o/n.width,s.v=h/n.height,s.rotate?(s.u2=(o+c)/n.width,s.v2=(h+l)/n.height):(s.u2=(o+l)/n.width,s.v2=(h+c)/n.height),s.x=o,s.y=h,s.width=Math.abs(l),s.height=Math.abs(c),4==i.readTuple(r)&&(s.splits=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],4==i.readTuple(r)&&(s.pads=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],i.readTuple(r))),s.originalWidth=parseInt(r[0]),s.originalHeight=parseInt(r[1]),i.readTuple(r),s.offsetX=parseInt(r[0]),s.offsetY=parseInt(r[1]),s.index=parseInt(i.readValue()),this.regions.push(s)}else{n=new u.AtlasPage,n.name=a,n.format=u.Atlas.Format[i.readValue()],i.readTuple(r),n.minFilter=u.Atlas.TextureFilter[r[0]],n.magFilter=u.Atlas.TextureFilter[r[1]];var d=i.readValue();n.uWrap=u.Atlas.TextureWrap.clampToEdge,n.vWrap=u.Atlas.TextureWrap.clampToEdge,"x"==d?n.uWrap=u.Atlas.TextureWrap.repeat:"y"==d?n.vWrap=u.Atlas.TextureWrap.repeat:"xy"==d&&(n.uWrap=n.vWrap=u.Atlas.TextureWrap.repeat),e.load(n,a),this.pages.push(n)}}},u.Atlas.prototype={findRegion:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},dispose:function(){for(var t=this.pages,e=0,i=t.length;i>e;e++)this.textureLoader.unload(t[e].rendererObject)},updateUVs:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++){var n=e[i];n.page==t&&(n.u=n.x/t.width,n.v=n.y/t.height,n.rotate?(n.u2=(n.x+n.height)/t.width,n.v2=(n.y+n.width)/t.height):(n.u2=(n.x+n.width)/t.width,n.v2=(n.y+n.height)/t.height))}}},u.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},u.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},u.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},u.AtlasPage=function(){},u.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},u.AtlasRegion=function(){},u.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},u.AtlasReader=function(t){this.lines=t.split(/\r\n|\r|\n/)},u.AtlasReader.prototype={index:0,trim:function(t){return t.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw"Invalid line: "+t;return this.trim(t.substring(e+1))},readTuple:function(t){var e=this.readLine(),i=e.indexOf(":");if(-1==i)throw"Invalid line: "+e;for(var r=0,n=i+1;3>r;r++){var a=e.indexOf(",",n);if(-1==a){if(0==r)throw"Invalid line: "+e;break}t[r]=this.trim(e.substr(n,a-n)),n=a+1}return t[r]=this.trim(e.substring(n)),r+1}},u.AtlasAttachmentLoader=function(t){this.atlas=t},u.AtlasAttachmentLoader.prototype={newAttachment:function(t,e,i){switch(e){case u.AttachmentType.region:var r=this.atlas.findRegion(i);if(!r)throw"Region not found in atlas: "+i+" ("+e+")";var n=new u.RegionAttachment(i);return n.rendererObject=r,n.setUVs(r.u,r.v,r.u2,r.v2,r.rotate),n.regionOffsetX=r.offsetX,n.regionOffsetY=r.offsetY,n.regionWidth=r.width,n.regionHeight=r.height,n.regionOriginalWidth=r.originalWidth,n.regionOriginalHeight=r.originalHeight,n}throw"Unknown attachment type: "+e}},n.AnimCache={},u.Bone.yDown=!0,n.CustomRenderable=function(){n.DisplayObject.call(this)},n.CustomRenderable.constructor=n.CustomRenderable,n.CustomRenderable.prototype=Object.create(n.DisplayObject.prototype),n.CustomRenderable.prototype.renderCanvas=function(){},n.CustomRenderable.prototype.initWebGL=function(){},n.CustomRenderable.prototype.renderWebGL=function(){},n.BaseTextureCache={},n.texturesToUpdate=[],n.texturesToDestroy=[],n.BaseTexture=function(t){if(n.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,n.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);this._powerOf2=!1}},n.BaseTexture.constructor=n.BaseTexture,n.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,n.texturesToDestroy.push(this)},n.BaseTexture.fromImage=function(t,e){var i=n.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new n.BaseTexture(r),n.BaseTextureCache[t]=i}return i},n.TextureCache={},n.FrameCache={},n.Texture=function(t,e){if(n.EventTarget.call(this),e||(this.noFrame=!0,e=new n.Rectangle(0,0,1,1)),this.trim=new n.Point,t instanceof n.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new n.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},n.Texture.constructor=n.Texture,n.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new n.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},n.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},n.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,n.Texture.frameUpdates.push(this)},n.Texture.fromImage=function(t,e){var i=n.TextureCache[t];return i||(i=new n.Texture(n.BaseTexture.fromImage(t,e)),n.TextureCache[t]=i),i},n.Texture.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},n.Texture.fromCanvas=function(t){var e=new n.BaseTexture(t);return new n.Texture(e)},n.Texture.addTextureToCache=function(t,e){n.TextureCache[e]=t},n.Texture.removeTextureFromCache=function(t){var e=n.TextureCache[t];return n.TextureCache[t]=null,e},n.Texture.frameUpdates=[],n.RenderTexture=function(t,e){n.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=n.mat3.create(),this.frame=new n.Rectangle(0,0,this.width,this.height),n.gl?this.initWebGL():this.initCanvas()},n.RenderTexture.constructor=n.RenderTexture,n.RenderTexture.prototype=Object.create(n.Texture.prototype),n.RenderTexture.prototype.initWebGL=function(){var t=n.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new n.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new n.Point(this.width/2,this.height/2),this.projectionMatrix=n.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},n.RenderTexture.prototype.initCanvas=function(){this.renderer=new n.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new n.BaseTexture(this.renderer.view),this.frame=new n.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},n.RenderTexture.prototype.renderWebGL=function(t,e){var i=n.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=n.mat3.create(),t.worldTransform[4]=-1,t.worldTransform[5]=2*this.projection.y;for(var a=0,s=r.length;s>a;a++)r[a].updateTransform();var o=t.__renderGroup;o?t==o.root?o.render(this.projection):o.renderSpecific(t,this.projection):(this.renderGroup||(this.renderGroup=new n.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projection))},n.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=n.mat3.create();for(var r=0,a=i.length;a>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),n.texturesToUpdate.push(this.baseTexture)},n.AssetLoader=function(t){n.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:n.ImageLoader,jpeg:n.ImageLoader,png:n.ImageLoader,gif:n.ImageLoader,json:n.JsonLoader,anim:n.SpineLoader,xml:n.BitmapFontLoader,fnt:n.BitmapFontLoader}},n.AssetLoader.constructor=n.AssetLoader,n.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),n=this.loadersByType[r];if(!n)throw Error(r+" is an unsupported file type");var a=new n(i,this.crossorigin);a.addEventListener("loaded",function(){t.onAssetLoaded()}),a.load()}},n.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},n.JsonLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.crossorigin=e,this.loaded=!1},n.JsonLoader.constructor=n.JsonLoader,n.JsonLoader.prototype.load=function(){this.ajaxRequest=new l;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},n.JsonLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState)if(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))if(this.json=JSON.parse(this.ajaxRequest.responseText),this.json.frames){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0))}i.load()}else if(this.json.bones){var o=new u.SkeletonJson,h=o.readSkeletonData(this.json);n.AnimCache[this.url]=h,this.onLoaded()}else this.onLoaded();else this.onError()},n.JsonLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},n.JsonLoader.prototype.onError=function(){this.dispatchEvent({type:"error",content:this})},n.SpriteSheetLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},n.SpriteSheetLoader.constructor=n.SpriteSheetLoader,n.SpriteSheetLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpriteSheetLoader.prototype.onJSONLoaded=function(){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0)) }i.load()},n.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.ImageLoader=function(t,e){n.EventTarget.call(this),this.texture=n.Texture.fromImage(t,e)},n.ImageLoader.constructor=n.ImageLoader,n.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},n.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.BitmapFontLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},n.BitmapFontLoader.constructor=n.BitmapFontLoader,n.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},n.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new n.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],a=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(a.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var s=this.ajaxRequest.responseXML.getElementsByTagName("char"),o=0;s.length>o;o++){var h=parseInt(s[o].attributes.getNamedItem("id").nodeValue,10),l={x:parseInt(s[o].attributes.getNamedItem("x").nodeValue,10),y:parseInt(s[o].attributes.getNamedItem("y").nodeValue,10),width:parseInt(s[o].attributes.getNamedItem("width").nodeValue,10),height:parseInt(s[o].attributes.getNamedItem("height").nodeValue,10)};n.TextureCache[h]=new n.Texture(this.texture,l),i.chars[h]={xOffset:parseInt(s[o].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(s[o].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(s[o].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{},texture:new n.Texture(this.texture,l)}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(o=0;u.length>o;o++){var c=parseInt(u[o].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[o].attributes.getNamedItem("second").nodeValue,10),p=parseInt(u[o].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=p}n.BitmapText.fonts[i.font]=i;var f=this;e.addEventListener("loaded",function(){f.onLoaded()}),e.load()}},n.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.SpineLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.crossorigin=e,this.loaded=!1},n.SpineLoader.constructor=n.SpineLoader,n.SpineLoader.prototype.load=function(){new n.JsonLoader(this.url,this.crossorigin),jsonLoader.addEventListener("loaded",function(t){scope.json=t.content.json,scope.onJSONLoaded()}),jsonLoader.load()},n.SpineLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpineLoader.prototype.onJSONLoaded=function(){var t=new u.SkeletonJson,e=t.readSkeletonData(this.json);n.AnimCache[this.url]=e,this.onLoaded()},n.SpineLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports.PIXI=n):i.PIXI=n}).call(this); \ No newline at end of file diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index 25cca17..0391561 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index 25cca17..0391561 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 12 - Spine/pixi.js b/examples/example 12 - Spine/pixi.js index 25cca17..0391561 100644 --- a/examples/example 12 - Spine/pixi.js +++ b/examples/example 12 - Spine/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 13 - Graphics/index.html b/examples/example 13 - Graphics/index.html index e6996b7..d847ef2 100644 --- a/examples/example 13 - Graphics/index.html +++ b/examples/example 13 - Graphics/index.html @@ -80,17 +80,40 @@ stage.addChild(graphics); + // lets create moving shape + var thing = new PIXI.Graphics(); + stage.addChild(thing); + thing.position.x = 620/2; + thing.position.y = 380/2; + + var count = 0; + stage.click = stage.tap = function() { graphics.lineStyle(Math.random() * 30, Math.random() * 0xFFFFFF, 1); graphics.moveTo(Math.random() * 620,Math.random() * 380); graphics.lineTo(Math.random() * 620,Math.random() * 380); - } requestAnimFrame(animate); function animate() { + + thing.clear(); + + count += 0.1; + + thing.clear(); + thing.lineStyle(30, 0xff0000, 1); + thing.beginFill(0xffFF00, 0.5); + + thing.moveTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + thing.lineTo(120 + Math.cos(count) * 20, -100 + Math.sin(count)* 20); + thing.lineTo(120 + Math.sin(count) * 20, 100 + Math.cos(count)* 20); + thing.lineTo(-120 + Math.cos(count)* 20, 100 + Math.sin(count)* 20); + thing.lineTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + + thing.rotation = count * 0.1; renderer.render(stage); requestAnimFrame( animate ); } diff --git a/examples/example 13 - Graphics/pixi.js b/examples/example 13 - Graphics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 13 - Graphics/pixi.js +++ b/examples/example 13 - Graphics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.js b/bin/pixi.js index 51d6836..96307b0 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -9,7 +9,7 @@ * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; +(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[],t._webGL.indices=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; if(0!=r.length){var a=new n.Point(r[0],r[1]),s=new n.Point(r[r.length-2],r[r.length-1]);if(a.x==s.x&&a.y==s.y){r.pop(),r.pop(),s=new n.Point(r[r.length-2],r[r.length-1]);var o=s.x+.5*(a.x-s.x),h=s.y+.5*(a.y-s.y);r.unshift(o,h),r.push(o,h)}var l,u,c,d,p,f,g,v,m,x,b,y,T,A,w,_,R,S,C,L,E,B=i.points,F=i.indices,P=r.length/2,G=r.length,I=B.length/6,D=t.lineWidth/2,M=e(t.lineColor),O=t.lineAlpha,W=M[0]*O,U=M[1]*O,j=M[2]*O;l=r[0],u=r[1],c=r[2],d=r[3],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(l-g,u-v,W,U,j,O),B.push(l+g,u+v,W,U,j,O);for(var k=1;P-1>k;k++)l=r[2*(k-1)],u=r[2*(k-1)+1],c=r[2*k],d=r[2*k+1],p=r[2*(k+1)],f=r[2*(k+1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,m=-(d-f),x=c-p,E=Math.sqrt(m*m+x*x),m/=E,x/=E,m*=D,x*=D,T=-v+u-(-v+d),A=-g+c-(-g+l),w=(-g+l)*(-v+d)-(-g+c)*(-v+u),_=-x+f-(-x+d),R=-m+c-(-m+p),S=(-m+p)*(-x+d)-(-m+c)*(-x+f),C=T*R-_*A,0==C&&(C+=1),px=(A*S-R*w)/C,py=(_*w-T*S)/C,L=(px-c)*(px-c)+(py-d)+(py-d),L>19600?(b=g-m,y=v-x,E=Math.sqrt(b*b+y*y),b/=E,y/=E,b*=D,y*=D,B.push(c-b,d-y),B.push(W,U,j,O),B.push(c+b,d+y),B.push(W,U,j,O),B.push(c-b,d-y),B.push(W,U,j,O),G++):(B.push(px,py),B.push(W,U,j,O),B.push(c-(px-c),d-(py-d)),B.push(W,U,j,O));l=r[2*(P-2)],u=r[2*(P-2)+1],c=r[2*(P-1)],d=r[2*(P-1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(c-g,d-v),B.push(W,U,j,O),B.push(c+g,d+v),B.push(W,U,j,O),F.push(I);for(var k=0;G>k;k++)F.push(I++);F.push(I-1)}},n.WebGLGraphics.buildPoly=function(t,i){var r=t.points;if(!(6>r.length)){for(var a=i.points,s=i.indices,o=r.length/2,h=e(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=n.PolyK.Triangulate(r),f=a.length/6,g=0;p.length>g;g+=3)s.push(p[g]+f),s.push(p[g]+f),s.push(p[g+1]+f),s.push(p[g+2]+f),s.push(p[g+2]+f);for(var g=0;o>g;g++)a.push(r[2*g],r[2*g+1],u,c,d,l)}},n._defaultFrame=new n.Rectangle(0,0,1,1),n.gl,n.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var a=this;this.view.addEventListener("webglcontextlost",function(t){a.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){a.handleContextRestored(t)},!1),this.batchs=[];try{n.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!0,premultipliedAlpha:!1})}catch(s){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}n.initPrimitiveShader(),n.initDefaultShader(),n.initDefaultStripShader(),n.activateDefaultShader();var o=this.gl;n.WebGLRenderer.gl=o,this.batch=new n.WebGLBatch(o),o.disable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.enable(o.BLEND),o.colorMask(!0,!0,!0,this.transparent),n.projection=new n.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new n.WebGLRenderGroup(this.gl)},n.WebGLRenderer.constructor=n.WebGLRenderer,n.WebGLRenderer.getBatch=function(){return 0==n._batchs.length?new n.WebGLBatch(n.WebGLRenderer.gl):n._batchs.pop()},n.WebGLRenderer.returnBatch=function(t){t.clean(),n._batchs.push(t)},n.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),n.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],!this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(n.projection),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0){for(var i=0;n.Texture.frameUpdates.length>i;i++)n.Texture.frameUpdates[i].updateFrame=!1;n.Texture.frameUpdates=[]}}},n.WebGLRenderer.updateTextures=function(){for(var t=0;n.texturesToUpdate.length>t;t++)this.updateTexture(n.texturesToUpdate[t]);for(var t=0;n.texturesToDestroy.length>t;t++)this.destroyTexture(n.texturesToDestroy[t]);n.texturesToUpdate=[],n.texturesToDestroy=[]},n.WebGLRenderer.updateTexture=function(t){var e=n.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},n.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},n.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),n.projection.x=this.width/2,n.projection.y=this.height/2},n.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},n.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;n.TextureCache.length>t;t++)this.updateTexture(n.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;n._restoreBatchs(this.gl),this.contextLost=!1},n._batchs=[],n._getBatch=function(t){return 0==n._batchs.length?new n.WebGLBatch(t):n._batchs.pop()},n._returnBatch=function(t){t.clean(),n._batchs.push(t)},n._restoreBatchs=function(t){for(var e=0;n._batchs.length>e;e++)n._batchs[e].restoreLostContext(t)},n.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=n.blendModes.NORMAL,this.dynamicSize=1},n.WebGLBatch.constructor=n.WebGLBatch,n.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},n.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},n.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},n.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},n.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},n.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},n.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new n.WebGLBatch(this.gl);e.init(t),e.texture=this.texture,e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},n.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},n.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,n=4*i;this.indices[r+0]=n+0,this.indices[r+1]=n+1,this.indices[r+2]=n+2,this.indices[r+3]=n+0,this.indices[r+4]=n+2,this.indices[r+5]=n+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},n.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof n.WebGLBatch?this.batchs[r].render():i instanceof n.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof n.Strip?i.visible&&this.renderStrip(i,t):i instanceof n.Graphics&&i.visible&&n.WebGLGraphics.renderGraphics(i,t)},n.WebGLRenderGroup.prototype.renderSpecific=function(t,e){n.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniform2f(n.shaderProgram.projectionVector,e.x,e.y);var r,a,s,o,h=t.renderable?t:this.getNextRenderable(t),l=h.batch;if(h instanceof n.Sprite){l=h.batch;var u=l.head;if(u==h)r=0;else for(r=1;u.__next!=h;)r++,u=u.__next}else l=h;for(var c,d=t,p=t;p.children.length>0;)p=p.children[p.children.length-1],p.renderable&&(d=p);if(d instanceof n.Sprite){c=d.batch;var u=c.head;if(u==d)s=0;else for(s=1;u.__next!=d;)s++,u=u.__next}else c=d;if(l==c)return l instanceof n.WebGLBatch?l.render(r,s+1):this.renderSpecial(l),void 0;a=this.batchs.indexOf(l),o=this.batchs.indexOf(c),l instanceof n.WebGLBatch?l.render(r):this.renderSpecial(l);for(var f=a+1;o>f;f++)renderable=this.batchs[f],renderable instanceof n.WebGLBatch?this.batchs[f].render():this.renderSpecial(renderable);c instanceof n.WebGLBatch?c.render(0,s+1):this.renderSpecial(c)},n.WebGLRenderGroup.prototype.renderSpecial=function(t){t instanceof n.TilingSprite?t.visible&&this.renderTilingSprite(t,projectionMatrix):t instanceof n.Strip?t.visible&&this.renderStrip(t,projectionMatrix):t instanceof n.CustomRenderable?t.visible&&t.renderWebGL(this,projectionMatrix):t instanceof n.Graphics&&t.visible&&n.WebGLGraphics.renderGraphics(t)},n.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var n=i[r];n.worldVisible=n.visible&&e,n.textureChange&&(n.textureChange=!1,n.worldVisible&&(this.removeDisplayObject(n),this.addDisplayObject(n))),n.children.length>0&&this.checkVisibility(n,n.worldVisible)}},n.WebGLRenderGroup.prototype.updateTexture=function(t){if(1==t.batch.length)return t.batch.texture=t.texture.baseTexture,void 0;if(t.batch.texture!=t.texture.baseTexture)if(t.batch.head==t){var e=t.batch,i=this.batchs.indexOf(e),r=this.batchs[i-1];if(e.remove(t),r)if(r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)r.insertAfter(t,r.tail);else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i-1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(0,0,a)}}else if(t.batch.tail==t){var e=t.batch,i=this.batchs.indexOf(e),s=this.batchs[i+1];if(e.remove(t),s){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,s.head),void 0;var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i+1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.push(a)}}else{var e=t.batch,o=e.split(t);o.remove(t);var a=n.WebGLRenderer.getBatch(),i=this.batchs.indexOf(e);a.init(t),this.batchs.splice(i+1,0,a,o)}},n.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof n.Sprite){var r,a;if(e instanceof n.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof n.Sprite){if(a=i.batch){if(a.texture==t.texture.baseTexture&&a.blendMode==t.blendMode)return a.insertBefore(t,i),void 0;if(a==r){var s=r.split(i),o=n.WebGLRenderer.getBatch(),h=this.batchs.indexOf(r);return o.init(t),this.batchs.splice(h+1,0,o,s),void 0}}}else a=i;var o=n.WebGLRenderer.getBatch();if(o.init(t),r){var h=this.batchs.indexOf(r);this.batchs.splice(h+1,0,o)}else this.batchs.push(o)}else t instanceof n.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof n.Strip?(this.initStrip(t),this.batchs.push(t)):t instanceof n.Graphics&&this.batchs.push(t);this.batchUpdate=!0}},n.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},n.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof n.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof n.WebGLBatch&&this.batchs[r+1]instanceof n.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),n.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e)}}},n.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},n.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},n.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=n.shaderProgram;i.useProgram(n.stripShaderProgram);var a=n.mat3.clone(t.worldTransform);n.mat3.transpose(a),i.uniformMatrix3fv(n.stripShaderProgram.translationMatrix,!1,a),i.uniform2f(n.stripShaderProgram.projectionVector,e.x,e.y),i.uniform1f(n.stripShaderProgram.alpha,t.worldAlpha),t.blendMode==n.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.useProgram(n.shaderProgram)},n.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;n.shaderProgram;var r=t.tilePosition,a=t.tileScale,s=r.x/t.texture.baseTexture.width,o=r.y/t.texture.baseTexture.height,h=t.width/t.texture.baseTexture.width/a.x,l=t.height/t.texture.baseTexture.height/a.y;t.uvs[0]=0-s,t.uvs[1]=0-o,t.uvs[2]=1*h-s,t.uvs[3]=0-o,t.uvs[4]=1*h-s,t.uvs[5]=1*l-o,t.uvs[6]=0-s,t.uvs[7]=1*l-o,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},n.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},n.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},n.CanvasRenderer.constructor=n.CanvasRenderer,n.CanvasRenderer.prototype.render=function(t){n.texturesToUpdate=[],n.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0&&(n.Texture.frameUpdates=[])},n.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},n.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof n.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof n.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof n.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof n.CustomRenderable?t.renderCanvas(this):t instanceof n.Graphics&&(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),n.CanvasGraphics.renderGraphics(t,i));if(t.children)for(var a=0;t.children.length>a;a++)this.renderDisplayObject(t.children[a]);this.context.setTransform(1,0,0,1,0,0)}},n.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var n=1;r-2>n;n++){var a=2*n,s=i[a],o=i[a+2],h=i[a+4],l=i[a+1],u=i[a+3],c=i[a+5];e.moveTo(s,l),e.lineTo(o,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},n.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;e.globalAlpha=t.worldAlpha,t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},n.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,n=i.length/2;this.count++;for(var a=1;n-2>a;a++){var s=2*a,o=i[s],h=i[s+2],l=i[s+4],u=i[s+1],c=i[s+3],d=i[s+5],p=r[s]*t.texture.width,f=r[s+2]*t.texture.width,g=r[s+4]*t.texture.width,v=r[s+1]*t.texture.height,m=r[s+3]*t.texture.height,x=r[s+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var b=p*m+v*g+f*x-m*g-v*f-p*x,y=o*m+v*l+h*x-m*l-v*h-o*x,T=p*h+o*g+f*l-h*g-o*f-p*l,A=p*m*l+v*h*g+o*f*x-o*m*g-v*f*l-p*h*x,w=u*m+v*d+c*x-m*d-v*c-u*x,_=p*c+u*g+f*d-c*g-u*f-p*d,R=p*m*d+v*c*g+u*f*x-u*m*g-v*f*d-p*c*x;e.transform(y/b,w/b,T/b,_/b,A/b,R/b),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},n.CanvasGraphics=function(){},n.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,r=0;t.graphicsData.length>r;r++){var a=t.graphicsData[r],s=a.points;if(e.strokeStyle=color="#"+("00000"+(0|a.lineColor).toString(16)).substr(-6),e.lineWidth=a.lineWidth,a.type==n.Graphics.POLY){e.beginPath(),e.moveTo(s[0],s[1]);for(var o=1;s.length/2>o;o++)e.lineTo(s[2*o],s[2*o+1]);s[0]==s[s.length-2]&&s[1]==s[s.length-1]&&e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}else if(a.type==n.Graphics.RECT)a.fillColor&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fillRect(s[0],s[1],s[2],s[3])),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.strokeRect(s[0],s[1],s[2],s[3]));else if(a.type==n.Graphics.CIRC)e.beginPath(),e.arc(s[0],s[1],s[2],0,2*Math.PI),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke());else if(a.type==n.Graphics.ELIP){var h=a.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,v=c+l,m=d+u,x=c+l/2,b=d+u/2;e.moveTo(c,b),e.bezierCurveTo(c,b-g,x-f,d,x,d),e.bezierCurveTo(x+f,d,v,b-g,v,b),e.bezierCurveTo(v,b+g,x+f,m,x,m),e.bezierCurveTo(x-f,m,c,b+g,c,b),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}}},n.Graphics=function(){n.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=2,this.lineColor="#FF0000",this.graphicsData=[],this.currentPath={points:[]}},n.Graphics.constructor=n.Graphics,n.Graphics.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Graphics.prototype.lineStyle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=void 0==i?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.graphicsData.push(this.currentPath)},n.Graphics.prototype.moveTo=function(t,e){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath)},n.Graphics.prototype.lineTo=function(t,e){this.currentPath.points.push(t,e),this.dirty=!0},n.Graphics.prototype.beginFill=function(t,e){this.filling=!0,this.fillColor=t||0,this.fillAlpha=e||1},n.Graphics.prototype.endFill=function(){this.filling=!1,this.fillColor=null,this.fillAlpha=1},n.Graphics.prototype.drawRect=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawCircle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:n.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawElipse=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.clear=function(){this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[]},n.Graphics.POLY=0,n.Graphics.RECT=1,n.Graphics.CIRC=2,n.Graphics.ELIP=3,n.Strip=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=n.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Strip.constructor=n.Strip,n.Strip.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},n.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Rope=function(t,e){n.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},n.Rope.constructor=n.Rope,n.Rope.prototype=Object.create(n.Strip.prototype),n.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,n=t[0],a=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var s=t.length,o=1;s>o;o++){var a=t[o],h=4*o,l=o/(s-1);o%2?(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1):(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,n=a}}},n.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],a={x:0,y:0},s=t[0];this.count-=.2,i[0]=s.x+a.x,i[1]=s.y+a.y,i[2]=s.x-a.x,i[3]=s.y-a.y;for(var o=t.length,h=1;o>h;h++){var s=t[h],l=4*h;e=t.length-1>h?t[h+1]:s,a.y=-(e.x-r.x),a.x=e.y-r.y;var u=10*(1-h/(o-1));u>1&&(u=1);var c=Math.sqrt(a.x*a.x+a.y*a.y),d=this.texture.height/2;a.x/=c,a.y/=c,a.x*=d,a.y*=d,i[l]=s.x+a.x,i[l+1]=s.y+a.y,i[l+2]=s.x-a.x,i[l+3]=s.y-a.y,r=s}n.DisplayObjectContainer.prototype.updateTransform.call(this)}},n.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0 },n.TilingSprite=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new n.Point(1,1),this.tilePosition=new n.Point(0,0),this.blendMode=n.blendModes.NORMAL},n.TilingSprite.constructor=n.TilingSprite,n.TilingSprite.prototype=Object.create(n.DisplayObjectContainer.prototype),n.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},n.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Spine=function(t){if(n.DisplayObjectContainer.call(this),this.spineData=n.AnimCache[t],!this.spineData)throw Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+t);this.count=0,this.sprites=[],this.skeleton=new u.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new u.AnimationStateData(this.spineData),this.state=new u.AnimationState(this.stateData);for(var e=0;this.skeleton.drawOrder.length>e;e++){var i=this.skeleton.drawOrder[e].data.attachmentName;n.TextureCache[i]||(i+=".png");var r=new n.Sprite(n.Texture.fromFrame(i));r.anchor.x=r.anchor.y=.5,this.addChild(r),this.sprites.push(r)}},n.Spine.constructor=n.Spine,n.Spine.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Spine.prototype.updateTransform=function(){this.state.update(1/60),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var t=0;this.skeleton.drawOrder.length>t;t++){var e=this.skeleton.drawOrder[t],i=e.bone.worldX+e.attachment.x*e.bone.m00+e.attachment.y*e.bone.m01+.5*e.attachment.width,r=e.bone.worldY+e.attachment.x*e.bone.m10+e.attachment.y*e.bone.m11+.5*e.attachment.height;if(e.cacheName!=e.attachment.name){var a=e.attachment.name;n.TextureCache[a]||(a+=".png"),this.sprites[t].setTexture(n.TextureCache[a]),e.cacheName=e.attachment.name}i+=-(e.attachment.width*(e.bone.worldScaleX+e.attachment.scaleX-1)>>1),r+=-(e.attachment.height*(e.bone.worldScaleY+e.attachment.scaleY-1)>>1),this.sprites[t].position.x=i,this.sprites[t].position.y=r,this.sprites[t].rotation=-(e.bone.worldRotation+e.attachment.rotation)*(Math.PI/180)}n.DisplayObjectContainer.prototype.updateTransform.call(this)};var u={};u.BoneData=function(t,e){this.name=t,this.parent=e},u.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},u.SlotData=function(t,e){this.name=t,this.boneData=e},u.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},u.Bone=function(t,e){this.data=t,this.parent=e,this.setToSetupPose()},u.Bone.yDown=!1,u.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(t,e){var i=this.parent;null!=i?(this.worldX=this.x*i.m00+this.y*i.m01+i.worldX,this.worldY=this.x*i.m10+this.y*i.m11+i.worldY,this.worldScaleX=i.worldScaleX*this.scaleX,this.worldScaleY=i.worldScaleY*this.scaleY,this.worldRotation=i.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var r=this.worldRotation*Math.PI/180,n=Math.cos(r),a=Math.sin(r);this.m00=n*this.worldScaleX,this.m10=a*this.worldScaleX,this.m01=-a*this.worldScaleY,this.m11=n*this.worldScaleY,t&&(this.m00=-this.m00,this.m01=-this.m01),e&&(this.m10=-this.m10,this.m11=-this.m11),u.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY}},u.Slot=function(t,e,i){this.data=t,this.skeleton=e,this.bone=i,this.setToSetupPose()},u.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(t){this.attachment=t,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(t){this._attachmentTime=this.skeleton.time-t},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var t=this.data;this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a;for(var e=this.skeleton.data.slots,i=0,r=e.length;r>i;i++)if(e[i]==t){this.setAttachment(t.attachmentName?this.skeleton.getAttachmentBySlotIndex(i,t.attachmentName):null);break}}},u.Skin=function(t){this.name=t,this.attachments={}},u.Skin.prototype={addAttachment:function(t,e,i){this.attachments[t+":"+e]=i},getAttachment:function(t,e){return this.attachments[t+":"+e]},_attachAll:function(t,e){for(var i in e.attachments){var r=i.indexOf(":"),n=parseInt(i.substring(0,r)),a=i.substring(r+1),s=t.slots[n];if(s.attachment&&s.attachment.name==a){var o=this.getAttachment(n,a);o&&s.setAttachment(o)}}}},u.Animation=function(t,e,i){this.name=t,this.timelines=e,this.duration=i},u.Animation.prototype={apply:function(t,e,i){i&&0!=this.duration&&(e%=this.duration);for(var r=this.timelines,n=0,a=r.length;a>n;n++)r[n].apply(t,e,1)},mix:function(t,e,i,r){i&&0!=this.duration&&(e%=this.duration);for(var n=this.timelines,a=0,s=n.length;s>a;a++)n[a].apply(t,e,r)}},u.binarySearch=function(t,e,i){var r=0,n=Math.floor(t.length/i)-2;if(0==n)return i;for(var a=n>>>1;;){if(e>=t[(a+1)*i]?r=a+1:n=a,r==n)return(r+1)*i;a=r+n>>>1}},u.linearSearch=function(t,e,i){for(var r=0,n=t.length-i;n>=r;r+=i)if(t[r]>e)return r;return-1},u.Curves=function(t){this.curves=[],this.curves.length=6*(t-1)},u.Curves.prototype={setLinear:function(t){this.curves[6*t]=0},setStepped:function(t){this.curves[6*t]=-1},setCurve:function(t,e,i,r,n){var a=.1,s=a*a,o=s*a,h=3*a,l=3*s,u=6*s,c=6*o,d=2*-e+r,p=2*-i+n,f=3*(e-r)+1,g=3*(i-n)+1,v=6*t,m=this.curves;m[v]=e*h+d*l+f*o,m[v+1]=i*h+p*l+g*o,m[v+2]=d*u+f*c,m[v+3]=p*u+g*c,m[v+4]=f*c,m[v+5]=g*c},getCurvePercent:function(t,e){e=0>e?0:e>1?1:e;var i=6*t,r=this.curves,n=r[i];if(!n)return e;if(-1==n)return 0;for(var a=r[i+1],s=r[i+2],o=r[i+3],h=r[i+4],l=r[i+5],u=n,c=a,d=8;;){if(u>=e){var p=u-n,f=c-a;return f+(c-f)*(e-p)/(u-p)}if(0==d)break;d--,n+=s,a+=o,s+=h,o+=l,u+=n,c+=a}return c+(1-c)*(e-u)/(1-u)}},u.RotateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=2*t},u.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){t*=2,this.frames[t]=e,this.frames[t+1]=i},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-2]){for(var a=n.data.rotation+r[r.length-1]-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;return n.rotation+=a*i,void 0}var s=u.binarySearch(r,e,2),o=r[s-1],h=r[s],l=1-(e-h)/(r[s-2]-h);l=this.curves.getCurvePercent(s/2-1,l);for(var a=r[s+1]-o;a>180;)a-=360;for(;-180>a;)a+=360;for(a=n.data.rotation+(o+a*l)-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;n.rotation+=a*i}}},u.TranslateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.x+=(n.data.x+r[r.length-2]-n.x)*i,n.y+=(n.data.y+r[r.length-1]-n.y)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.x+=(n.data.x+s+(r[a+1]-s)*l-n.x)*i,n.y+=(n.data.y+o+(r[a+2]-o)*l-n.y)*i}}},u.ScaleTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.scaleX+=(n.data.scaleX-1+r[r.length-2]-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+r[r.length-1]-n.scaleY)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.scaleX+=(n.data.scaleX-1+s+(r[a+1]-s)*l-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+o+(r[a+2]-o)*l-n.scaleY)*i}}},u.ColorTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=5*t},u.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e){t*=5,this.frames[t]=e,this.frames[t+1]=r,this.frames[t+2]=g,this.frames[t+3]=b,this.frames[t+4]=a},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.slots[this.slotIndex];if(e>=r[r.length-5]){var a=r.length-1;return n.r=r[a-3],n.g=r[a-2],n.b=r[a-1],n.a=r[a],void 0}var s=u.binarySearch(r,e,5),o=r[s-4],h=r[s-3],l=r[s-2],c=r[s-1],d=r[s],p=1-(e-d)/(r[s-5]-d);p=this.curves.getCurvePercent(s/5-1,p);var f=o+(r[s+1]-o)*p,g=h+(r[s+2]-h)*p,v=l+(r[s+3]-l)*p,m=c+(r[s+4]-c)*p;1>i?(n.r+=(f-n.r)*i,n.g+=(g-n.g)*i,n.b+=(v-n.b)*i,n.a+=(m-n.a)*i):(n.r=f,n.g=g,n.b=v,n.a=m)}}},u.AttachmentTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=t,this.attachmentNames=[],this.attachmentNames.length=t},u.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){this.frames[t]=e,this.attachmentNames[t]=i},apply:function(t,e){var i=this.frames;if(!(i[0]>e)){var r;r=e>=i[i.length-1]?i.length-1:u.binarySearch(i,e,1)-1;var n=this.attachmentNames[r];t.slots[this.slotIndex].setAttachment(n?t.getAttachmentBySlotIndex(this.slotIndex,n):null)}}},u.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},u.SkeletonData.prototype={defaultSkin:null,findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return slot[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSkin:function(t){for(var e=this.skins,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findAnimation:function(t){for(var e=this.animations,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null}},u.Skeleton=function(t){this.data=t,this.bones=[];for(var e=0,i=t.bones.length;i>e;e++){var r=t.bones[e],n=r.parent?this.bones[t.bones.indexOf(r.parent)]:null;this.bones.push(new u.Bone(r,n))}this.slots=[],this.drawOrder=[];for(var e=0,i=t.slots.length;i>e;e++){var a=t.slots[e],s=this.bones[t.bones.indexOf(a.boneData)],o=new u.Slot(a,this,s);this.slots.push(o),this.drawOrder.push(o)}},u.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var t=this.flipX,e=this.flipY,i=this.bones,r=0,n=i.length;n>r;r++)i[r].updateWorldTransform(t,e)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var t=this.bones,e=0,i=t.length;i>e;e++)t[e].setToSetupPose()},setSlotsToSetupPose:function(){for(var t=this.slots,e=0,i=t.length;i>e;e++)t[e].setToSetupPose(e)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},setSkinByName:function(t){var e=this.data.findSkin(t);if(!e)throw"Skin not found: "+t;this.setSkin(e)},setSkin:function(t){this.skin&&t&&t._attachAll(this,this.skin),this.skin=t},getAttachmentBySlotName:function(t,e){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(t),e)},getAttachmentBySlotIndex:function(t,e){if(this.skin){var i=this.skin.getAttachment(t,e);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},setAttachment:function(t,e){for(var i=this.slots,r=0,n=i.size;n>r;r++){var a=i[r];if(a.data.name==t){var s=null;if(e&&(s=this.getAttachment(r,e),null==s))throw"Attachment not found: "+e+", for slot: "+t;return a.setAttachment(s),void 0}}throw"Slot not found: "+t},update:function(t){time+=t}},u.AttachmentType={region:0},u.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},u.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(t,e,i,r,n){var a=this.uvs;n?(a[2]=t,a[3]=r,a[4]=t,a[5]=e,a[6]=i,a[7]=e,a[0]=i,a[1]=r):(a[0]=t,a[1]=r,a[2]=t,a[3]=e,a[4]=i,a[5]=e,a[6]=i,a[7]=r)},updateOffset:function(){var t=this.width/this.regionOriginalWidth*this.scaleX,e=this.height/this.regionOriginalHeight*this.scaleY,i=-this.width/2*this.scaleX+this.regionOffsetX*t,r=-this.height/2*this.scaleY+this.regionOffsetY*e,n=i+this.regionWidth*t,a=r+this.regionHeight*e,s=this.rotation*Math.PI/180,o=Math.cos(s),h=Math.sin(s),l=i*o+this.x,u=i*h,c=r*o+this.y,d=r*h,p=n*o+this.x,f=n*h,g=a*o+this.y,v=a*h,m=this.offset;m[0]=l-d,m[1]=c+u,m[2]=l-v,m[3]=g+u,m[4]=p-v,m[5]=g+f,m[6]=p-d,m[7]=c+f},computeVertices:function(t,e,i,r){t+=i.worldX,e+=i.worldY;var n=i.m00,a=i.m01,s=i.m10,o=i.m11,h=this.offset;r[0]=h[0]*n+h[1]*a+t,r[1]=h[0]*s+h[1]*o+e,r[2]=h[2]*n+h[3]*a+t,r[3]=h[2]*s+h[3]*o+e,r[4]=h[4]*n+h[5]*a+t,r[5]=h[4]*s+h[5]*o+e,r[6]=h[6]*n+h[7]*a+t,r[7]=h[6]*s+h[7]*o+e}},u.AnimationStateData=function(t){this.skeletonData=t,this.animationToMixTime={}},u.AnimationStateData.prototype={setMixByName:function(t,e,i){var r=this.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;var n=this.skeletonData.findAnimation(e);if(!n)throw"Animation not found: "+e;this.setMix(r,n,i)},setMix:function(t,e,i){this.animationToMixTime[t.name+":"+e.name]=i},getMix:function(t,e){var i=this.animationToMixTime[t.name+":"+e.name];return i?i:0}},u.AnimationState=function(t){this.data=t,this.queue=[]},u.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(t){if(this.currentTime+=t,this.previousTime+=t,this.mixTime+=t,this.queue.length>0){var e=this.queue[0];this.currentTime>=e.delay&&(this._setAnimation(e.animation,e.loop),this.queue.shift())}},apply:function(t){if(this.current)if(this.previous){this.previous.apply(t,this.previousTime,this.previousLoop);var e=this.mixTime/this.mixDuration;e>=1&&(e=1,this.previous=null),this.current.mix(t,this.currentTime,this.currentLoop,e)}else this.current.apply(t,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(t,e){this.previous=null,t&&this.current&&(this.mixDuration=this.data.getMix(this.current,t),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=t,this.currentLoop=e,this.currentTime=0},setAnimationByName:function(t,e){var i=this.data.skeletonData.findAnimation(t);if(!i)throw"Animation not found: "+t;this.setAnimation(i,e)},setAnimation:function(t,e){this.queue.length=0,this._setAnimation(t,e)},addAnimationByName:function(t,e,i){var r=this.data.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;this.addAnimation(r,e,i)},addAnimation:function(t,e,i){var r={};if(r.animation=t,r.loop=e,!i||0>=i){var n=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;i=null!=n?n.duration-this.data.getMix(n,t)+(i||0):0}r.delay=i,this.queue.push(r)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},u.SkeletonJson=function(t){this.attachmentLoader=t},u.SkeletonJson.prototype={scale:1,readSkeletonData:function(t){for(var e=new u.SkeletonData,i=t.bones,r=0,n=i.length;n>r;r++){var a=i[r],s=null;if(a.parent&&(s=e.findBone(a.parent),!s))throw"Parent bone not found: "+a.parent;var o=new u.BoneData(a.name,s);o.length=(a.length||0)*this.scale,o.x=(a.x||0)*this.scale,o.y=(a.y||0)*this.scale,o.rotation=a.rotation||0,o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1,e.bones.push(o)}for(var h=t.slots,r=0,n=h.length;n>r;r++){var l=h[r],o=e.findBone(l.bone);if(!o)throw"Slot bone not found: "+l.bone;var c=new u.SlotData(l.name,o),d=l.color;d&&(c.r=u.SkeletonJson.toColor(d,0),c.g=u.SkeletonJson.toColor(d,1),c.b=u.SkeletonJson.toColor(d,2),c.a=u.SkeletonJson.toColor(d,3)),c.attachmentName=l.attachment,e.slots.push(c)}var p=t.skins;for(var f in p)if(p.hasOwnProperty(f)){var g=p[f],v=new u.Skin(f);for(var m in g)if(g.hasOwnProperty(m)){var x=e.findSlotIndex(m),b=g[m];for(var y in b)if(b.hasOwnProperty(y)){var T=this.readAttachment(v,y,b[y]);null!=T&&v.addAttachment(x,y,T)}}e.skins.push(v),"default"==v.name&&(e.defaultSkin=v)}var A=t.animations;for(var w in A)A.hasOwnProperty(w)&&this.readAnimation(w,A[w],e);return e},readAttachment:function(t,e,i){e=i.name||e;var r=u.AttachmentType[i.type||"region"],n=new u.RegionAttachment;return n.name=e,r==u.AttachmentType.region&&(n.x=(i.x||0)*this.scale,n.y=(i.y||0)*this.scale,n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1,n.rotation=i.rotation||0,n.width=(i.width||32)*this.scale,n.height=(i.height||32)*this.scale,n.updateOffset()),n},readAnimation:function(t,e,i){var r=[],n=0,a=e.bones;for(var s in a)if(a.hasOwnProperty(s)){var o=i.findBoneIndex(s);if(-1==o)throw"Bone not found: "+s;var h=a[s];for(var l in h)if(h.hasOwnProperty(l)){var c=h[l];if("rotate"==l){var d=new u.RotateTimeline(c.length);d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p,v.time,v.angle),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[2*d.getFrameCount()-2])}else{if("translate"!=l&&"scale"!=l)throw"Invalid timeline type for a bone: "+l+" ("+s+")";var d,m=1;"scale"==l?d=new u.ScaleTimeline(c.length):(d=new u.TranslateTimeline(c.length),m=this.scale),d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],x=(v.x||0)*m,b=(v.y||0)*m;d.setFrame(p,v.time,x,b),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[3*d.getFrameCount()-3])}}}var y=e.slots;for(var T in y)if(y.hasOwnProperty(T)){var A=y[T],w=i.findSlotIndex(T);for(var l in A)if(A.hasOwnProperty(l)){var c=A[l];if("color"==l){var d=new u.ColorTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],_=v.color,R=u.SkeletonJson.toColor(_,0),S=u.SkeletonJson.toColor(_,1),C=u.SkeletonJson.toColor(_,2),L=u.SkeletonJson.toColor(_,3);d.setFrame(p,v.time,R,S,C,L),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[5*d.getFrameCount()-5])}else{if("attachment"!=l)throw"Invalid timeline type for a slot: "+l+" ("+T+")";var d=new u.AttachmentTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p++,v.time,v.name)}r.push(d),n=Math.max(n,d.frames[Math.floor(d.getFrameCount())-1])}}}i.animations.push(new u.Animation(t,r,n))}},u.SkeletonJson.readCurve=function(t,e,i){var r=i.curve;r&&("stepped"==r?t.curves.setStepped(e):r instanceof Array&&t.curves.setCurve(e,r[0],r[1],r[2],r[3]))},u.SkeletonJson.toColor=function(t,e){if(8!=t.length)throw"Color hexidecimal length must be 8, recieved: "+t;return parseInt(t.substring(2*e,2),16)/255},u.Atlas=function(t,e){this.textureLoader=e,this.pages=[],this.regions=[];var i=new u.AtlasReader(t),r=[];r.length=4;for(var n=null;;){var a=i.readLine();if(null==a)break;if(a=i.trim(a),0==a.length)n=null;else if(n){var s=new u.AtlasRegion;s.name=a,s.page=n,s.rotate="true"==i.readValue(),i.readTuple(r);var o=parseInt(r[0]),h=parseInt(r[1]);i.readTuple(r);var l=parseInt(r[0]),c=parseInt(r[1]);s.u=o/n.width,s.v=h/n.height,s.rotate?(s.u2=(o+c)/n.width,s.v2=(h+l)/n.height):(s.u2=(o+l)/n.width,s.v2=(h+c)/n.height),s.x=o,s.y=h,s.width=Math.abs(l),s.height=Math.abs(c),4==i.readTuple(r)&&(s.splits=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],4==i.readTuple(r)&&(s.pads=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],i.readTuple(r))),s.originalWidth=parseInt(r[0]),s.originalHeight=parseInt(r[1]),i.readTuple(r),s.offsetX=parseInt(r[0]),s.offsetY=parseInt(r[1]),s.index=parseInt(i.readValue()),this.regions.push(s)}else{n=new u.AtlasPage,n.name=a,n.format=u.Atlas.Format[i.readValue()],i.readTuple(r),n.minFilter=u.Atlas.TextureFilter[r[0]],n.magFilter=u.Atlas.TextureFilter[r[1]];var d=i.readValue();n.uWrap=u.Atlas.TextureWrap.clampToEdge,n.vWrap=u.Atlas.TextureWrap.clampToEdge,"x"==d?n.uWrap=u.Atlas.TextureWrap.repeat:"y"==d?n.vWrap=u.Atlas.TextureWrap.repeat:"xy"==d&&(n.uWrap=n.vWrap=u.Atlas.TextureWrap.repeat),e.load(n,a),this.pages.push(n)}}},u.Atlas.prototype={findRegion:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},dispose:function(){for(var t=this.pages,e=0,i=t.length;i>e;e++)this.textureLoader.unload(t[e].rendererObject)},updateUVs:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++){var n=e[i];n.page==t&&(n.u=n.x/t.width,n.v=n.y/t.height,n.rotate?(n.u2=(n.x+n.height)/t.width,n.v2=(n.y+n.width)/t.height):(n.u2=(n.x+n.width)/t.width,n.v2=(n.y+n.height)/t.height))}}},u.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},u.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},u.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},u.AtlasPage=function(){},u.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},u.AtlasRegion=function(){},u.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},u.AtlasReader=function(t){this.lines=t.split(/\r\n|\r|\n/)},u.AtlasReader.prototype={index:0,trim:function(t){return t.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw"Invalid line: "+t;return this.trim(t.substring(e+1))},readTuple:function(t){var e=this.readLine(),i=e.indexOf(":");if(-1==i)throw"Invalid line: "+e;for(var r=0,n=i+1;3>r;r++){var a=e.indexOf(",",n);if(-1==a){if(0==r)throw"Invalid line: "+e;break}t[r]=this.trim(e.substr(n,a-n)),n=a+1}return t[r]=this.trim(e.substring(n)),r+1}},u.AtlasAttachmentLoader=function(t){this.atlas=t},u.AtlasAttachmentLoader.prototype={newAttachment:function(t,e,i){switch(e){case u.AttachmentType.region:var r=this.atlas.findRegion(i);if(!r)throw"Region not found in atlas: "+i+" ("+e+")";var n=new u.RegionAttachment(i);return n.rendererObject=r,n.setUVs(r.u,r.v,r.u2,r.v2,r.rotate),n.regionOffsetX=r.offsetX,n.regionOffsetY=r.offsetY,n.regionWidth=r.width,n.regionHeight=r.height,n.regionOriginalWidth=r.originalWidth,n.regionOriginalHeight=r.originalHeight,n}throw"Unknown attachment type: "+e}},n.AnimCache={},u.Bone.yDown=!0,n.CustomRenderable=function(){n.DisplayObject.call(this)},n.CustomRenderable.constructor=n.CustomRenderable,n.CustomRenderable.prototype=Object.create(n.DisplayObject.prototype),n.CustomRenderable.prototype.renderCanvas=function(){},n.CustomRenderable.prototype.initWebGL=function(){},n.CustomRenderable.prototype.renderWebGL=function(){},n.BaseTextureCache={},n.texturesToUpdate=[],n.texturesToDestroy=[],n.BaseTexture=function(t){if(n.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,n.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);this._powerOf2=!1}},n.BaseTexture.constructor=n.BaseTexture,n.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,n.texturesToDestroy.push(this)},n.BaseTexture.fromImage=function(t,e){var i=n.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new n.BaseTexture(r),n.BaseTextureCache[t]=i}return i},n.TextureCache={},n.FrameCache={},n.Texture=function(t,e){if(n.EventTarget.call(this),e||(this.noFrame=!0,e=new n.Rectangle(0,0,1,1)),this.trim=new n.Point,t instanceof n.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new n.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},n.Texture.constructor=n.Texture,n.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new n.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},n.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},n.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,n.Texture.frameUpdates.push(this)},n.Texture.fromImage=function(t,e){var i=n.TextureCache[t];return i||(i=new n.Texture(n.BaseTexture.fromImage(t,e)),n.TextureCache[t]=i),i},n.Texture.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},n.Texture.fromCanvas=function(t){var e=new n.BaseTexture(t);return new n.Texture(e)},n.Texture.addTextureToCache=function(t,e){n.TextureCache[e]=t},n.Texture.removeTextureFromCache=function(t){var e=n.TextureCache[t];return n.TextureCache[t]=null,e},n.Texture.frameUpdates=[],n.RenderTexture=function(t,e){n.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=n.mat3.create(),this.frame=new n.Rectangle(0,0,this.width,this.height),n.gl?this.initWebGL():this.initCanvas()},n.RenderTexture.constructor=n.RenderTexture,n.RenderTexture.prototype=Object.create(n.Texture.prototype),n.RenderTexture.prototype.initWebGL=function(){var t=n.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new n.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new n.Point(this.width/2,this.height/2),this.projectionMatrix=n.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},n.RenderTexture.prototype.initCanvas=function(){this.renderer=new n.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new n.BaseTexture(this.renderer.view),this.frame=new n.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},n.RenderTexture.prototype.renderWebGL=function(t,e){var i=n.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=n.mat3.create(),t.worldTransform[4]=-1,t.worldTransform[5]=2*this.projection.y;for(var a=0,s=r.length;s>a;a++)r[a].updateTransform();var o=t.__renderGroup;o?t==o.root?o.render(this.projection):o.renderSpecific(t,this.projection):(this.renderGroup||(this.renderGroup=new n.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projection))},n.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=n.mat3.create();for(var r=0,a=i.length;a>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),n.texturesToUpdate.push(this.baseTexture)},n.AssetLoader=function(t){n.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:n.ImageLoader,jpeg:n.ImageLoader,png:n.ImageLoader,gif:n.ImageLoader,json:n.JsonLoader,anim:n.SpineLoader,xml:n.BitmapFontLoader,fnt:n.BitmapFontLoader}},n.AssetLoader.constructor=n.AssetLoader,n.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),n=this.loadersByType[r];if(!n)throw Error(r+" is an unsupported file type");var a=new n(i,this.crossorigin);a.addEventListener("loaded",function(){t.onAssetLoaded()}),a.load()}},n.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},n.JsonLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.crossorigin=e,this.loaded=!1},n.JsonLoader.constructor=n.JsonLoader,n.JsonLoader.prototype.load=function(){this.ajaxRequest=new l;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},n.JsonLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState)if(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))if(this.json=JSON.parse(this.ajaxRequest.responseText),this.json.frames){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0))}i.load()}else if(this.json.bones){var o=new u.SkeletonJson,h=o.readSkeletonData(this.json);n.AnimCache[this.url]=h,this.onLoaded()}else this.onLoaded();else this.onError()},n.JsonLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},n.JsonLoader.prototype.onError=function(){this.dispatchEvent({type:"error",content:this})},n.SpriteSheetLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},n.SpriteSheetLoader.constructor=n.SpriteSheetLoader,n.SpriteSheetLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpriteSheetLoader.prototype.onJSONLoaded=function(){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0)) }i.load()},n.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.ImageLoader=function(t,e){n.EventTarget.call(this),this.texture=n.Texture.fromImage(t,e)},n.ImageLoader.constructor=n.ImageLoader,n.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},n.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.BitmapFontLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},n.BitmapFontLoader.constructor=n.BitmapFontLoader,n.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},n.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new n.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],a=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(a.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var s=this.ajaxRequest.responseXML.getElementsByTagName("char"),o=0;s.length>o;o++){var h=parseInt(s[o].attributes.getNamedItem("id").nodeValue,10),l={x:parseInt(s[o].attributes.getNamedItem("x").nodeValue,10),y:parseInt(s[o].attributes.getNamedItem("y").nodeValue,10),width:parseInt(s[o].attributes.getNamedItem("width").nodeValue,10),height:parseInt(s[o].attributes.getNamedItem("height").nodeValue,10)};n.TextureCache[h]=new n.Texture(this.texture,l),i.chars[h]={xOffset:parseInt(s[o].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(s[o].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(s[o].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{},texture:new n.Texture(this.texture,l)}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(o=0;u.length>o;o++){var c=parseInt(u[o].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[o].attributes.getNamedItem("second").nodeValue,10),p=parseInt(u[o].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=p}n.BitmapText.fonts[i.font]=i;var f=this;e.addEventListener("loaded",function(){f.onLoaded()}),e.load()}},n.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.SpineLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.crossorigin=e,this.loaded=!1},n.SpineLoader.constructor=n.SpineLoader,n.SpineLoader.prototype.load=function(){new n.JsonLoader(this.url,this.crossorigin),jsonLoader.addEventListener("loaded",function(t){scope.json=t.content.json,scope.onJSONLoaded()}),jsonLoader.load()},n.SpineLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpineLoader.prototype.onJSONLoaded=function(){var t=new u.SkeletonJson,e=t.readSkeletonData(this.json);n.AnimCache[this.url]=e,this.onLoaded()},n.SpineLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports.PIXI=n):i.PIXI=n}).call(this); \ No newline at end of file diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index 25cca17..0391561 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index 25cca17..0391561 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 12 - Spine/pixi.js b/examples/example 12 - Spine/pixi.js index 25cca17..0391561 100644 --- a/examples/example 12 - Spine/pixi.js +++ b/examples/example 12 - Spine/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 13 - Graphics/index.html b/examples/example 13 - Graphics/index.html index e6996b7..d847ef2 100644 --- a/examples/example 13 - Graphics/index.html +++ b/examples/example 13 - Graphics/index.html @@ -80,17 +80,40 @@ stage.addChild(graphics); + // lets create moving shape + var thing = new PIXI.Graphics(); + stage.addChild(thing); + thing.position.x = 620/2; + thing.position.y = 380/2; + + var count = 0; + stage.click = stage.tap = function() { graphics.lineStyle(Math.random() * 30, Math.random() * 0xFFFFFF, 1); graphics.moveTo(Math.random() * 620,Math.random() * 380); graphics.lineTo(Math.random() * 620,Math.random() * 380); - } requestAnimFrame(animate); function animate() { + + thing.clear(); + + count += 0.1; + + thing.clear(); + thing.lineStyle(30, 0xff0000, 1); + thing.beginFill(0xffFF00, 0.5); + + thing.moveTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + thing.lineTo(120 + Math.cos(count) * 20, -100 + Math.sin(count)* 20); + thing.lineTo(120 + Math.sin(count) * 20, 100 + Math.cos(count)* 20); + thing.lineTo(-120 + Math.cos(count)* 20, 100 + Math.sin(count)* 20); + thing.lineTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + + thing.rotation = count * 0.1; renderer.render(stage); requestAnimFrame( animate ); } diff --git a/examples/example 13 - Graphics/pixi.js b/examples/example 13 - Graphics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 13 - Graphics/pixi.js +++ b/examples/example 13 - Graphics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index 25cca17..0391561 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.js b/bin/pixi.js index 51d6836..96307b0 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -9,7 +9,7 @@ * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; +(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[],t._webGL.indices=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; if(0!=r.length){var a=new n.Point(r[0],r[1]),s=new n.Point(r[r.length-2],r[r.length-1]);if(a.x==s.x&&a.y==s.y){r.pop(),r.pop(),s=new n.Point(r[r.length-2],r[r.length-1]);var o=s.x+.5*(a.x-s.x),h=s.y+.5*(a.y-s.y);r.unshift(o,h),r.push(o,h)}var l,u,c,d,p,f,g,v,m,x,b,y,T,A,w,_,R,S,C,L,E,B=i.points,F=i.indices,P=r.length/2,G=r.length,I=B.length/6,D=t.lineWidth/2,M=e(t.lineColor),O=t.lineAlpha,W=M[0]*O,U=M[1]*O,j=M[2]*O;l=r[0],u=r[1],c=r[2],d=r[3],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(l-g,u-v,W,U,j,O),B.push(l+g,u+v,W,U,j,O);for(var k=1;P-1>k;k++)l=r[2*(k-1)],u=r[2*(k-1)+1],c=r[2*k],d=r[2*k+1],p=r[2*(k+1)],f=r[2*(k+1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,m=-(d-f),x=c-p,E=Math.sqrt(m*m+x*x),m/=E,x/=E,m*=D,x*=D,T=-v+u-(-v+d),A=-g+c-(-g+l),w=(-g+l)*(-v+d)-(-g+c)*(-v+u),_=-x+f-(-x+d),R=-m+c-(-m+p),S=(-m+p)*(-x+d)-(-m+c)*(-x+f),C=T*R-_*A,0==C&&(C+=1),px=(A*S-R*w)/C,py=(_*w-T*S)/C,L=(px-c)*(px-c)+(py-d)+(py-d),L>19600?(b=g-m,y=v-x,E=Math.sqrt(b*b+y*y),b/=E,y/=E,b*=D,y*=D,B.push(c-b,d-y),B.push(W,U,j,O),B.push(c+b,d+y),B.push(W,U,j,O),B.push(c-b,d-y),B.push(W,U,j,O),G++):(B.push(px,py),B.push(W,U,j,O),B.push(c-(px-c),d-(py-d)),B.push(W,U,j,O));l=r[2*(P-2)],u=r[2*(P-2)+1],c=r[2*(P-1)],d=r[2*(P-1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(c-g,d-v),B.push(W,U,j,O),B.push(c+g,d+v),B.push(W,U,j,O),F.push(I);for(var k=0;G>k;k++)F.push(I++);F.push(I-1)}},n.WebGLGraphics.buildPoly=function(t,i){var r=t.points;if(!(6>r.length)){for(var a=i.points,s=i.indices,o=r.length/2,h=e(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=n.PolyK.Triangulate(r),f=a.length/6,g=0;p.length>g;g+=3)s.push(p[g]+f),s.push(p[g]+f),s.push(p[g+1]+f),s.push(p[g+2]+f),s.push(p[g+2]+f);for(var g=0;o>g;g++)a.push(r[2*g],r[2*g+1],u,c,d,l)}},n._defaultFrame=new n.Rectangle(0,0,1,1),n.gl,n.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var a=this;this.view.addEventListener("webglcontextlost",function(t){a.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){a.handleContextRestored(t)},!1),this.batchs=[];try{n.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!0,premultipliedAlpha:!1})}catch(s){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}n.initPrimitiveShader(),n.initDefaultShader(),n.initDefaultStripShader(),n.activateDefaultShader();var o=this.gl;n.WebGLRenderer.gl=o,this.batch=new n.WebGLBatch(o),o.disable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.enable(o.BLEND),o.colorMask(!0,!0,!0,this.transparent),n.projection=new n.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new n.WebGLRenderGroup(this.gl)},n.WebGLRenderer.constructor=n.WebGLRenderer,n.WebGLRenderer.getBatch=function(){return 0==n._batchs.length?new n.WebGLBatch(n.WebGLRenderer.gl):n._batchs.pop()},n.WebGLRenderer.returnBatch=function(t){t.clean(),n._batchs.push(t)},n.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),n.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],!this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(n.projection),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0){for(var i=0;n.Texture.frameUpdates.length>i;i++)n.Texture.frameUpdates[i].updateFrame=!1;n.Texture.frameUpdates=[]}}},n.WebGLRenderer.updateTextures=function(){for(var t=0;n.texturesToUpdate.length>t;t++)this.updateTexture(n.texturesToUpdate[t]);for(var t=0;n.texturesToDestroy.length>t;t++)this.destroyTexture(n.texturesToDestroy[t]);n.texturesToUpdate=[],n.texturesToDestroy=[]},n.WebGLRenderer.updateTexture=function(t){var e=n.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},n.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},n.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),n.projection.x=this.width/2,n.projection.y=this.height/2},n.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},n.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;n.TextureCache.length>t;t++)this.updateTexture(n.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;n._restoreBatchs(this.gl),this.contextLost=!1},n._batchs=[],n._getBatch=function(t){return 0==n._batchs.length?new n.WebGLBatch(t):n._batchs.pop()},n._returnBatch=function(t){t.clean(),n._batchs.push(t)},n._restoreBatchs=function(t){for(var e=0;n._batchs.length>e;e++)n._batchs[e].restoreLostContext(t)},n.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=n.blendModes.NORMAL,this.dynamicSize=1},n.WebGLBatch.constructor=n.WebGLBatch,n.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},n.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},n.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},n.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},n.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},n.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},n.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new n.WebGLBatch(this.gl);e.init(t),e.texture=this.texture,e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},n.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},n.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,n=4*i;this.indices[r+0]=n+0,this.indices[r+1]=n+1,this.indices[r+2]=n+2,this.indices[r+3]=n+0,this.indices[r+4]=n+2,this.indices[r+5]=n+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},n.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof n.WebGLBatch?this.batchs[r].render():i instanceof n.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof n.Strip?i.visible&&this.renderStrip(i,t):i instanceof n.Graphics&&i.visible&&n.WebGLGraphics.renderGraphics(i,t)},n.WebGLRenderGroup.prototype.renderSpecific=function(t,e){n.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniform2f(n.shaderProgram.projectionVector,e.x,e.y);var r,a,s,o,h=t.renderable?t:this.getNextRenderable(t),l=h.batch;if(h instanceof n.Sprite){l=h.batch;var u=l.head;if(u==h)r=0;else for(r=1;u.__next!=h;)r++,u=u.__next}else l=h;for(var c,d=t,p=t;p.children.length>0;)p=p.children[p.children.length-1],p.renderable&&(d=p);if(d instanceof n.Sprite){c=d.batch;var u=c.head;if(u==d)s=0;else for(s=1;u.__next!=d;)s++,u=u.__next}else c=d;if(l==c)return l instanceof n.WebGLBatch?l.render(r,s+1):this.renderSpecial(l),void 0;a=this.batchs.indexOf(l),o=this.batchs.indexOf(c),l instanceof n.WebGLBatch?l.render(r):this.renderSpecial(l);for(var f=a+1;o>f;f++)renderable=this.batchs[f],renderable instanceof n.WebGLBatch?this.batchs[f].render():this.renderSpecial(renderable);c instanceof n.WebGLBatch?c.render(0,s+1):this.renderSpecial(c)},n.WebGLRenderGroup.prototype.renderSpecial=function(t){t instanceof n.TilingSprite?t.visible&&this.renderTilingSprite(t,projectionMatrix):t instanceof n.Strip?t.visible&&this.renderStrip(t,projectionMatrix):t instanceof n.CustomRenderable?t.visible&&t.renderWebGL(this,projectionMatrix):t instanceof n.Graphics&&t.visible&&n.WebGLGraphics.renderGraphics(t)},n.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var n=i[r];n.worldVisible=n.visible&&e,n.textureChange&&(n.textureChange=!1,n.worldVisible&&(this.removeDisplayObject(n),this.addDisplayObject(n))),n.children.length>0&&this.checkVisibility(n,n.worldVisible)}},n.WebGLRenderGroup.prototype.updateTexture=function(t){if(1==t.batch.length)return t.batch.texture=t.texture.baseTexture,void 0;if(t.batch.texture!=t.texture.baseTexture)if(t.batch.head==t){var e=t.batch,i=this.batchs.indexOf(e),r=this.batchs[i-1];if(e.remove(t),r)if(r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)r.insertAfter(t,r.tail);else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i-1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(0,0,a)}}else if(t.batch.tail==t){var e=t.batch,i=this.batchs.indexOf(e),s=this.batchs[i+1];if(e.remove(t),s){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,s.head),void 0;var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i+1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.push(a)}}else{var e=t.batch,o=e.split(t);o.remove(t);var a=n.WebGLRenderer.getBatch(),i=this.batchs.indexOf(e);a.init(t),this.batchs.splice(i+1,0,a,o)}},n.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof n.Sprite){var r,a;if(e instanceof n.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof n.Sprite){if(a=i.batch){if(a.texture==t.texture.baseTexture&&a.blendMode==t.blendMode)return a.insertBefore(t,i),void 0;if(a==r){var s=r.split(i),o=n.WebGLRenderer.getBatch(),h=this.batchs.indexOf(r);return o.init(t),this.batchs.splice(h+1,0,o,s),void 0}}}else a=i;var o=n.WebGLRenderer.getBatch();if(o.init(t),r){var h=this.batchs.indexOf(r);this.batchs.splice(h+1,0,o)}else this.batchs.push(o)}else t instanceof n.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof n.Strip?(this.initStrip(t),this.batchs.push(t)):t instanceof n.Graphics&&this.batchs.push(t);this.batchUpdate=!0}},n.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},n.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof n.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof n.WebGLBatch&&this.batchs[r+1]instanceof n.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),n.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e)}}},n.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},n.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},n.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=n.shaderProgram;i.useProgram(n.stripShaderProgram);var a=n.mat3.clone(t.worldTransform);n.mat3.transpose(a),i.uniformMatrix3fv(n.stripShaderProgram.translationMatrix,!1,a),i.uniform2f(n.stripShaderProgram.projectionVector,e.x,e.y),i.uniform1f(n.stripShaderProgram.alpha,t.worldAlpha),t.blendMode==n.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.useProgram(n.shaderProgram)},n.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;n.shaderProgram;var r=t.tilePosition,a=t.tileScale,s=r.x/t.texture.baseTexture.width,o=r.y/t.texture.baseTexture.height,h=t.width/t.texture.baseTexture.width/a.x,l=t.height/t.texture.baseTexture.height/a.y;t.uvs[0]=0-s,t.uvs[1]=0-o,t.uvs[2]=1*h-s,t.uvs[3]=0-o,t.uvs[4]=1*h-s,t.uvs[5]=1*l-o,t.uvs[6]=0-s,t.uvs[7]=1*l-o,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},n.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},n.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},n.CanvasRenderer.constructor=n.CanvasRenderer,n.CanvasRenderer.prototype.render=function(t){n.texturesToUpdate=[],n.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0&&(n.Texture.frameUpdates=[])},n.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},n.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof n.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof n.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof n.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof n.CustomRenderable?t.renderCanvas(this):t instanceof n.Graphics&&(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),n.CanvasGraphics.renderGraphics(t,i));if(t.children)for(var a=0;t.children.length>a;a++)this.renderDisplayObject(t.children[a]);this.context.setTransform(1,0,0,1,0,0)}},n.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var n=1;r-2>n;n++){var a=2*n,s=i[a],o=i[a+2],h=i[a+4],l=i[a+1],u=i[a+3],c=i[a+5];e.moveTo(s,l),e.lineTo(o,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},n.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;e.globalAlpha=t.worldAlpha,t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},n.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,n=i.length/2;this.count++;for(var a=1;n-2>a;a++){var s=2*a,o=i[s],h=i[s+2],l=i[s+4],u=i[s+1],c=i[s+3],d=i[s+5],p=r[s]*t.texture.width,f=r[s+2]*t.texture.width,g=r[s+4]*t.texture.width,v=r[s+1]*t.texture.height,m=r[s+3]*t.texture.height,x=r[s+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var b=p*m+v*g+f*x-m*g-v*f-p*x,y=o*m+v*l+h*x-m*l-v*h-o*x,T=p*h+o*g+f*l-h*g-o*f-p*l,A=p*m*l+v*h*g+o*f*x-o*m*g-v*f*l-p*h*x,w=u*m+v*d+c*x-m*d-v*c-u*x,_=p*c+u*g+f*d-c*g-u*f-p*d,R=p*m*d+v*c*g+u*f*x-u*m*g-v*f*d-p*c*x;e.transform(y/b,w/b,T/b,_/b,A/b,R/b),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},n.CanvasGraphics=function(){},n.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,r=0;t.graphicsData.length>r;r++){var a=t.graphicsData[r],s=a.points;if(e.strokeStyle=color="#"+("00000"+(0|a.lineColor).toString(16)).substr(-6),e.lineWidth=a.lineWidth,a.type==n.Graphics.POLY){e.beginPath(),e.moveTo(s[0],s[1]);for(var o=1;s.length/2>o;o++)e.lineTo(s[2*o],s[2*o+1]);s[0]==s[s.length-2]&&s[1]==s[s.length-1]&&e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}else if(a.type==n.Graphics.RECT)a.fillColor&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fillRect(s[0],s[1],s[2],s[3])),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.strokeRect(s[0],s[1],s[2],s[3]));else if(a.type==n.Graphics.CIRC)e.beginPath(),e.arc(s[0],s[1],s[2],0,2*Math.PI),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke());else if(a.type==n.Graphics.ELIP){var h=a.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,v=c+l,m=d+u,x=c+l/2,b=d+u/2;e.moveTo(c,b),e.bezierCurveTo(c,b-g,x-f,d,x,d),e.bezierCurveTo(x+f,d,v,b-g,v,b),e.bezierCurveTo(v,b+g,x+f,m,x,m),e.bezierCurveTo(x-f,m,c,b+g,c,b),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}}},n.Graphics=function(){n.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=2,this.lineColor="#FF0000",this.graphicsData=[],this.currentPath={points:[]}},n.Graphics.constructor=n.Graphics,n.Graphics.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Graphics.prototype.lineStyle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=void 0==i?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.graphicsData.push(this.currentPath)},n.Graphics.prototype.moveTo=function(t,e){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath)},n.Graphics.prototype.lineTo=function(t,e){this.currentPath.points.push(t,e),this.dirty=!0},n.Graphics.prototype.beginFill=function(t,e){this.filling=!0,this.fillColor=t||0,this.fillAlpha=e||1},n.Graphics.prototype.endFill=function(){this.filling=!1,this.fillColor=null,this.fillAlpha=1},n.Graphics.prototype.drawRect=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawCircle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:n.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawElipse=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.clear=function(){this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[]},n.Graphics.POLY=0,n.Graphics.RECT=1,n.Graphics.CIRC=2,n.Graphics.ELIP=3,n.Strip=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=n.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Strip.constructor=n.Strip,n.Strip.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},n.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Rope=function(t,e){n.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},n.Rope.constructor=n.Rope,n.Rope.prototype=Object.create(n.Strip.prototype),n.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,n=t[0],a=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var s=t.length,o=1;s>o;o++){var a=t[o],h=4*o,l=o/(s-1);o%2?(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1):(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,n=a}}},n.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],a={x:0,y:0},s=t[0];this.count-=.2,i[0]=s.x+a.x,i[1]=s.y+a.y,i[2]=s.x-a.x,i[3]=s.y-a.y;for(var o=t.length,h=1;o>h;h++){var s=t[h],l=4*h;e=t.length-1>h?t[h+1]:s,a.y=-(e.x-r.x),a.x=e.y-r.y;var u=10*(1-h/(o-1));u>1&&(u=1);var c=Math.sqrt(a.x*a.x+a.y*a.y),d=this.texture.height/2;a.x/=c,a.y/=c,a.x*=d,a.y*=d,i[l]=s.x+a.x,i[l+1]=s.y+a.y,i[l+2]=s.x-a.x,i[l+3]=s.y-a.y,r=s}n.DisplayObjectContainer.prototype.updateTransform.call(this)}},n.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0 },n.TilingSprite=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new n.Point(1,1),this.tilePosition=new n.Point(0,0),this.blendMode=n.blendModes.NORMAL},n.TilingSprite.constructor=n.TilingSprite,n.TilingSprite.prototype=Object.create(n.DisplayObjectContainer.prototype),n.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},n.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Spine=function(t){if(n.DisplayObjectContainer.call(this),this.spineData=n.AnimCache[t],!this.spineData)throw Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+t);this.count=0,this.sprites=[],this.skeleton=new u.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new u.AnimationStateData(this.spineData),this.state=new u.AnimationState(this.stateData);for(var e=0;this.skeleton.drawOrder.length>e;e++){var i=this.skeleton.drawOrder[e].data.attachmentName;n.TextureCache[i]||(i+=".png");var r=new n.Sprite(n.Texture.fromFrame(i));r.anchor.x=r.anchor.y=.5,this.addChild(r),this.sprites.push(r)}},n.Spine.constructor=n.Spine,n.Spine.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Spine.prototype.updateTransform=function(){this.state.update(1/60),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var t=0;this.skeleton.drawOrder.length>t;t++){var e=this.skeleton.drawOrder[t],i=e.bone.worldX+e.attachment.x*e.bone.m00+e.attachment.y*e.bone.m01+.5*e.attachment.width,r=e.bone.worldY+e.attachment.x*e.bone.m10+e.attachment.y*e.bone.m11+.5*e.attachment.height;if(e.cacheName!=e.attachment.name){var a=e.attachment.name;n.TextureCache[a]||(a+=".png"),this.sprites[t].setTexture(n.TextureCache[a]),e.cacheName=e.attachment.name}i+=-(e.attachment.width*(e.bone.worldScaleX+e.attachment.scaleX-1)>>1),r+=-(e.attachment.height*(e.bone.worldScaleY+e.attachment.scaleY-1)>>1),this.sprites[t].position.x=i,this.sprites[t].position.y=r,this.sprites[t].rotation=-(e.bone.worldRotation+e.attachment.rotation)*(Math.PI/180)}n.DisplayObjectContainer.prototype.updateTransform.call(this)};var u={};u.BoneData=function(t,e){this.name=t,this.parent=e},u.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},u.SlotData=function(t,e){this.name=t,this.boneData=e},u.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},u.Bone=function(t,e){this.data=t,this.parent=e,this.setToSetupPose()},u.Bone.yDown=!1,u.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(t,e){var i=this.parent;null!=i?(this.worldX=this.x*i.m00+this.y*i.m01+i.worldX,this.worldY=this.x*i.m10+this.y*i.m11+i.worldY,this.worldScaleX=i.worldScaleX*this.scaleX,this.worldScaleY=i.worldScaleY*this.scaleY,this.worldRotation=i.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var r=this.worldRotation*Math.PI/180,n=Math.cos(r),a=Math.sin(r);this.m00=n*this.worldScaleX,this.m10=a*this.worldScaleX,this.m01=-a*this.worldScaleY,this.m11=n*this.worldScaleY,t&&(this.m00=-this.m00,this.m01=-this.m01),e&&(this.m10=-this.m10,this.m11=-this.m11),u.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY}},u.Slot=function(t,e,i){this.data=t,this.skeleton=e,this.bone=i,this.setToSetupPose()},u.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(t){this.attachment=t,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(t){this._attachmentTime=this.skeleton.time-t},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var t=this.data;this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a;for(var e=this.skeleton.data.slots,i=0,r=e.length;r>i;i++)if(e[i]==t){this.setAttachment(t.attachmentName?this.skeleton.getAttachmentBySlotIndex(i,t.attachmentName):null);break}}},u.Skin=function(t){this.name=t,this.attachments={}},u.Skin.prototype={addAttachment:function(t,e,i){this.attachments[t+":"+e]=i},getAttachment:function(t,e){return this.attachments[t+":"+e]},_attachAll:function(t,e){for(var i in e.attachments){var r=i.indexOf(":"),n=parseInt(i.substring(0,r)),a=i.substring(r+1),s=t.slots[n];if(s.attachment&&s.attachment.name==a){var o=this.getAttachment(n,a);o&&s.setAttachment(o)}}}},u.Animation=function(t,e,i){this.name=t,this.timelines=e,this.duration=i},u.Animation.prototype={apply:function(t,e,i){i&&0!=this.duration&&(e%=this.duration);for(var r=this.timelines,n=0,a=r.length;a>n;n++)r[n].apply(t,e,1)},mix:function(t,e,i,r){i&&0!=this.duration&&(e%=this.duration);for(var n=this.timelines,a=0,s=n.length;s>a;a++)n[a].apply(t,e,r)}},u.binarySearch=function(t,e,i){var r=0,n=Math.floor(t.length/i)-2;if(0==n)return i;for(var a=n>>>1;;){if(e>=t[(a+1)*i]?r=a+1:n=a,r==n)return(r+1)*i;a=r+n>>>1}},u.linearSearch=function(t,e,i){for(var r=0,n=t.length-i;n>=r;r+=i)if(t[r]>e)return r;return-1},u.Curves=function(t){this.curves=[],this.curves.length=6*(t-1)},u.Curves.prototype={setLinear:function(t){this.curves[6*t]=0},setStepped:function(t){this.curves[6*t]=-1},setCurve:function(t,e,i,r,n){var a=.1,s=a*a,o=s*a,h=3*a,l=3*s,u=6*s,c=6*o,d=2*-e+r,p=2*-i+n,f=3*(e-r)+1,g=3*(i-n)+1,v=6*t,m=this.curves;m[v]=e*h+d*l+f*o,m[v+1]=i*h+p*l+g*o,m[v+2]=d*u+f*c,m[v+3]=p*u+g*c,m[v+4]=f*c,m[v+5]=g*c},getCurvePercent:function(t,e){e=0>e?0:e>1?1:e;var i=6*t,r=this.curves,n=r[i];if(!n)return e;if(-1==n)return 0;for(var a=r[i+1],s=r[i+2],o=r[i+3],h=r[i+4],l=r[i+5],u=n,c=a,d=8;;){if(u>=e){var p=u-n,f=c-a;return f+(c-f)*(e-p)/(u-p)}if(0==d)break;d--,n+=s,a+=o,s+=h,o+=l,u+=n,c+=a}return c+(1-c)*(e-u)/(1-u)}},u.RotateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=2*t},u.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){t*=2,this.frames[t]=e,this.frames[t+1]=i},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-2]){for(var a=n.data.rotation+r[r.length-1]-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;return n.rotation+=a*i,void 0}var s=u.binarySearch(r,e,2),o=r[s-1],h=r[s],l=1-(e-h)/(r[s-2]-h);l=this.curves.getCurvePercent(s/2-1,l);for(var a=r[s+1]-o;a>180;)a-=360;for(;-180>a;)a+=360;for(a=n.data.rotation+(o+a*l)-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;n.rotation+=a*i}}},u.TranslateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.x+=(n.data.x+r[r.length-2]-n.x)*i,n.y+=(n.data.y+r[r.length-1]-n.y)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.x+=(n.data.x+s+(r[a+1]-s)*l-n.x)*i,n.y+=(n.data.y+o+(r[a+2]-o)*l-n.y)*i}}},u.ScaleTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.scaleX+=(n.data.scaleX-1+r[r.length-2]-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+r[r.length-1]-n.scaleY)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.scaleX+=(n.data.scaleX-1+s+(r[a+1]-s)*l-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+o+(r[a+2]-o)*l-n.scaleY)*i}}},u.ColorTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=5*t},u.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e){t*=5,this.frames[t]=e,this.frames[t+1]=r,this.frames[t+2]=g,this.frames[t+3]=b,this.frames[t+4]=a},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.slots[this.slotIndex];if(e>=r[r.length-5]){var a=r.length-1;return n.r=r[a-3],n.g=r[a-2],n.b=r[a-1],n.a=r[a],void 0}var s=u.binarySearch(r,e,5),o=r[s-4],h=r[s-3],l=r[s-2],c=r[s-1],d=r[s],p=1-(e-d)/(r[s-5]-d);p=this.curves.getCurvePercent(s/5-1,p);var f=o+(r[s+1]-o)*p,g=h+(r[s+2]-h)*p,v=l+(r[s+3]-l)*p,m=c+(r[s+4]-c)*p;1>i?(n.r+=(f-n.r)*i,n.g+=(g-n.g)*i,n.b+=(v-n.b)*i,n.a+=(m-n.a)*i):(n.r=f,n.g=g,n.b=v,n.a=m)}}},u.AttachmentTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=t,this.attachmentNames=[],this.attachmentNames.length=t},u.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){this.frames[t]=e,this.attachmentNames[t]=i},apply:function(t,e){var i=this.frames;if(!(i[0]>e)){var r;r=e>=i[i.length-1]?i.length-1:u.binarySearch(i,e,1)-1;var n=this.attachmentNames[r];t.slots[this.slotIndex].setAttachment(n?t.getAttachmentBySlotIndex(this.slotIndex,n):null)}}},u.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},u.SkeletonData.prototype={defaultSkin:null,findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return slot[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSkin:function(t){for(var e=this.skins,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findAnimation:function(t){for(var e=this.animations,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null}},u.Skeleton=function(t){this.data=t,this.bones=[];for(var e=0,i=t.bones.length;i>e;e++){var r=t.bones[e],n=r.parent?this.bones[t.bones.indexOf(r.parent)]:null;this.bones.push(new u.Bone(r,n))}this.slots=[],this.drawOrder=[];for(var e=0,i=t.slots.length;i>e;e++){var a=t.slots[e],s=this.bones[t.bones.indexOf(a.boneData)],o=new u.Slot(a,this,s);this.slots.push(o),this.drawOrder.push(o)}},u.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var t=this.flipX,e=this.flipY,i=this.bones,r=0,n=i.length;n>r;r++)i[r].updateWorldTransform(t,e)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var t=this.bones,e=0,i=t.length;i>e;e++)t[e].setToSetupPose()},setSlotsToSetupPose:function(){for(var t=this.slots,e=0,i=t.length;i>e;e++)t[e].setToSetupPose(e)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},setSkinByName:function(t){var e=this.data.findSkin(t);if(!e)throw"Skin not found: "+t;this.setSkin(e)},setSkin:function(t){this.skin&&t&&t._attachAll(this,this.skin),this.skin=t},getAttachmentBySlotName:function(t,e){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(t),e)},getAttachmentBySlotIndex:function(t,e){if(this.skin){var i=this.skin.getAttachment(t,e);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},setAttachment:function(t,e){for(var i=this.slots,r=0,n=i.size;n>r;r++){var a=i[r];if(a.data.name==t){var s=null;if(e&&(s=this.getAttachment(r,e),null==s))throw"Attachment not found: "+e+", for slot: "+t;return a.setAttachment(s),void 0}}throw"Slot not found: "+t},update:function(t){time+=t}},u.AttachmentType={region:0},u.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},u.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(t,e,i,r,n){var a=this.uvs;n?(a[2]=t,a[3]=r,a[4]=t,a[5]=e,a[6]=i,a[7]=e,a[0]=i,a[1]=r):(a[0]=t,a[1]=r,a[2]=t,a[3]=e,a[4]=i,a[5]=e,a[6]=i,a[7]=r)},updateOffset:function(){var t=this.width/this.regionOriginalWidth*this.scaleX,e=this.height/this.regionOriginalHeight*this.scaleY,i=-this.width/2*this.scaleX+this.regionOffsetX*t,r=-this.height/2*this.scaleY+this.regionOffsetY*e,n=i+this.regionWidth*t,a=r+this.regionHeight*e,s=this.rotation*Math.PI/180,o=Math.cos(s),h=Math.sin(s),l=i*o+this.x,u=i*h,c=r*o+this.y,d=r*h,p=n*o+this.x,f=n*h,g=a*o+this.y,v=a*h,m=this.offset;m[0]=l-d,m[1]=c+u,m[2]=l-v,m[3]=g+u,m[4]=p-v,m[5]=g+f,m[6]=p-d,m[7]=c+f},computeVertices:function(t,e,i,r){t+=i.worldX,e+=i.worldY;var n=i.m00,a=i.m01,s=i.m10,o=i.m11,h=this.offset;r[0]=h[0]*n+h[1]*a+t,r[1]=h[0]*s+h[1]*o+e,r[2]=h[2]*n+h[3]*a+t,r[3]=h[2]*s+h[3]*o+e,r[4]=h[4]*n+h[5]*a+t,r[5]=h[4]*s+h[5]*o+e,r[6]=h[6]*n+h[7]*a+t,r[7]=h[6]*s+h[7]*o+e}},u.AnimationStateData=function(t){this.skeletonData=t,this.animationToMixTime={}},u.AnimationStateData.prototype={setMixByName:function(t,e,i){var r=this.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;var n=this.skeletonData.findAnimation(e);if(!n)throw"Animation not found: "+e;this.setMix(r,n,i)},setMix:function(t,e,i){this.animationToMixTime[t.name+":"+e.name]=i},getMix:function(t,e){var i=this.animationToMixTime[t.name+":"+e.name];return i?i:0}},u.AnimationState=function(t){this.data=t,this.queue=[]},u.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(t){if(this.currentTime+=t,this.previousTime+=t,this.mixTime+=t,this.queue.length>0){var e=this.queue[0];this.currentTime>=e.delay&&(this._setAnimation(e.animation,e.loop),this.queue.shift())}},apply:function(t){if(this.current)if(this.previous){this.previous.apply(t,this.previousTime,this.previousLoop);var e=this.mixTime/this.mixDuration;e>=1&&(e=1,this.previous=null),this.current.mix(t,this.currentTime,this.currentLoop,e)}else this.current.apply(t,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(t,e){this.previous=null,t&&this.current&&(this.mixDuration=this.data.getMix(this.current,t),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=t,this.currentLoop=e,this.currentTime=0},setAnimationByName:function(t,e){var i=this.data.skeletonData.findAnimation(t);if(!i)throw"Animation not found: "+t;this.setAnimation(i,e)},setAnimation:function(t,e){this.queue.length=0,this._setAnimation(t,e)},addAnimationByName:function(t,e,i){var r=this.data.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;this.addAnimation(r,e,i)},addAnimation:function(t,e,i){var r={};if(r.animation=t,r.loop=e,!i||0>=i){var n=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;i=null!=n?n.duration-this.data.getMix(n,t)+(i||0):0}r.delay=i,this.queue.push(r)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},u.SkeletonJson=function(t){this.attachmentLoader=t},u.SkeletonJson.prototype={scale:1,readSkeletonData:function(t){for(var e=new u.SkeletonData,i=t.bones,r=0,n=i.length;n>r;r++){var a=i[r],s=null;if(a.parent&&(s=e.findBone(a.parent),!s))throw"Parent bone not found: "+a.parent;var o=new u.BoneData(a.name,s);o.length=(a.length||0)*this.scale,o.x=(a.x||0)*this.scale,o.y=(a.y||0)*this.scale,o.rotation=a.rotation||0,o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1,e.bones.push(o)}for(var h=t.slots,r=0,n=h.length;n>r;r++){var l=h[r],o=e.findBone(l.bone);if(!o)throw"Slot bone not found: "+l.bone;var c=new u.SlotData(l.name,o),d=l.color;d&&(c.r=u.SkeletonJson.toColor(d,0),c.g=u.SkeletonJson.toColor(d,1),c.b=u.SkeletonJson.toColor(d,2),c.a=u.SkeletonJson.toColor(d,3)),c.attachmentName=l.attachment,e.slots.push(c)}var p=t.skins;for(var f in p)if(p.hasOwnProperty(f)){var g=p[f],v=new u.Skin(f);for(var m in g)if(g.hasOwnProperty(m)){var x=e.findSlotIndex(m),b=g[m];for(var y in b)if(b.hasOwnProperty(y)){var T=this.readAttachment(v,y,b[y]);null!=T&&v.addAttachment(x,y,T)}}e.skins.push(v),"default"==v.name&&(e.defaultSkin=v)}var A=t.animations;for(var w in A)A.hasOwnProperty(w)&&this.readAnimation(w,A[w],e);return e},readAttachment:function(t,e,i){e=i.name||e;var r=u.AttachmentType[i.type||"region"],n=new u.RegionAttachment;return n.name=e,r==u.AttachmentType.region&&(n.x=(i.x||0)*this.scale,n.y=(i.y||0)*this.scale,n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1,n.rotation=i.rotation||0,n.width=(i.width||32)*this.scale,n.height=(i.height||32)*this.scale,n.updateOffset()),n},readAnimation:function(t,e,i){var r=[],n=0,a=e.bones;for(var s in a)if(a.hasOwnProperty(s)){var o=i.findBoneIndex(s);if(-1==o)throw"Bone not found: "+s;var h=a[s];for(var l in h)if(h.hasOwnProperty(l)){var c=h[l];if("rotate"==l){var d=new u.RotateTimeline(c.length);d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p,v.time,v.angle),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[2*d.getFrameCount()-2])}else{if("translate"!=l&&"scale"!=l)throw"Invalid timeline type for a bone: "+l+" ("+s+")";var d,m=1;"scale"==l?d=new u.ScaleTimeline(c.length):(d=new u.TranslateTimeline(c.length),m=this.scale),d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],x=(v.x||0)*m,b=(v.y||0)*m;d.setFrame(p,v.time,x,b),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[3*d.getFrameCount()-3])}}}var y=e.slots;for(var T in y)if(y.hasOwnProperty(T)){var A=y[T],w=i.findSlotIndex(T);for(var l in A)if(A.hasOwnProperty(l)){var c=A[l];if("color"==l){var d=new u.ColorTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],_=v.color,R=u.SkeletonJson.toColor(_,0),S=u.SkeletonJson.toColor(_,1),C=u.SkeletonJson.toColor(_,2),L=u.SkeletonJson.toColor(_,3);d.setFrame(p,v.time,R,S,C,L),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[5*d.getFrameCount()-5])}else{if("attachment"!=l)throw"Invalid timeline type for a slot: "+l+" ("+T+")";var d=new u.AttachmentTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p++,v.time,v.name)}r.push(d),n=Math.max(n,d.frames[Math.floor(d.getFrameCount())-1])}}}i.animations.push(new u.Animation(t,r,n))}},u.SkeletonJson.readCurve=function(t,e,i){var r=i.curve;r&&("stepped"==r?t.curves.setStepped(e):r instanceof Array&&t.curves.setCurve(e,r[0],r[1],r[2],r[3]))},u.SkeletonJson.toColor=function(t,e){if(8!=t.length)throw"Color hexidecimal length must be 8, recieved: "+t;return parseInt(t.substring(2*e,2),16)/255},u.Atlas=function(t,e){this.textureLoader=e,this.pages=[],this.regions=[];var i=new u.AtlasReader(t),r=[];r.length=4;for(var n=null;;){var a=i.readLine();if(null==a)break;if(a=i.trim(a),0==a.length)n=null;else if(n){var s=new u.AtlasRegion;s.name=a,s.page=n,s.rotate="true"==i.readValue(),i.readTuple(r);var o=parseInt(r[0]),h=parseInt(r[1]);i.readTuple(r);var l=parseInt(r[0]),c=parseInt(r[1]);s.u=o/n.width,s.v=h/n.height,s.rotate?(s.u2=(o+c)/n.width,s.v2=(h+l)/n.height):(s.u2=(o+l)/n.width,s.v2=(h+c)/n.height),s.x=o,s.y=h,s.width=Math.abs(l),s.height=Math.abs(c),4==i.readTuple(r)&&(s.splits=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],4==i.readTuple(r)&&(s.pads=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],i.readTuple(r))),s.originalWidth=parseInt(r[0]),s.originalHeight=parseInt(r[1]),i.readTuple(r),s.offsetX=parseInt(r[0]),s.offsetY=parseInt(r[1]),s.index=parseInt(i.readValue()),this.regions.push(s)}else{n=new u.AtlasPage,n.name=a,n.format=u.Atlas.Format[i.readValue()],i.readTuple(r),n.minFilter=u.Atlas.TextureFilter[r[0]],n.magFilter=u.Atlas.TextureFilter[r[1]];var d=i.readValue();n.uWrap=u.Atlas.TextureWrap.clampToEdge,n.vWrap=u.Atlas.TextureWrap.clampToEdge,"x"==d?n.uWrap=u.Atlas.TextureWrap.repeat:"y"==d?n.vWrap=u.Atlas.TextureWrap.repeat:"xy"==d&&(n.uWrap=n.vWrap=u.Atlas.TextureWrap.repeat),e.load(n,a),this.pages.push(n)}}},u.Atlas.prototype={findRegion:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},dispose:function(){for(var t=this.pages,e=0,i=t.length;i>e;e++)this.textureLoader.unload(t[e].rendererObject)},updateUVs:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++){var n=e[i];n.page==t&&(n.u=n.x/t.width,n.v=n.y/t.height,n.rotate?(n.u2=(n.x+n.height)/t.width,n.v2=(n.y+n.width)/t.height):(n.u2=(n.x+n.width)/t.width,n.v2=(n.y+n.height)/t.height))}}},u.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},u.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},u.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},u.AtlasPage=function(){},u.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},u.AtlasRegion=function(){},u.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},u.AtlasReader=function(t){this.lines=t.split(/\r\n|\r|\n/)},u.AtlasReader.prototype={index:0,trim:function(t){return t.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw"Invalid line: "+t;return this.trim(t.substring(e+1))},readTuple:function(t){var e=this.readLine(),i=e.indexOf(":");if(-1==i)throw"Invalid line: "+e;for(var r=0,n=i+1;3>r;r++){var a=e.indexOf(",",n);if(-1==a){if(0==r)throw"Invalid line: "+e;break}t[r]=this.trim(e.substr(n,a-n)),n=a+1}return t[r]=this.trim(e.substring(n)),r+1}},u.AtlasAttachmentLoader=function(t){this.atlas=t},u.AtlasAttachmentLoader.prototype={newAttachment:function(t,e,i){switch(e){case u.AttachmentType.region:var r=this.atlas.findRegion(i);if(!r)throw"Region not found in atlas: "+i+" ("+e+")";var n=new u.RegionAttachment(i);return n.rendererObject=r,n.setUVs(r.u,r.v,r.u2,r.v2,r.rotate),n.regionOffsetX=r.offsetX,n.regionOffsetY=r.offsetY,n.regionWidth=r.width,n.regionHeight=r.height,n.regionOriginalWidth=r.originalWidth,n.regionOriginalHeight=r.originalHeight,n}throw"Unknown attachment type: "+e}},n.AnimCache={},u.Bone.yDown=!0,n.CustomRenderable=function(){n.DisplayObject.call(this)},n.CustomRenderable.constructor=n.CustomRenderable,n.CustomRenderable.prototype=Object.create(n.DisplayObject.prototype),n.CustomRenderable.prototype.renderCanvas=function(){},n.CustomRenderable.prototype.initWebGL=function(){},n.CustomRenderable.prototype.renderWebGL=function(){},n.BaseTextureCache={},n.texturesToUpdate=[],n.texturesToDestroy=[],n.BaseTexture=function(t){if(n.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,n.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);this._powerOf2=!1}},n.BaseTexture.constructor=n.BaseTexture,n.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,n.texturesToDestroy.push(this)},n.BaseTexture.fromImage=function(t,e){var i=n.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new n.BaseTexture(r),n.BaseTextureCache[t]=i}return i},n.TextureCache={},n.FrameCache={},n.Texture=function(t,e){if(n.EventTarget.call(this),e||(this.noFrame=!0,e=new n.Rectangle(0,0,1,1)),this.trim=new n.Point,t instanceof n.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new n.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},n.Texture.constructor=n.Texture,n.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new n.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},n.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},n.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,n.Texture.frameUpdates.push(this)},n.Texture.fromImage=function(t,e){var i=n.TextureCache[t];return i||(i=new n.Texture(n.BaseTexture.fromImage(t,e)),n.TextureCache[t]=i),i},n.Texture.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},n.Texture.fromCanvas=function(t){var e=new n.BaseTexture(t);return new n.Texture(e)},n.Texture.addTextureToCache=function(t,e){n.TextureCache[e]=t},n.Texture.removeTextureFromCache=function(t){var e=n.TextureCache[t];return n.TextureCache[t]=null,e},n.Texture.frameUpdates=[],n.RenderTexture=function(t,e){n.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=n.mat3.create(),this.frame=new n.Rectangle(0,0,this.width,this.height),n.gl?this.initWebGL():this.initCanvas()},n.RenderTexture.constructor=n.RenderTexture,n.RenderTexture.prototype=Object.create(n.Texture.prototype),n.RenderTexture.prototype.initWebGL=function(){var t=n.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new n.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new n.Point(this.width/2,this.height/2),this.projectionMatrix=n.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},n.RenderTexture.prototype.initCanvas=function(){this.renderer=new n.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new n.BaseTexture(this.renderer.view),this.frame=new n.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},n.RenderTexture.prototype.renderWebGL=function(t,e){var i=n.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=n.mat3.create(),t.worldTransform[4]=-1,t.worldTransform[5]=2*this.projection.y;for(var a=0,s=r.length;s>a;a++)r[a].updateTransform();var o=t.__renderGroup;o?t==o.root?o.render(this.projection):o.renderSpecific(t,this.projection):(this.renderGroup||(this.renderGroup=new n.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projection))},n.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=n.mat3.create();for(var r=0,a=i.length;a>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),n.texturesToUpdate.push(this.baseTexture)},n.AssetLoader=function(t){n.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:n.ImageLoader,jpeg:n.ImageLoader,png:n.ImageLoader,gif:n.ImageLoader,json:n.JsonLoader,anim:n.SpineLoader,xml:n.BitmapFontLoader,fnt:n.BitmapFontLoader}},n.AssetLoader.constructor=n.AssetLoader,n.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),n=this.loadersByType[r];if(!n)throw Error(r+" is an unsupported file type");var a=new n(i,this.crossorigin);a.addEventListener("loaded",function(){t.onAssetLoaded()}),a.load()}},n.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},n.JsonLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.crossorigin=e,this.loaded=!1},n.JsonLoader.constructor=n.JsonLoader,n.JsonLoader.prototype.load=function(){this.ajaxRequest=new l;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},n.JsonLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState)if(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))if(this.json=JSON.parse(this.ajaxRequest.responseText),this.json.frames){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0))}i.load()}else if(this.json.bones){var o=new u.SkeletonJson,h=o.readSkeletonData(this.json);n.AnimCache[this.url]=h,this.onLoaded()}else this.onLoaded();else this.onError()},n.JsonLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},n.JsonLoader.prototype.onError=function(){this.dispatchEvent({type:"error",content:this})},n.SpriteSheetLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},n.SpriteSheetLoader.constructor=n.SpriteSheetLoader,n.SpriteSheetLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpriteSheetLoader.prototype.onJSONLoaded=function(){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0)) }i.load()},n.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.ImageLoader=function(t,e){n.EventTarget.call(this),this.texture=n.Texture.fromImage(t,e)},n.ImageLoader.constructor=n.ImageLoader,n.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},n.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.BitmapFontLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},n.BitmapFontLoader.constructor=n.BitmapFontLoader,n.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},n.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new n.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],a=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(a.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var s=this.ajaxRequest.responseXML.getElementsByTagName("char"),o=0;s.length>o;o++){var h=parseInt(s[o].attributes.getNamedItem("id").nodeValue,10),l={x:parseInt(s[o].attributes.getNamedItem("x").nodeValue,10),y:parseInt(s[o].attributes.getNamedItem("y").nodeValue,10),width:parseInt(s[o].attributes.getNamedItem("width").nodeValue,10),height:parseInt(s[o].attributes.getNamedItem("height").nodeValue,10)};n.TextureCache[h]=new n.Texture(this.texture,l),i.chars[h]={xOffset:parseInt(s[o].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(s[o].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(s[o].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{},texture:new n.Texture(this.texture,l)}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(o=0;u.length>o;o++){var c=parseInt(u[o].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[o].attributes.getNamedItem("second").nodeValue,10),p=parseInt(u[o].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=p}n.BitmapText.fonts[i.font]=i;var f=this;e.addEventListener("loaded",function(){f.onLoaded()}),e.load()}},n.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.SpineLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.crossorigin=e,this.loaded=!1},n.SpineLoader.constructor=n.SpineLoader,n.SpineLoader.prototype.load=function(){new n.JsonLoader(this.url,this.crossorigin),jsonLoader.addEventListener("loaded",function(t){scope.json=t.content.json,scope.onJSONLoaded()}),jsonLoader.load()},n.SpineLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpineLoader.prototype.onJSONLoaded=function(){var t=new u.SkeletonJson,e=t.readSkeletonData(this.json);n.AnimCache[this.url]=e,this.onLoaded()},n.SpineLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports.PIXI=n):i.PIXI=n}).call(this); \ No newline at end of file diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index 25cca17..0391561 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index 25cca17..0391561 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 12 - Spine/pixi.js b/examples/example 12 - Spine/pixi.js index 25cca17..0391561 100644 --- a/examples/example 12 - Spine/pixi.js +++ b/examples/example 12 - Spine/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 13 - Graphics/index.html b/examples/example 13 - Graphics/index.html index e6996b7..d847ef2 100644 --- a/examples/example 13 - Graphics/index.html +++ b/examples/example 13 - Graphics/index.html @@ -80,17 +80,40 @@ stage.addChild(graphics); + // lets create moving shape + var thing = new PIXI.Graphics(); + stage.addChild(thing); + thing.position.x = 620/2; + thing.position.y = 380/2; + + var count = 0; + stage.click = stage.tap = function() { graphics.lineStyle(Math.random() * 30, Math.random() * 0xFFFFFF, 1); graphics.moveTo(Math.random() * 620,Math.random() * 380); graphics.lineTo(Math.random() * 620,Math.random() * 380); - } requestAnimFrame(animate); function animate() { + + thing.clear(); + + count += 0.1; + + thing.clear(); + thing.lineStyle(30, 0xff0000, 1); + thing.beginFill(0xffFF00, 0.5); + + thing.moveTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + thing.lineTo(120 + Math.cos(count) * 20, -100 + Math.sin(count)* 20); + thing.lineTo(120 + Math.sin(count) * 20, 100 + Math.cos(count)* 20); + thing.lineTo(-120 + Math.cos(count)* 20, 100 + Math.sin(count)* 20); + thing.lineTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + + thing.rotation = count * 0.1; renderer.render(stage); requestAnimFrame( animate ); } diff --git a/examples/example 13 - Graphics/pixi.js b/examples/example 13 - Graphics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 13 - Graphics/pixi.js +++ b/examples/example 13 - Graphics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index 25cca17..0391561 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index 25cca17..0391561 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.js b/bin/pixi.js index 51d6836..96307b0 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -9,7 +9,7 @@ * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; +(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[],t._webGL.indices=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; if(0!=r.length){var a=new n.Point(r[0],r[1]),s=new n.Point(r[r.length-2],r[r.length-1]);if(a.x==s.x&&a.y==s.y){r.pop(),r.pop(),s=new n.Point(r[r.length-2],r[r.length-1]);var o=s.x+.5*(a.x-s.x),h=s.y+.5*(a.y-s.y);r.unshift(o,h),r.push(o,h)}var l,u,c,d,p,f,g,v,m,x,b,y,T,A,w,_,R,S,C,L,E,B=i.points,F=i.indices,P=r.length/2,G=r.length,I=B.length/6,D=t.lineWidth/2,M=e(t.lineColor),O=t.lineAlpha,W=M[0]*O,U=M[1]*O,j=M[2]*O;l=r[0],u=r[1],c=r[2],d=r[3],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(l-g,u-v,W,U,j,O),B.push(l+g,u+v,W,U,j,O);for(var k=1;P-1>k;k++)l=r[2*(k-1)],u=r[2*(k-1)+1],c=r[2*k],d=r[2*k+1],p=r[2*(k+1)],f=r[2*(k+1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,m=-(d-f),x=c-p,E=Math.sqrt(m*m+x*x),m/=E,x/=E,m*=D,x*=D,T=-v+u-(-v+d),A=-g+c-(-g+l),w=(-g+l)*(-v+d)-(-g+c)*(-v+u),_=-x+f-(-x+d),R=-m+c-(-m+p),S=(-m+p)*(-x+d)-(-m+c)*(-x+f),C=T*R-_*A,0==C&&(C+=1),px=(A*S-R*w)/C,py=(_*w-T*S)/C,L=(px-c)*(px-c)+(py-d)+(py-d),L>19600?(b=g-m,y=v-x,E=Math.sqrt(b*b+y*y),b/=E,y/=E,b*=D,y*=D,B.push(c-b,d-y),B.push(W,U,j,O),B.push(c+b,d+y),B.push(W,U,j,O),B.push(c-b,d-y),B.push(W,U,j,O),G++):(B.push(px,py),B.push(W,U,j,O),B.push(c-(px-c),d-(py-d)),B.push(W,U,j,O));l=r[2*(P-2)],u=r[2*(P-2)+1],c=r[2*(P-1)],d=r[2*(P-1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(c-g,d-v),B.push(W,U,j,O),B.push(c+g,d+v),B.push(W,U,j,O),F.push(I);for(var k=0;G>k;k++)F.push(I++);F.push(I-1)}},n.WebGLGraphics.buildPoly=function(t,i){var r=t.points;if(!(6>r.length)){for(var a=i.points,s=i.indices,o=r.length/2,h=e(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=n.PolyK.Triangulate(r),f=a.length/6,g=0;p.length>g;g+=3)s.push(p[g]+f),s.push(p[g]+f),s.push(p[g+1]+f),s.push(p[g+2]+f),s.push(p[g+2]+f);for(var g=0;o>g;g++)a.push(r[2*g],r[2*g+1],u,c,d,l)}},n._defaultFrame=new n.Rectangle(0,0,1,1),n.gl,n.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var a=this;this.view.addEventListener("webglcontextlost",function(t){a.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){a.handleContextRestored(t)},!1),this.batchs=[];try{n.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!0,premultipliedAlpha:!1})}catch(s){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}n.initPrimitiveShader(),n.initDefaultShader(),n.initDefaultStripShader(),n.activateDefaultShader();var o=this.gl;n.WebGLRenderer.gl=o,this.batch=new n.WebGLBatch(o),o.disable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.enable(o.BLEND),o.colorMask(!0,!0,!0,this.transparent),n.projection=new n.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new n.WebGLRenderGroup(this.gl)},n.WebGLRenderer.constructor=n.WebGLRenderer,n.WebGLRenderer.getBatch=function(){return 0==n._batchs.length?new n.WebGLBatch(n.WebGLRenderer.gl):n._batchs.pop()},n.WebGLRenderer.returnBatch=function(t){t.clean(),n._batchs.push(t)},n.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),n.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],!this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(n.projection),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0){for(var i=0;n.Texture.frameUpdates.length>i;i++)n.Texture.frameUpdates[i].updateFrame=!1;n.Texture.frameUpdates=[]}}},n.WebGLRenderer.updateTextures=function(){for(var t=0;n.texturesToUpdate.length>t;t++)this.updateTexture(n.texturesToUpdate[t]);for(var t=0;n.texturesToDestroy.length>t;t++)this.destroyTexture(n.texturesToDestroy[t]);n.texturesToUpdate=[],n.texturesToDestroy=[]},n.WebGLRenderer.updateTexture=function(t){var e=n.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},n.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},n.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),n.projection.x=this.width/2,n.projection.y=this.height/2},n.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},n.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;n.TextureCache.length>t;t++)this.updateTexture(n.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;n._restoreBatchs(this.gl),this.contextLost=!1},n._batchs=[],n._getBatch=function(t){return 0==n._batchs.length?new n.WebGLBatch(t):n._batchs.pop()},n._returnBatch=function(t){t.clean(),n._batchs.push(t)},n._restoreBatchs=function(t){for(var e=0;n._batchs.length>e;e++)n._batchs[e].restoreLostContext(t)},n.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=n.blendModes.NORMAL,this.dynamicSize=1},n.WebGLBatch.constructor=n.WebGLBatch,n.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},n.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},n.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},n.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},n.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},n.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},n.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new n.WebGLBatch(this.gl);e.init(t),e.texture=this.texture,e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},n.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},n.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,n=4*i;this.indices[r+0]=n+0,this.indices[r+1]=n+1,this.indices[r+2]=n+2,this.indices[r+3]=n+0,this.indices[r+4]=n+2,this.indices[r+5]=n+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},n.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof n.WebGLBatch?this.batchs[r].render():i instanceof n.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof n.Strip?i.visible&&this.renderStrip(i,t):i instanceof n.Graphics&&i.visible&&n.WebGLGraphics.renderGraphics(i,t)},n.WebGLRenderGroup.prototype.renderSpecific=function(t,e){n.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniform2f(n.shaderProgram.projectionVector,e.x,e.y);var r,a,s,o,h=t.renderable?t:this.getNextRenderable(t),l=h.batch;if(h instanceof n.Sprite){l=h.batch;var u=l.head;if(u==h)r=0;else for(r=1;u.__next!=h;)r++,u=u.__next}else l=h;for(var c,d=t,p=t;p.children.length>0;)p=p.children[p.children.length-1],p.renderable&&(d=p);if(d instanceof n.Sprite){c=d.batch;var u=c.head;if(u==d)s=0;else for(s=1;u.__next!=d;)s++,u=u.__next}else c=d;if(l==c)return l instanceof n.WebGLBatch?l.render(r,s+1):this.renderSpecial(l),void 0;a=this.batchs.indexOf(l),o=this.batchs.indexOf(c),l instanceof n.WebGLBatch?l.render(r):this.renderSpecial(l);for(var f=a+1;o>f;f++)renderable=this.batchs[f],renderable instanceof n.WebGLBatch?this.batchs[f].render():this.renderSpecial(renderable);c instanceof n.WebGLBatch?c.render(0,s+1):this.renderSpecial(c)},n.WebGLRenderGroup.prototype.renderSpecial=function(t){t instanceof n.TilingSprite?t.visible&&this.renderTilingSprite(t,projectionMatrix):t instanceof n.Strip?t.visible&&this.renderStrip(t,projectionMatrix):t instanceof n.CustomRenderable?t.visible&&t.renderWebGL(this,projectionMatrix):t instanceof n.Graphics&&t.visible&&n.WebGLGraphics.renderGraphics(t)},n.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var n=i[r];n.worldVisible=n.visible&&e,n.textureChange&&(n.textureChange=!1,n.worldVisible&&(this.removeDisplayObject(n),this.addDisplayObject(n))),n.children.length>0&&this.checkVisibility(n,n.worldVisible)}},n.WebGLRenderGroup.prototype.updateTexture=function(t){if(1==t.batch.length)return t.batch.texture=t.texture.baseTexture,void 0;if(t.batch.texture!=t.texture.baseTexture)if(t.batch.head==t){var e=t.batch,i=this.batchs.indexOf(e),r=this.batchs[i-1];if(e.remove(t),r)if(r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)r.insertAfter(t,r.tail);else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i-1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(0,0,a)}}else if(t.batch.tail==t){var e=t.batch,i=this.batchs.indexOf(e),s=this.batchs[i+1];if(e.remove(t),s){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,s.head),void 0;var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i+1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.push(a)}}else{var e=t.batch,o=e.split(t);o.remove(t);var a=n.WebGLRenderer.getBatch(),i=this.batchs.indexOf(e);a.init(t),this.batchs.splice(i+1,0,a,o)}},n.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof n.Sprite){var r,a;if(e instanceof n.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof n.Sprite){if(a=i.batch){if(a.texture==t.texture.baseTexture&&a.blendMode==t.blendMode)return a.insertBefore(t,i),void 0;if(a==r){var s=r.split(i),o=n.WebGLRenderer.getBatch(),h=this.batchs.indexOf(r);return o.init(t),this.batchs.splice(h+1,0,o,s),void 0}}}else a=i;var o=n.WebGLRenderer.getBatch();if(o.init(t),r){var h=this.batchs.indexOf(r);this.batchs.splice(h+1,0,o)}else this.batchs.push(o)}else t instanceof n.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof n.Strip?(this.initStrip(t),this.batchs.push(t)):t instanceof n.Graphics&&this.batchs.push(t);this.batchUpdate=!0}},n.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},n.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof n.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof n.WebGLBatch&&this.batchs[r+1]instanceof n.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),n.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e)}}},n.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},n.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},n.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=n.shaderProgram;i.useProgram(n.stripShaderProgram);var a=n.mat3.clone(t.worldTransform);n.mat3.transpose(a),i.uniformMatrix3fv(n.stripShaderProgram.translationMatrix,!1,a),i.uniform2f(n.stripShaderProgram.projectionVector,e.x,e.y),i.uniform1f(n.stripShaderProgram.alpha,t.worldAlpha),t.blendMode==n.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.useProgram(n.shaderProgram)},n.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;n.shaderProgram;var r=t.tilePosition,a=t.tileScale,s=r.x/t.texture.baseTexture.width,o=r.y/t.texture.baseTexture.height,h=t.width/t.texture.baseTexture.width/a.x,l=t.height/t.texture.baseTexture.height/a.y;t.uvs[0]=0-s,t.uvs[1]=0-o,t.uvs[2]=1*h-s,t.uvs[3]=0-o,t.uvs[4]=1*h-s,t.uvs[5]=1*l-o,t.uvs[6]=0-s,t.uvs[7]=1*l-o,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},n.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},n.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},n.CanvasRenderer.constructor=n.CanvasRenderer,n.CanvasRenderer.prototype.render=function(t){n.texturesToUpdate=[],n.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0&&(n.Texture.frameUpdates=[])},n.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},n.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof n.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof n.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof n.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof n.CustomRenderable?t.renderCanvas(this):t instanceof n.Graphics&&(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),n.CanvasGraphics.renderGraphics(t,i));if(t.children)for(var a=0;t.children.length>a;a++)this.renderDisplayObject(t.children[a]);this.context.setTransform(1,0,0,1,0,0)}},n.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var n=1;r-2>n;n++){var a=2*n,s=i[a],o=i[a+2],h=i[a+4],l=i[a+1],u=i[a+3],c=i[a+5];e.moveTo(s,l),e.lineTo(o,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},n.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;e.globalAlpha=t.worldAlpha,t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},n.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,n=i.length/2;this.count++;for(var a=1;n-2>a;a++){var s=2*a,o=i[s],h=i[s+2],l=i[s+4],u=i[s+1],c=i[s+3],d=i[s+5],p=r[s]*t.texture.width,f=r[s+2]*t.texture.width,g=r[s+4]*t.texture.width,v=r[s+1]*t.texture.height,m=r[s+3]*t.texture.height,x=r[s+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var b=p*m+v*g+f*x-m*g-v*f-p*x,y=o*m+v*l+h*x-m*l-v*h-o*x,T=p*h+o*g+f*l-h*g-o*f-p*l,A=p*m*l+v*h*g+o*f*x-o*m*g-v*f*l-p*h*x,w=u*m+v*d+c*x-m*d-v*c-u*x,_=p*c+u*g+f*d-c*g-u*f-p*d,R=p*m*d+v*c*g+u*f*x-u*m*g-v*f*d-p*c*x;e.transform(y/b,w/b,T/b,_/b,A/b,R/b),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},n.CanvasGraphics=function(){},n.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,r=0;t.graphicsData.length>r;r++){var a=t.graphicsData[r],s=a.points;if(e.strokeStyle=color="#"+("00000"+(0|a.lineColor).toString(16)).substr(-6),e.lineWidth=a.lineWidth,a.type==n.Graphics.POLY){e.beginPath(),e.moveTo(s[0],s[1]);for(var o=1;s.length/2>o;o++)e.lineTo(s[2*o],s[2*o+1]);s[0]==s[s.length-2]&&s[1]==s[s.length-1]&&e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}else if(a.type==n.Graphics.RECT)a.fillColor&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fillRect(s[0],s[1],s[2],s[3])),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.strokeRect(s[0],s[1],s[2],s[3]));else if(a.type==n.Graphics.CIRC)e.beginPath(),e.arc(s[0],s[1],s[2],0,2*Math.PI),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke());else if(a.type==n.Graphics.ELIP){var h=a.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,v=c+l,m=d+u,x=c+l/2,b=d+u/2;e.moveTo(c,b),e.bezierCurveTo(c,b-g,x-f,d,x,d),e.bezierCurveTo(x+f,d,v,b-g,v,b),e.bezierCurveTo(v,b+g,x+f,m,x,m),e.bezierCurveTo(x-f,m,c,b+g,c,b),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}}},n.Graphics=function(){n.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=2,this.lineColor="#FF0000",this.graphicsData=[],this.currentPath={points:[]}},n.Graphics.constructor=n.Graphics,n.Graphics.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Graphics.prototype.lineStyle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=void 0==i?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.graphicsData.push(this.currentPath)},n.Graphics.prototype.moveTo=function(t,e){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath)},n.Graphics.prototype.lineTo=function(t,e){this.currentPath.points.push(t,e),this.dirty=!0},n.Graphics.prototype.beginFill=function(t,e){this.filling=!0,this.fillColor=t||0,this.fillAlpha=e||1},n.Graphics.prototype.endFill=function(){this.filling=!1,this.fillColor=null,this.fillAlpha=1},n.Graphics.prototype.drawRect=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawCircle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:n.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawElipse=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.clear=function(){this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[]},n.Graphics.POLY=0,n.Graphics.RECT=1,n.Graphics.CIRC=2,n.Graphics.ELIP=3,n.Strip=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=n.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Strip.constructor=n.Strip,n.Strip.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},n.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Rope=function(t,e){n.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},n.Rope.constructor=n.Rope,n.Rope.prototype=Object.create(n.Strip.prototype),n.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,n=t[0],a=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var s=t.length,o=1;s>o;o++){var a=t[o],h=4*o,l=o/(s-1);o%2?(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1):(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,n=a}}},n.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],a={x:0,y:0},s=t[0];this.count-=.2,i[0]=s.x+a.x,i[1]=s.y+a.y,i[2]=s.x-a.x,i[3]=s.y-a.y;for(var o=t.length,h=1;o>h;h++){var s=t[h],l=4*h;e=t.length-1>h?t[h+1]:s,a.y=-(e.x-r.x),a.x=e.y-r.y;var u=10*(1-h/(o-1));u>1&&(u=1);var c=Math.sqrt(a.x*a.x+a.y*a.y),d=this.texture.height/2;a.x/=c,a.y/=c,a.x*=d,a.y*=d,i[l]=s.x+a.x,i[l+1]=s.y+a.y,i[l+2]=s.x-a.x,i[l+3]=s.y-a.y,r=s}n.DisplayObjectContainer.prototype.updateTransform.call(this)}},n.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0 },n.TilingSprite=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new n.Point(1,1),this.tilePosition=new n.Point(0,0),this.blendMode=n.blendModes.NORMAL},n.TilingSprite.constructor=n.TilingSprite,n.TilingSprite.prototype=Object.create(n.DisplayObjectContainer.prototype),n.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},n.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Spine=function(t){if(n.DisplayObjectContainer.call(this),this.spineData=n.AnimCache[t],!this.spineData)throw Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+t);this.count=0,this.sprites=[],this.skeleton=new u.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new u.AnimationStateData(this.spineData),this.state=new u.AnimationState(this.stateData);for(var e=0;this.skeleton.drawOrder.length>e;e++){var i=this.skeleton.drawOrder[e].data.attachmentName;n.TextureCache[i]||(i+=".png");var r=new n.Sprite(n.Texture.fromFrame(i));r.anchor.x=r.anchor.y=.5,this.addChild(r),this.sprites.push(r)}},n.Spine.constructor=n.Spine,n.Spine.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Spine.prototype.updateTransform=function(){this.state.update(1/60),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var t=0;this.skeleton.drawOrder.length>t;t++){var e=this.skeleton.drawOrder[t],i=e.bone.worldX+e.attachment.x*e.bone.m00+e.attachment.y*e.bone.m01+.5*e.attachment.width,r=e.bone.worldY+e.attachment.x*e.bone.m10+e.attachment.y*e.bone.m11+.5*e.attachment.height;if(e.cacheName!=e.attachment.name){var a=e.attachment.name;n.TextureCache[a]||(a+=".png"),this.sprites[t].setTexture(n.TextureCache[a]),e.cacheName=e.attachment.name}i+=-(e.attachment.width*(e.bone.worldScaleX+e.attachment.scaleX-1)>>1),r+=-(e.attachment.height*(e.bone.worldScaleY+e.attachment.scaleY-1)>>1),this.sprites[t].position.x=i,this.sprites[t].position.y=r,this.sprites[t].rotation=-(e.bone.worldRotation+e.attachment.rotation)*(Math.PI/180)}n.DisplayObjectContainer.prototype.updateTransform.call(this)};var u={};u.BoneData=function(t,e){this.name=t,this.parent=e},u.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},u.SlotData=function(t,e){this.name=t,this.boneData=e},u.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},u.Bone=function(t,e){this.data=t,this.parent=e,this.setToSetupPose()},u.Bone.yDown=!1,u.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(t,e){var i=this.parent;null!=i?(this.worldX=this.x*i.m00+this.y*i.m01+i.worldX,this.worldY=this.x*i.m10+this.y*i.m11+i.worldY,this.worldScaleX=i.worldScaleX*this.scaleX,this.worldScaleY=i.worldScaleY*this.scaleY,this.worldRotation=i.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var r=this.worldRotation*Math.PI/180,n=Math.cos(r),a=Math.sin(r);this.m00=n*this.worldScaleX,this.m10=a*this.worldScaleX,this.m01=-a*this.worldScaleY,this.m11=n*this.worldScaleY,t&&(this.m00=-this.m00,this.m01=-this.m01),e&&(this.m10=-this.m10,this.m11=-this.m11),u.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY}},u.Slot=function(t,e,i){this.data=t,this.skeleton=e,this.bone=i,this.setToSetupPose()},u.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(t){this.attachment=t,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(t){this._attachmentTime=this.skeleton.time-t},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var t=this.data;this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a;for(var e=this.skeleton.data.slots,i=0,r=e.length;r>i;i++)if(e[i]==t){this.setAttachment(t.attachmentName?this.skeleton.getAttachmentBySlotIndex(i,t.attachmentName):null);break}}},u.Skin=function(t){this.name=t,this.attachments={}},u.Skin.prototype={addAttachment:function(t,e,i){this.attachments[t+":"+e]=i},getAttachment:function(t,e){return this.attachments[t+":"+e]},_attachAll:function(t,e){for(var i in e.attachments){var r=i.indexOf(":"),n=parseInt(i.substring(0,r)),a=i.substring(r+1),s=t.slots[n];if(s.attachment&&s.attachment.name==a){var o=this.getAttachment(n,a);o&&s.setAttachment(o)}}}},u.Animation=function(t,e,i){this.name=t,this.timelines=e,this.duration=i},u.Animation.prototype={apply:function(t,e,i){i&&0!=this.duration&&(e%=this.duration);for(var r=this.timelines,n=0,a=r.length;a>n;n++)r[n].apply(t,e,1)},mix:function(t,e,i,r){i&&0!=this.duration&&(e%=this.duration);for(var n=this.timelines,a=0,s=n.length;s>a;a++)n[a].apply(t,e,r)}},u.binarySearch=function(t,e,i){var r=0,n=Math.floor(t.length/i)-2;if(0==n)return i;for(var a=n>>>1;;){if(e>=t[(a+1)*i]?r=a+1:n=a,r==n)return(r+1)*i;a=r+n>>>1}},u.linearSearch=function(t,e,i){for(var r=0,n=t.length-i;n>=r;r+=i)if(t[r]>e)return r;return-1},u.Curves=function(t){this.curves=[],this.curves.length=6*(t-1)},u.Curves.prototype={setLinear:function(t){this.curves[6*t]=0},setStepped:function(t){this.curves[6*t]=-1},setCurve:function(t,e,i,r,n){var a=.1,s=a*a,o=s*a,h=3*a,l=3*s,u=6*s,c=6*o,d=2*-e+r,p=2*-i+n,f=3*(e-r)+1,g=3*(i-n)+1,v=6*t,m=this.curves;m[v]=e*h+d*l+f*o,m[v+1]=i*h+p*l+g*o,m[v+2]=d*u+f*c,m[v+3]=p*u+g*c,m[v+4]=f*c,m[v+5]=g*c},getCurvePercent:function(t,e){e=0>e?0:e>1?1:e;var i=6*t,r=this.curves,n=r[i];if(!n)return e;if(-1==n)return 0;for(var a=r[i+1],s=r[i+2],o=r[i+3],h=r[i+4],l=r[i+5],u=n,c=a,d=8;;){if(u>=e){var p=u-n,f=c-a;return f+(c-f)*(e-p)/(u-p)}if(0==d)break;d--,n+=s,a+=o,s+=h,o+=l,u+=n,c+=a}return c+(1-c)*(e-u)/(1-u)}},u.RotateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=2*t},u.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){t*=2,this.frames[t]=e,this.frames[t+1]=i},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-2]){for(var a=n.data.rotation+r[r.length-1]-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;return n.rotation+=a*i,void 0}var s=u.binarySearch(r,e,2),o=r[s-1],h=r[s],l=1-(e-h)/(r[s-2]-h);l=this.curves.getCurvePercent(s/2-1,l);for(var a=r[s+1]-o;a>180;)a-=360;for(;-180>a;)a+=360;for(a=n.data.rotation+(o+a*l)-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;n.rotation+=a*i}}},u.TranslateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.x+=(n.data.x+r[r.length-2]-n.x)*i,n.y+=(n.data.y+r[r.length-1]-n.y)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.x+=(n.data.x+s+(r[a+1]-s)*l-n.x)*i,n.y+=(n.data.y+o+(r[a+2]-o)*l-n.y)*i}}},u.ScaleTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.scaleX+=(n.data.scaleX-1+r[r.length-2]-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+r[r.length-1]-n.scaleY)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.scaleX+=(n.data.scaleX-1+s+(r[a+1]-s)*l-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+o+(r[a+2]-o)*l-n.scaleY)*i}}},u.ColorTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=5*t},u.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e){t*=5,this.frames[t]=e,this.frames[t+1]=r,this.frames[t+2]=g,this.frames[t+3]=b,this.frames[t+4]=a},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.slots[this.slotIndex];if(e>=r[r.length-5]){var a=r.length-1;return n.r=r[a-3],n.g=r[a-2],n.b=r[a-1],n.a=r[a],void 0}var s=u.binarySearch(r,e,5),o=r[s-4],h=r[s-3],l=r[s-2],c=r[s-1],d=r[s],p=1-(e-d)/(r[s-5]-d);p=this.curves.getCurvePercent(s/5-1,p);var f=o+(r[s+1]-o)*p,g=h+(r[s+2]-h)*p,v=l+(r[s+3]-l)*p,m=c+(r[s+4]-c)*p;1>i?(n.r+=(f-n.r)*i,n.g+=(g-n.g)*i,n.b+=(v-n.b)*i,n.a+=(m-n.a)*i):(n.r=f,n.g=g,n.b=v,n.a=m)}}},u.AttachmentTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=t,this.attachmentNames=[],this.attachmentNames.length=t},u.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){this.frames[t]=e,this.attachmentNames[t]=i},apply:function(t,e){var i=this.frames;if(!(i[0]>e)){var r;r=e>=i[i.length-1]?i.length-1:u.binarySearch(i,e,1)-1;var n=this.attachmentNames[r];t.slots[this.slotIndex].setAttachment(n?t.getAttachmentBySlotIndex(this.slotIndex,n):null)}}},u.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},u.SkeletonData.prototype={defaultSkin:null,findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return slot[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSkin:function(t){for(var e=this.skins,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findAnimation:function(t){for(var e=this.animations,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null}},u.Skeleton=function(t){this.data=t,this.bones=[];for(var e=0,i=t.bones.length;i>e;e++){var r=t.bones[e],n=r.parent?this.bones[t.bones.indexOf(r.parent)]:null;this.bones.push(new u.Bone(r,n))}this.slots=[],this.drawOrder=[];for(var e=0,i=t.slots.length;i>e;e++){var a=t.slots[e],s=this.bones[t.bones.indexOf(a.boneData)],o=new u.Slot(a,this,s);this.slots.push(o),this.drawOrder.push(o)}},u.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var t=this.flipX,e=this.flipY,i=this.bones,r=0,n=i.length;n>r;r++)i[r].updateWorldTransform(t,e)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var t=this.bones,e=0,i=t.length;i>e;e++)t[e].setToSetupPose()},setSlotsToSetupPose:function(){for(var t=this.slots,e=0,i=t.length;i>e;e++)t[e].setToSetupPose(e)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},setSkinByName:function(t){var e=this.data.findSkin(t);if(!e)throw"Skin not found: "+t;this.setSkin(e)},setSkin:function(t){this.skin&&t&&t._attachAll(this,this.skin),this.skin=t},getAttachmentBySlotName:function(t,e){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(t),e)},getAttachmentBySlotIndex:function(t,e){if(this.skin){var i=this.skin.getAttachment(t,e);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},setAttachment:function(t,e){for(var i=this.slots,r=0,n=i.size;n>r;r++){var a=i[r];if(a.data.name==t){var s=null;if(e&&(s=this.getAttachment(r,e),null==s))throw"Attachment not found: "+e+", for slot: "+t;return a.setAttachment(s),void 0}}throw"Slot not found: "+t},update:function(t){time+=t}},u.AttachmentType={region:0},u.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},u.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(t,e,i,r,n){var a=this.uvs;n?(a[2]=t,a[3]=r,a[4]=t,a[5]=e,a[6]=i,a[7]=e,a[0]=i,a[1]=r):(a[0]=t,a[1]=r,a[2]=t,a[3]=e,a[4]=i,a[5]=e,a[6]=i,a[7]=r)},updateOffset:function(){var t=this.width/this.regionOriginalWidth*this.scaleX,e=this.height/this.regionOriginalHeight*this.scaleY,i=-this.width/2*this.scaleX+this.regionOffsetX*t,r=-this.height/2*this.scaleY+this.regionOffsetY*e,n=i+this.regionWidth*t,a=r+this.regionHeight*e,s=this.rotation*Math.PI/180,o=Math.cos(s),h=Math.sin(s),l=i*o+this.x,u=i*h,c=r*o+this.y,d=r*h,p=n*o+this.x,f=n*h,g=a*o+this.y,v=a*h,m=this.offset;m[0]=l-d,m[1]=c+u,m[2]=l-v,m[3]=g+u,m[4]=p-v,m[5]=g+f,m[6]=p-d,m[7]=c+f},computeVertices:function(t,e,i,r){t+=i.worldX,e+=i.worldY;var n=i.m00,a=i.m01,s=i.m10,o=i.m11,h=this.offset;r[0]=h[0]*n+h[1]*a+t,r[1]=h[0]*s+h[1]*o+e,r[2]=h[2]*n+h[3]*a+t,r[3]=h[2]*s+h[3]*o+e,r[4]=h[4]*n+h[5]*a+t,r[5]=h[4]*s+h[5]*o+e,r[6]=h[6]*n+h[7]*a+t,r[7]=h[6]*s+h[7]*o+e}},u.AnimationStateData=function(t){this.skeletonData=t,this.animationToMixTime={}},u.AnimationStateData.prototype={setMixByName:function(t,e,i){var r=this.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;var n=this.skeletonData.findAnimation(e);if(!n)throw"Animation not found: "+e;this.setMix(r,n,i)},setMix:function(t,e,i){this.animationToMixTime[t.name+":"+e.name]=i},getMix:function(t,e){var i=this.animationToMixTime[t.name+":"+e.name];return i?i:0}},u.AnimationState=function(t){this.data=t,this.queue=[]},u.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(t){if(this.currentTime+=t,this.previousTime+=t,this.mixTime+=t,this.queue.length>0){var e=this.queue[0];this.currentTime>=e.delay&&(this._setAnimation(e.animation,e.loop),this.queue.shift())}},apply:function(t){if(this.current)if(this.previous){this.previous.apply(t,this.previousTime,this.previousLoop);var e=this.mixTime/this.mixDuration;e>=1&&(e=1,this.previous=null),this.current.mix(t,this.currentTime,this.currentLoop,e)}else this.current.apply(t,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(t,e){this.previous=null,t&&this.current&&(this.mixDuration=this.data.getMix(this.current,t),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=t,this.currentLoop=e,this.currentTime=0},setAnimationByName:function(t,e){var i=this.data.skeletonData.findAnimation(t);if(!i)throw"Animation not found: "+t;this.setAnimation(i,e)},setAnimation:function(t,e){this.queue.length=0,this._setAnimation(t,e)},addAnimationByName:function(t,e,i){var r=this.data.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;this.addAnimation(r,e,i)},addAnimation:function(t,e,i){var r={};if(r.animation=t,r.loop=e,!i||0>=i){var n=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;i=null!=n?n.duration-this.data.getMix(n,t)+(i||0):0}r.delay=i,this.queue.push(r)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},u.SkeletonJson=function(t){this.attachmentLoader=t},u.SkeletonJson.prototype={scale:1,readSkeletonData:function(t){for(var e=new u.SkeletonData,i=t.bones,r=0,n=i.length;n>r;r++){var a=i[r],s=null;if(a.parent&&(s=e.findBone(a.parent),!s))throw"Parent bone not found: "+a.parent;var o=new u.BoneData(a.name,s);o.length=(a.length||0)*this.scale,o.x=(a.x||0)*this.scale,o.y=(a.y||0)*this.scale,o.rotation=a.rotation||0,o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1,e.bones.push(o)}for(var h=t.slots,r=0,n=h.length;n>r;r++){var l=h[r],o=e.findBone(l.bone);if(!o)throw"Slot bone not found: "+l.bone;var c=new u.SlotData(l.name,o),d=l.color;d&&(c.r=u.SkeletonJson.toColor(d,0),c.g=u.SkeletonJson.toColor(d,1),c.b=u.SkeletonJson.toColor(d,2),c.a=u.SkeletonJson.toColor(d,3)),c.attachmentName=l.attachment,e.slots.push(c)}var p=t.skins;for(var f in p)if(p.hasOwnProperty(f)){var g=p[f],v=new u.Skin(f);for(var m in g)if(g.hasOwnProperty(m)){var x=e.findSlotIndex(m),b=g[m];for(var y in b)if(b.hasOwnProperty(y)){var T=this.readAttachment(v,y,b[y]);null!=T&&v.addAttachment(x,y,T)}}e.skins.push(v),"default"==v.name&&(e.defaultSkin=v)}var A=t.animations;for(var w in A)A.hasOwnProperty(w)&&this.readAnimation(w,A[w],e);return e},readAttachment:function(t,e,i){e=i.name||e;var r=u.AttachmentType[i.type||"region"],n=new u.RegionAttachment;return n.name=e,r==u.AttachmentType.region&&(n.x=(i.x||0)*this.scale,n.y=(i.y||0)*this.scale,n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1,n.rotation=i.rotation||0,n.width=(i.width||32)*this.scale,n.height=(i.height||32)*this.scale,n.updateOffset()),n},readAnimation:function(t,e,i){var r=[],n=0,a=e.bones;for(var s in a)if(a.hasOwnProperty(s)){var o=i.findBoneIndex(s);if(-1==o)throw"Bone not found: "+s;var h=a[s];for(var l in h)if(h.hasOwnProperty(l)){var c=h[l];if("rotate"==l){var d=new u.RotateTimeline(c.length);d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p,v.time,v.angle),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[2*d.getFrameCount()-2])}else{if("translate"!=l&&"scale"!=l)throw"Invalid timeline type for a bone: "+l+" ("+s+")";var d,m=1;"scale"==l?d=new u.ScaleTimeline(c.length):(d=new u.TranslateTimeline(c.length),m=this.scale),d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],x=(v.x||0)*m,b=(v.y||0)*m;d.setFrame(p,v.time,x,b),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[3*d.getFrameCount()-3])}}}var y=e.slots;for(var T in y)if(y.hasOwnProperty(T)){var A=y[T],w=i.findSlotIndex(T);for(var l in A)if(A.hasOwnProperty(l)){var c=A[l];if("color"==l){var d=new u.ColorTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],_=v.color,R=u.SkeletonJson.toColor(_,0),S=u.SkeletonJson.toColor(_,1),C=u.SkeletonJson.toColor(_,2),L=u.SkeletonJson.toColor(_,3);d.setFrame(p,v.time,R,S,C,L),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[5*d.getFrameCount()-5])}else{if("attachment"!=l)throw"Invalid timeline type for a slot: "+l+" ("+T+")";var d=new u.AttachmentTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p++,v.time,v.name)}r.push(d),n=Math.max(n,d.frames[Math.floor(d.getFrameCount())-1])}}}i.animations.push(new u.Animation(t,r,n))}},u.SkeletonJson.readCurve=function(t,e,i){var r=i.curve;r&&("stepped"==r?t.curves.setStepped(e):r instanceof Array&&t.curves.setCurve(e,r[0],r[1],r[2],r[3]))},u.SkeletonJson.toColor=function(t,e){if(8!=t.length)throw"Color hexidecimal length must be 8, recieved: "+t;return parseInt(t.substring(2*e,2),16)/255},u.Atlas=function(t,e){this.textureLoader=e,this.pages=[],this.regions=[];var i=new u.AtlasReader(t),r=[];r.length=4;for(var n=null;;){var a=i.readLine();if(null==a)break;if(a=i.trim(a),0==a.length)n=null;else if(n){var s=new u.AtlasRegion;s.name=a,s.page=n,s.rotate="true"==i.readValue(),i.readTuple(r);var o=parseInt(r[0]),h=parseInt(r[1]);i.readTuple(r);var l=parseInt(r[0]),c=parseInt(r[1]);s.u=o/n.width,s.v=h/n.height,s.rotate?(s.u2=(o+c)/n.width,s.v2=(h+l)/n.height):(s.u2=(o+l)/n.width,s.v2=(h+c)/n.height),s.x=o,s.y=h,s.width=Math.abs(l),s.height=Math.abs(c),4==i.readTuple(r)&&(s.splits=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],4==i.readTuple(r)&&(s.pads=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],i.readTuple(r))),s.originalWidth=parseInt(r[0]),s.originalHeight=parseInt(r[1]),i.readTuple(r),s.offsetX=parseInt(r[0]),s.offsetY=parseInt(r[1]),s.index=parseInt(i.readValue()),this.regions.push(s)}else{n=new u.AtlasPage,n.name=a,n.format=u.Atlas.Format[i.readValue()],i.readTuple(r),n.minFilter=u.Atlas.TextureFilter[r[0]],n.magFilter=u.Atlas.TextureFilter[r[1]];var d=i.readValue();n.uWrap=u.Atlas.TextureWrap.clampToEdge,n.vWrap=u.Atlas.TextureWrap.clampToEdge,"x"==d?n.uWrap=u.Atlas.TextureWrap.repeat:"y"==d?n.vWrap=u.Atlas.TextureWrap.repeat:"xy"==d&&(n.uWrap=n.vWrap=u.Atlas.TextureWrap.repeat),e.load(n,a),this.pages.push(n)}}},u.Atlas.prototype={findRegion:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},dispose:function(){for(var t=this.pages,e=0,i=t.length;i>e;e++)this.textureLoader.unload(t[e].rendererObject)},updateUVs:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++){var n=e[i];n.page==t&&(n.u=n.x/t.width,n.v=n.y/t.height,n.rotate?(n.u2=(n.x+n.height)/t.width,n.v2=(n.y+n.width)/t.height):(n.u2=(n.x+n.width)/t.width,n.v2=(n.y+n.height)/t.height))}}},u.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},u.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},u.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},u.AtlasPage=function(){},u.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},u.AtlasRegion=function(){},u.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},u.AtlasReader=function(t){this.lines=t.split(/\r\n|\r|\n/)},u.AtlasReader.prototype={index:0,trim:function(t){return t.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw"Invalid line: "+t;return this.trim(t.substring(e+1))},readTuple:function(t){var e=this.readLine(),i=e.indexOf(":");if(-1==i)throw"Invalid line: "+e;for(var r=0,n=i+1;3>r;r++){var a=e.indexOf(",",n);if(-1==a){if(0==r)throw"Invalid line: "+e;break}t[r]=this.trim(e.substr(n,a-n)),n=a+1}return t[r]=this.trim(e.substring(n)),r+1}},u.AtlasAttachmentLoader=function(t){this.atlas=t},u.AtlasAttachmentLoader.prototype={newAttachment:function(t,e,i){switch(e){case u.AttachmentType.region:var r=this.atlas.findRegion(i);if(!r)throw"Region not found in atlas: "+i+" ("+e+")";var n=new u.RegionAttachment(i);return n.rendererObject=r,n.setUVs(r.u,r.v,r.u2,r.v2,r.rotate),n.regionOffsetX=r.offsetX,n.regionOffsetY=r.offsetY,n.regionWidth=r.width,n.regionHeight=r.height,n.regionOriginalWidth=r.originalWidth,n.regionOriginalHeight=r.originalHeight,n}throw"Unknown attachment type: "+e}},n.AnimCache={},u.Bone.yDown=!0,n.CustomRenderable=function(){n.DisplayObject.call(this)},n.CustomRenderable.constructor=n.CustomRenderable,n.CustomRenderable.prototype=Object.create(n.DisplayObject.prototype),n.CustomRenderable.prototype.renderCanvas=function(){},n.CustomRenderable.prototype.initWebGL=function(){},n.CustomRenderable.prototype.renderWebGL=function(){},n.BaseTextureCache={},n.texturesToUpdate=[],n.texturesToDestroy=[],n.BaseTexture=function(t){if(n.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,n.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);this._powerOf2=!1}},n.BaseTexture.constructor=n.BaseTexture,n.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,n.texturesToDestroy.push(this)},n.BaseTexture.fromImage=function(t,e){var i=n.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new n.BaseTexture(r),n.BaseTextureCache[t]=i}return i},n.TextureCache={},n.FrameCache={},n.Texture=function(t,e){if(n.EventTarget.call(this),e||(this.noFrame=!0,e=new n.Rectangle(0,0,1,1)),this.trim=new n.Point,t instanceof n.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new n.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},n.Texture.constructor=n.Texture,n.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new n.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},n.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},n.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,n.Texture.frameUpdates.push(this)},n.Texture.fromImage=function(t,e){var i=n.TextureCache[t];return i||(i=new n.Texture(n.BaseTexture.fromImage(t,e)),n.TextureCache[t]=i),i},n.Texture.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},n.Texture.fromCanvas=function(t){var e=new n.BaseTexture(t);return new n.Texture(e)},n.Texture.addTextureToCache=function(t,e){n.TextureCache[e]=t},n.Texture.removeTextureFromCache=function(t){var e=n.TextureCache[t];return n.TextureCache[t]=null,e},n.Texture.frameUpdates=[],n.RenderTexture=function(t,e){n.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=n.mat3.create(),this.frame=new n.Rectangle(0,0,this.width,this.height),n.gl?this.initWebGL():this.initCanvas()},n.RenderTexture.constructor=n.RenderTexture,n.RenderTexture.prototype=Object.create(n.Texture.prototype),n.RenderTexture.prototype.initWebGL=function(){var t=n.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new n.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new n.Point(this.width/2,this.height/2),this.projectionMatrix=n.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},n.RenderTexture.prototype.initCanvas=function(){this.renderer=new n.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new n.BaseTexture(this.renderer.view),this.frame=new n.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},n.RenderTexture.prototype.renderWebGL=function(t,e){var i=n.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=n.mat3.create(),t.worldTransform[4]=-1,t.worldTransform[5]=2*this.projection.y;for(var a=0,s=r.length;s>a;a++)r[a].updateTransform();var o=t.__renderGroup;o?t==o.root?o.render(this.projection):o.renderSpecific(t,this.projection):(this.renderGroup||(this.renderGroup=new n.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projection))},n.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=n.mat3.create();for(var r=0,a=i.length;a>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),n.texturesToUpdate.push(this.baseTexture)},n.AssetLoader=function(t){n.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:n.ImageLoader,jpeg:n.ImageLoader,png:n.ImageLoader,gif:n.ImageLoader,json:n.JsonLoader,anim:n.SpineLoader,xml:n.BitmapFontLoader,fnt:n.BitmapFontLoader}},n.AssetLoader.constructor=n.AssetLoader,n.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),n=this.loadersByType[r];if(!n)throw Error(r+" is an unsupported file type");var a=new n(i,this.crossorigin);a.addEventListener("loaded",function(){t.onAssetLoaded()}),a.load()}},n.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},n.JsonLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.crossorigin=e,this.loaded=!1},n.JsonLoader.constructor=n.JsonLoader,n.JsonLoader.prototype.load=function(){this.ajaxRequest=new l;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},n.JsonLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState)if(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))if(this.json=JSON.parse(this.ajaxRequest.responseText),this.json.frames){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0))}i.load()}else if(this.json.bones){var o=new u.SkeletonJson,h=o.readSkeletonData(this.json);n.AnimCache[this.url]=h,this.onLoaded()}else this.onLoaded();else this.onError()},n.JsonLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},n.JsonLoader.prototype.onError=function(){this.dispatchEvent({type:"error",content:this})},n.SpriteSheetLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},n.SpriteSheetLoader.constructor=n.SpriteSheetLoader,n.SpriteSheetLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpriteSheetLoader.prototype.onJSONLoaded=function(){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0)) }i.load()},n.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.ImageLoader=function(t,e){n.EventTarget.call(this),this.texture=n.Texture.fromImage(t,e)},n.ImageLoader.constructor=n.ImageLoader,n.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},n.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.BitmapFontLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},n.BitmapFontLoader.constructor=n.BitmapFontLoader,n.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},n.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new n.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],a=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(a.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var s=this.ajaxRequest.responseXML.getElementsByTagName("char"),o=0;s.length>o;o++){var h=parseInt(s[o].attributes.getNamedItem("id").nodeValue,10),l={x:parseInt(s[o].attributes.getNamedItem("x").nodeValue,10),y:parseInt(s[o].attributes.getNamedItem("y").nodeValue,10),width:parseInt(s[o].attributes.getNamedItem("width").nodeValue,10),height:parseInt(s[o].attributes.getNamedItem("height").nodeValue,10)};n.TextureCache[h]=new n.Texture(this.texture,l),i.chars[h]={xOffset:parseInt(s[o].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(s[o].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(s[o].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{},texture:new n.Texture(this.texture,l)}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(o=0;u.length>o;o++){var c=parseInt(u[o].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[o].attributes.getNamedItem("second").nodeValue,10),p=parseInt(u[o].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=p}n.BitmapText.fonts[i.font]=i;var f=this;e.addEventListener("loaded",function(){f.onLoaded()}),e.load()}},n.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.SpineLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.crossorigin=e,this.loaded=!1},n.SpineLoader.constructor=n.SpineLoader,n.SpineLoader.prototype.load=function(){new n.JsonLoader(this.url,this.crossorigin),jsonLoader.addEventListener("loaded",function(t){scope.json=t.content.json,scope.onJSONLoaded()}),jsonLoader.load()},n.SpineLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpineLoader.prototype.onJSONLoaded=function(){var t=new u.SkeletonJson,e=t.readSkeletonData(this.json);n.AnimCache[this.url]=e,this.onLoaded()},n.SpineLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports.PIXI=n):i.PIXI=n}).call(this); \ No newline at end of file diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index 25cca17..0391561 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index 25cca17..0391561 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 12 - Spine/pixi.js b/examples/example 12 - Spine/pixi.js index 25cca17..0391561 100644 --- a/examples/example 12 - Spine/pixi.js +++ b/examples/example 12 - Spine/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 13 - Graphics/index.html b/examples/example 13 - Graphics/index.html index e6996b7..d847ef2 100644 --- a/examples/example 13 - Graphics/index.html +++ b/examples/example 13 - Graphics/index.html @@ -80,17 +80,40 @@ stage.addChild(graphics); + // lets create moving shape + var thing = new PIXI.Graphics(); + stage.addChild(thing); + thing.position.x = 620/2; + thing.position.y = 380/2; + + var count = 0; + stage.click = stage.tap = function() { graphics.lineStyle(Math.random() * 30, Math.random() * 0xFFFFFF, 1); graphics.moveTo(Math.random() * 620,Math.random() * 380); graphics.lineTo(Math.random() * 620,Math.random() * 380); - } requestAnimFrame(animate); function animate() { + + thing.clear(); + + count += 0.1; + + thing.clear(); + thing.lineStyle(30, 0xff0000, 1); + thing.beginFill(0xffFF00, 0.5); + + thing.moveTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + thing.lineTo(120 + Math.cos(count) * 20, -100 + Math.sin(count)* 20); + thing.lineTo(120 + Math.sin(count) * 20, 100 + Math.cos(count)* 20); + thing.lineTo(-120 + Math.cos(count)* 20, 100 + Math.sin(count)* 20); + thing.lineTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + + thing.rotation = count * 0.1; renderer.render(stage); requestAnimFrame( animate ); } diff --git a/examples/example 13 - Graphics/pixi.js b/examples/example 13 - Graphics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 13 - Graphics/pixi.js +++ b/examples/example 13 - Graphics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index 25cca17..0391561 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index 25cca17..0391561 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 4 - Balls/pixi.js b/examples/example 4 - Balls/pixi.js index 25cca17..0391561 100644 --- a/examples/example 4 - Balls/pixi.js +++ b/examples/example 4 - Balls/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.js b/bin/pixi.js index 51d6836..96307b0 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -9,7 +9,7 @@ * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; +(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[],t._webGL.indices=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; if(0!=r.length){var a=new n.Point(r[0],r[1]),s=new n.Point(r[r.length-2],r[r.length-1]);if(a.x==s.x&&a.y==s.y){r.pop(),r.pop(),s=new n.Point(r[r.length-2],r[r.length-1]);var o=s.x+.5*(a.x-s.x),h=s.y+.5*(a.y-s.y);r.unshift(o,h),r.push(o,h)}var l,u,c,d,p,f,g,v,m,x,b,y,T,A,w,_,R,S,C,L,E,B=i.points,F=i.indices,P=r.length/2,G=r.length,I=B.length/6,D=t.lineWidth/2,M=e(t.lineColor),O=t.lineAlpha,W=M[0]*O,U=M[1]*O,j=M[2]*O;l=r[0],u=r[1],c=r[2],d=r[3],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(l-g,u-v,W,U,j,O),B.push(l+g,u+v,W,U,j,O);for(var k=1;P-1>k;k++)l=r[2*(k-1)],u=r[2*(k-1)+1],c=r[2*k],d=r[2*k+1],p=r[2*(k+1)],f=r[2*(k+1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,m=-(d-f),x=c-p,E=Math.sqrt(m*m+x*x),m/=E,x/=E,m*=D,x*=D,T=-v+u-(-v+d),A=-g+c-(-g+l),w=(-g+l)*(-v+d)-(-g+c)*(-v+u),_=-x+f-(-x+d),R=-m+c-(-m+p),S=(-m+p)*(-x+d)-(-m+c)*(-x+f),C=T*R-_*A,0==C&&(C+=1),px=(A*S-R*w)/C,py=(_*w-T*S)/C,L=(px-c)*(px-c)+(py-d)+(py-d),L>19600?(b=g-m,y=v-x,E=Math.sqrt(b*b+y*y),b/=E,y/=E,b*=D,y*=D,B.push(c-b,d-y),B.push(W,U,j,O),B.push(c+b,d+y),B.push(W,U,j,O),B.push(c-b,d-y),B.push(W,U,j,O),G++):(B.push(px,py),B.push(W,U,j,O),B.push(c-(px-c),d-(py-d)),B.push(W,U,j,O));l=r[2*(P-2)],u=r[2*(P-2)+1],c=r[2*(P-1)],d=r[2*(P-1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(c-g,d-v),B.push(W,U,j,O),B.push(c+g,d+v),B.push(W,U,j,O),F.push(I);for(var k=0;G>k;k++)F.push(I++);F.push(I-1)}},n.WebGLGraphics.buildPoly=function(t,i){var r=t.points;if(!(6>r.length)){for(var a=i.points,s=i.indices,o=r.length/2,h=e(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=n.PolyK.Triangulate(r),f=a.length/6,g=0;p.length>g;g+=3)s.push(p[g]+f),s.push(p[g]+f),s.push(p[g+1]+f),s.push(p[g+2]+f),s.push(p[g+2]+f);for(var g=0;o>g;g++)a.push(r[2*g],r[2*g+1],u,c,d,l)}},n._defaultFrame=new n.Rectangle(0,0,1,1),n.gl,n.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var a=this;this.view.addEventListener("webglcontextlost",function(t){a.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){a.handleContextRestored(t)},!1),this.batchs=[];try{n.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!0,premultipliedAlpha:!1})}catch(s){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}n.initPrimitiveShader(),n.initDefaultShader(),n.initDefaultStripShader(),n.activateDefaultShader();var o=this.gl;n.WebGLRenderer.gl=o,this.batch=new n.WebGLBatch(o),o.disable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.enable(o.BLEND),o.colorMask(!0,!0,!0,this.transparent),n.projection=new n.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new n.WebGLRenderGroup(this.gl)},n.WebGLRenderer.constructor=n.WebGLRenderer,n.WebGLRenderer.getBatch=function(){return 0==n._batchs.length?new n.WebGLBatch(n.WebGLRenderer.gl):n._batchs.pop()},n.WebGLRenderer.returnBatch=function(t){t.clean(),n._batchs.push(t)},n.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),n.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],!this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(n.projection),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0){for(var i=0;n.Texture.frameUpdates.length>i;i++)n.Texture.frameUpdates[i].updateFrame=!1;n.Texture.frameUpdates=[]}}},n.WebGLRenderer.updateTextures=function(){for(var t=0;n.texturesToUpdate.length>t;t++)this.updateTexture(n.texturesToUpdate[t]);for(var t=0;n.texturesToDestroy.length>t;t++)this.destroyTexture(n.texturesToDestroy[t]);n.texturesToUpdate=[],n.texturesToDestroy=[]},n.WebGLRenderer.updateTexture=function(t){var e=n.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},n.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},n.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),n.projection.x=this.width/2,n.projection.y=this.height/2},n.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},n.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;n.TextureCache.length>t;t++)this.updateTexture(n.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;n._restoreBatchs(this.gl),this.contextLost=!1},n._batchs=[],n._getBatch=function(t){return 0==n._batchs.length?new n.WebGLBatch(t):n._batchs.pop()},n._returnBatch=function(t){t.clean(),n._batchs.push(t)},n._restoreBatchs=function(t){for(var e=0;n._batchs.length>e;e++)n._batchs[e].restoreLostContext(t)},n.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=n.blendModes.NORMAL,this.dynamicSize=1},n.WebGLBatch.constructor=n.WebGLBatch,n.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},n.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},n.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},n.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},n.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},n.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},n.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new n.WebGLBatch(this.gl);e.init(t),e.texture=this.texture,e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},n.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},n.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,n=4*i;this.indices[r+0]=n+0,this.indices[r+1]=n+1,this.indices[r+2]=n+2,this.indices[r+3]=n+0,this.indices[r+4]=n+2,this.indices[r+5]=n+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},n.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof n.WebGLBatch?this.batchs[r].render():i instanceof n.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof n.Strip?i.visible&&this.renderStrip(i,t):i instanceof n.Graphics&&i.visible&&n.WebGLGraphics.renderGraphics(i,t)},n.WebGLRenderGroup.prototype.renderSpecific=function(t,e){n.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniform2f(n.shaderProgram.projectionVector,e.x,e.y);var r,a,s,o,h=t.renderable?t:this.getNextRenderable(t),l=h.batch;if(h instanceof n.Sprite){l=h.batch;var u=l.head;if(u==h)r=0;else for(r=1;u.__next!=h;)r++,u=u.__next}else l=h;for(var c,d=t,p=t;p.children.length>0;)p=p.children[p.children.length-1],p.renderable&&(d=p);if(d instanceof n.Sprite){c=d.batch;var u=c.head;if(u==d)s=0;else for(s=1;u.__next!=d;)s++,u=u.__next}else c=d;if(l==c)return l instanceof n.WebGLBatch?l.render(r,s+1):this.renderSpecial(l),void 0;a=this.batchs.indexOf(l),o=this.batchs.indexOf(c),l instanceof n.WebGLBatch?l.render(r):this.renderSpecial(l);for(var f=a+1;o>f;f++)renderable=this.batchs[f],renderable instanceof n.WebGLBatch?this.batchs[f].render():this.renderSpecial(renderable);c instanceof n.WebGLBatch?c.render(0,s+1):this.renderSpecial(c)},n.WebGLRenderGroup.prototype.renderSpecial=function(t){t instanceof n.TilingSprite?t.visible&&this.renderTilingSprite(t,projectionMatrix):t instanceof n.Strip?t.visible&&this.renderStrip(t,projectionMatrix):t instanceof n.CustomRenderable?t.visible&&t.renderWebGL(this,projectionMatrix):t instanceof n.Graphics&&t.visible&&n.WebGLGraphics.renderGraphics(t)},n.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var n=i[r];n.worldVisible=n.visible&&e,n.textureChange&&(n.textureChange=!1,n.worldVisible&&(this.removeDisplayObject(n),this.addDisplayObject(n))),n.children.length>0&&this.checkVisibility(n,n.worldVisible)}},n.WebGLRenderGroup.prototype.updateTexture=function(t){if(1==t.batch.length)return t.batch.texture=t.texture.baseTexture,void 0;if(t.batch.texture!=t.texture.baseTexture)if(t.batch.head==t){var e=t.batch,i=this.batchs.indexOf(e),r=this.batchs[i-1];if(e.remove(t),r)if(r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)r.insertAfter(t,r.tail);else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i-1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(0,0,a)}}else if(t.batch.tail==t){var e=t.batch,i=this.batchs.indexOf(e),s=this.batchs[i+1];if(e.remove(t),s){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,s.head),void 0;var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i+1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.push(a)}}else{var e=t.batch,o=e.split(t);o.remove(t);var a=n.WebGLRenderer.getBatch(),i=this.batchs.indexOf(e);a.init(t),this.batchs.splice(i+1,0,a,o)}},n.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof n.Sprite){var r,a;if(e instanceof n.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof n.Sprite){if(a=i.batch){if(a.texture==t.texture.baseTexture&&a.blendMode==t.blendMode)return a.insertBefore(t,i),void 0;if(a==r){var s=r.split(i),o=n.WebGLRenderer.getBatch(),h=this.batchs.indexOf(r);return o.init(t),this.batchs.splice(h+1,0,o,s),void 0}}}else a=i;var o=n.WebGLRenderer.getBatch();if(o.init(t),r){var h=this.batchs.indexOf(r);this.batchs.splice(h+1,0,o)}else this.batchs.push(o)}else t instanceof n.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof n.Strip?(this.initStrip(t),this.batchs.push(t)):t instanceof n.Graphics&&this.batchs.push(t);this.batchUpdate=!0}},n.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},n.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof n.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof n.WebGLBatch&&this.batchs[r+1]instanceof n.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),n.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e)}}},n.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},n.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},n.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=n.shaderProgram;i.useProgram(n.stripShaderProgram);var a=n.mat3.clone(t.worldTransform);n.mat3.transpose(a),i.uniformMatrix3fv(n.stripShaderProgram.translationMatrix,!1,a),i.uniform2f(n.stripShaderProgram.projectionVector,e.x,e.y),i.uniform1f(n.stripShaderProgram.alpha,t.worldAlpha),t.blendMode==n.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.useProgram(n.shaderProgram)},n.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;n.shaderProgram;var r=t.tilePosition,a=t.tileScale,s=r.x/t.texture.baseTexture.width,o=r.y/t.texture.baseTexture.height,h=t.width/t.texture.baseTexture.width/a.x,l=t.height/t.texture.baseTexture.height/a.y;t.uvs[0]=0-s,t.uvs[1]=0-o,t.uvs[2]=1*h-s,t.uvs[3]=0-o,t.uvs[4]=1*h-s,t.uvs[5]=1*l-o,t.uvs[6]=0-s,t.uvs[7]=1*l-o,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},n.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},n.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},n.CanvasRenderer.constructor=n.CanvasRenderer,n.CanvasRenderer.prototype.render=function(t){n.texturesToUpdate=[],n.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0&&(n.Texture.frameUpdates=[])},n.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},n.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof n.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof n.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof n.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof n.CustomRenderable?t.renderCanvas(this):t instanceof n.Graphics&&(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),n.CanvasGraphics.renderGraphics(t,i));if(t.children)for(var a=0;t.children.length>a;a++)this.renderDisplayObject(t.children[a]);this.context.setTransform(1,0,0,1,0,0)}},n.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var n=1;r-2>n;n++){var a=2*n,s=i[a],o=i[a+2],h=i[a+4],l=i[a+1],u=i[a+3],c=i[a+5];e.moveTo(s,l),e.lineTo(o,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},n.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;e.globalAlpha=t.worldAlpha,t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},n.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,n=i.length/2;this.count++;for(var a=1;n-2>a;a++){var s=2*a,o=i[s],h=i[s+2],l=i[s+4],u=i[s+1],c=i[s+3],d=i[s+5],p=r[s]*t.texture.width,f=r[s+2]*t.texture.width,g=r[s+4]*t.texture.width,v=r[s+1]*t.texture.height,m=r[s+3]*t.texture.height,x=r[s+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var b=p*m+v*g+f*x-m*g-v*f-p*x,y=o*m+v*l+h*x-m*l-v*h-o*x,T=p*h+o*g+f*l-h*g-o*f-p*l,A=p*m*l+v*h*g+o*f*x-o*m*g-v*f*l-p*h*x,w=u*m+v*d+c*x-m*d-v*c-u*x,_=p*c+u*g+f*d-c*g-u*f-p*d,R=p*m*d+v*c*g+u*f*x-u*m*g-v*f*d-p*c*x;e.transform(y/b,w/b,T/b,_/b,A/b,R/b),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},n.CanvasGraphics=function(){},n.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,r=0;t.graphicsData.length>r;r++){var a=t.graphicsData[r],s=a.points;if(e.strokeStyle=color="#"+("00000"+(0|a.lineColor).toString(16)).substr(-6),e.lineWidth=a.lineWidth,a.type==n.Graphics.POLY){e.beginPath(),e.moveTo(s[0],s[1]);for(var o=1;s.length/2>o;o++)e.lineTo(s[2*o],s[2*o+1]);s[0]==s[s.length-2]&&s[1]==s[s.length-1]&&e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}else if(a.type==n.Graphics.RECT)a.fillColor&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fillRect(s[0],s[1],s[2],s[3])),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.strokeRect(s[0],s[1],s[2],s[3]));else if(a.type==n.Graphics.CIRC)e.beginPath(),e.arc(s[0],s[1],s[2],0,2*Math.PI),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke());else if(a.type==n.Graphics.ELIP){var h=a.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,v=c+l,m=d+u,x=c+l/2,b=d+u/2;e.moveTo(c,b),e.bezierCurveTo(c,b-g,x-f,d,x,d),e.bezierCurveTo(x+f,d,v,b-g,v,b),e.bezierCurveTo(v,b+g,x+f,m,x,m),e.bezierCurveTo(x-f,m,c,b+g,c,b),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}}},n.Graphics=function(){n.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=2,this.lineColor="#FF0000",this.graphicsData=[],this.currentPath={points:[]}},n.Graphics.constructor=n.Graphics,n.Graphics.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Graphics.prototype.lineStyle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=void 0==i?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.graphicsData.push(this.currentPath)},n.Graphics.prototype.moveTo=function(t,e){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath)},n.Graphics.prototype.lineTo=function(t,e){this.currentPath.points.push(t,e),this.dirty=!0},n.Graphics.prototype.beginFill=function(t,e){this.filling=!0,this.fillColor=t||0,this.fillAlpha=e||1},n.Graphics.prototype.endFill=function(){this.filling=!1,this.fillColor=null,this.fillAlpha=1},n.Graphics.prototype.drawRect=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawCircle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:n.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawElipse=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.clear=function(){this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[]},n.Graphics.POLY=0,n.Graphics.RECT=1,n.Graphics.CIRC=2,n.Graphics.ELIP=3,n.Strip=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=n.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Strip.constructor=n.Strip,n.Strip.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},n.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Rope=function(t,e){n.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},n.Rope.constructor=n.Rope,n.Rope.prototype=Object.create(n.Strip.prototype),n.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,n=t[0],a=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var s=t.length,o=1;s>o;o++){var a=t[o],h=4*o,l=o/(s-1);o%2?(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1):(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,n=a}}},n.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],a={x:0,y:0},s=t[0];this.count-=.2,i[0]=s.x+a.x,i[1]=s.y+a.y,i[2]=s.x-a.x,i[3]=s.y-a.y;for(var o=t.length,h=1;o>h;h++){var s=t[h],l=4*h;e=t.length-1>h?t[h+1]:s,a.y=-(e.x-r.x),a.x=e.y-r.y;var u=10*(1-h/(o-1));u>1&&(u=1);var c=Math.sqrt(a.x*a.x+a.y*a.y),d=this.texture.height/2;a.x/=c,a.y/=c,a.x*=d,a.y*=d,i[l]=s.x+a.x,i[l+1]=s.y+a.y,i[l+2]=s.x-a.x,i[l+3]=s.y-a.y,r=s}n.DisplayObjectContainer.prototype.updateTransform.call(this)}},n.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0 },n.TilingSprite=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new n.Point(1,1),this.tilePosition=new n.Point(0,0),this.blendMode=n.blendModes.NORMAL},n.TilingSprite.constructor=n.TilingSprite,n.TilingSprite.prototype=Object.create(n.DisplayObjectContainer.prototype),n.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},n.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Spine=function(t){if(n.DisplayObjectContainer.call(this),this.spineData=n.AnimCache[t],!this.spineData)throw Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+t);this.count=0,this.sprites=[],this.skeleton=new u.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new u.AnimationStateData(this.spineData),this.state=new u.AnimationState(this.stateData);for(var e=0;this.skeleton.drawOrder.length>e;e++){var i=this.skeleton.drawOrder[e].data.attachmentName;n.TextureCache[i]||(i+=".png");var r=new n.Sprite(n.Texture.fromFrame(i));r.anchor.x=r.anchor.y=.5,this.addChild(r),this.sprites.push(r)}},n.Spine.constructor=n.Spine,n.Spine.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Spine.prototype.updateTransform=function(){this.state.update(1/60),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var t=0;this.skeleton.drawOrder.length>t;t++){var e=this.skeleton.drawOrder[t],i=e.bone.worldX+e.attachment.x*e.bone.m00+e.attachment.y*e.bone.m01+.5*e.attachment.width,r=e.bone.worldY+e.attachment.x*e.bone.m10+e.attachment.y*e.bone.m11+.5*e.attachment.height;if(e.cacheName!=e.attachment.name){var a=e.attachment.name;n.TextureCache[a]||(a+=".png"),this.sprites[t].setTexture(n.TextureCache[a]),e.cacheName=e.attachment.name}i+=-(e.attachment.width*(e.bone.worldScaleX+e.attachment.scaleX-1)>>1),r+=-(e.attachment.height*(e.bone.worldScaleY+e.attachment.scaleY-1)>>1),this.sprites[t].position.x=i,this.sprites[t].position.y=r,this.sprites[t].rotation=-(e.bone.worldRotation+e.attachment.rotation)*(Math.PI/180)}n.DisplayObjectContainer.prototype.updateTransform.call(this)};var u={};u.BoneData=function(t,e){this.name=t,this.parent=e},u.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},u.SlotData=function(t,e){this.name=t,this.boneData=e},u.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},u.Bone=function(t,e){this.data=t,this.parent=e,this.setToSetupPose()},u.Bone.yDown=!1,u.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(t,e){var i=this.parent;null!=i?(this.worldX=this.x*i.m00+this.y*i.m01+i.worldX,this.worldY=this.x*i.m10+this.y*i.m11+i.worldY,this.worldScaleX=i.worldScaleX*this.scaleX,this.worldScaleY=i.worldScaleY*this.scaleY,this.worldRotation=i.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var r=this.worldRotation*Math.PI/180,n=Math.cos(r),a=Math.sin(r);this.m00=n*this.worldScaleX,this.m10=a*this.worldScaleX,this.m01=-a*this.worldScaleY,this.m11=n*this.worldScaleY,t&&(this.m00=-this.m00,this.m01=-this.m01),e&&(this.m10=-this.m10,this.m11=-this.m11),u.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY}},u.Slot=function(t,e,i){this.data=t,this.skeleton=e,this.bone=i,this.setToSetupPose()},u.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(t){this.attachment=t,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(t){this._attachmentTime=this.skeleton.time-t},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var t=this.data;this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a;for(var e=this.skeleton.data.slots,i=0,r=e.length;r>i;i++)if(e[i]==t){this.setAttachment(t.attachmentName?this.skeleton.getAttachmentBySlotIndex(i,t.attachmentName):null);break}}},u.Skin=function(t){this.name=t,this.attachments={}},u.Skin.prototype={addAttachment:function(t,e,i){this.attachments[t+":"+e]=i},getAttachment:function(t,e){return this.attachments[t+":"+e]},_attachAll:function(t,e){for(var i in e.attachments){var r=i.indexOf(":"),n=parseInt(i.substring(0,r)),a=i.substring(r+1),s=t.slots[n];if(s.attachment&&s.attachment.name==a){var o=this.getAttachment(n,a);o&&s.setAttachment(o)}}}},u.Animation=function(t,e,i){this.name=t,this.timelines=e,this.duration=i},u.Animation.prototype={apply:function(t,e,i){i&&0!=this.duration&&(e%=this.duration);for(var r=this.timelines,n=0,a=r.length;a>n;n++)r[n].apply(t,e,1)},mix:function(t,e,i,r){i&&0!=this.duration&&(e%=this.duration);for(var n=this.timelines,a=0,s=n.length;s>a;a++)n[a].apply(t,e,r)}},u.binarySearch=function(t,e,i){var r=0,n=Math.floor(t.length/i)-2;if(0==n)return i;for(var a=n>>>1;;){if(e>=t[(a+1)*i]?r=a+1:n=a,r==n)return(r+1)*i;a=r+n>>>1}},u.linearSearch=function(t,e,i){for(var r=0,n=t.length-i;n>=r;r+=i)if(t[r]>e)return r;return-1},u.Curves=function(t){this.curves=[],this.curves.length=6*(t-1)},u.Curves.prototype={setLinear:function(t){this.curves[6*t]=0},setStepped:function(t){this.curves[6*t]=-1},setCurve:function(t,e,i,r,n){var a=.1,s=a*a,o=s*a,h=3*a,l=3*s,u=6*s,c=6*o,d=2*-e+r,p=2*-i+n,f=3*(e-r)+1,g=3*(i-n)+1,v=6*t,m=this.curves;m[v]=e*h+d*l+f*o,m[v+1]=i*h+p*l+g*o,m[v+2]=d*u+f*c,m[v+3]=p*u+g*c,m[v+4]=f*c,m[v+5]=g*c},getCurvePercent:function(t,e){e=0>e?0:e>1?1:e;var i=6*t,r=this.curves,n=r[i];if(!n)return e;if(-1==n)return 0;for(var a=r[i+1],s=r[i+2],o=r[i+3],h=r[i+4],l=r[i+5],u=n,c=a,d=8;;){if(u>=e){var p=u-n,f=c-a;return f+(c-f)*(e-p)/(u-p)}if(0==d)break;d--,n+=s,a+=o,s+=h,o+=l,u+=n,c+=a}return c+(1-c)*(e-u)/(1-u)}},u.RotateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=2*t},u.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){t*=2,this.frames[t]=e,this.frames[t+1]=i},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-2]){for(var a=n.data.rotation+r[r.length-1]-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;return n.rotation+=a*i,void 0}var s=u.binarySearch(r,e,2),o=r[s-1],h=r[s],l=1-(e-h)/(r[s-2]-h);l=this.curves.getCurvePercent(s/2-1,l);for(var a=r[s+1]-o;a>180;)a-=360;for(;-180>a;)a+=360;for(a=n.data.rotation+(o+a*l)-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;n.rotation+=a*i}}},u.TranslateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.x+=(n.data.x+r[r.length-2]-n.x)*i,n.y+=(n.data.y+r[r.length-1]-n.y)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.x+=(n.data.x+s+(r[a+1]-s)*l-n.x)*i,n.y+=(n.data.y+o+(r[a+2]-o)*l-n.y)*i}}},u.ScaleTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.scaleX+=(n.data.scaleX-1+r[r.length-2]-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+r[r.length-1]-n.scaleY)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.scaleX+=(n.data.scaleX-1+s+(r[a+1]-s)*l-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+o+(r[a+2]-o)*l-n.scaleY)*i}}},u.ColorTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=5*t},u.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e){t*=5,this.frames[t]=e,this.frames[t+1]=r,this.frames[t+2]=g,this.frames[t+3]=b,this.frames[t+4]=a},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.slots[this.slotIndex];if(e>=r[r.length-5]){var a=r.length-1;return n.r=r[a-3],n.g=r[a-2],n.b=r[a-1],n.a=r[a],void 0}var s=u.binarySearch(r,e,5),o=r[s-4],h=r[s-3],l=r[s-2],c=r[s-1],d=r[s],p=1-(e-d)/(r[s-5]-d);p=this.curves.getCurvePercent(s/5-1,p);var f=o+(r[s+1]-o)*p,g=h+(r[s+2]-h)*p,v=l+(r[s+3]-l)*p,m=c+(r[s+4]-c)*p;1>i?(n.r+=(f-n.r)*i,n.g+=(g-n.g)*i,n.b+=(v-n.b)*i,n.a+=(m-n.a)*i):(n.r=f,n.g=g,n.b=v,n.a=m)}}},u.AttachmentTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=t,this.attachmentNames=[],this.attachmentNames.length=t},u.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){this.frames[t]=e,this.attachmentNames[t]=i},apply:function(t,e){var i=this.frames;if(!(i[0]>e)){var r;r=e>=i[i.length-1]?i.length-1:u.binarySearch(i,e,1)-1;var n=this.attachmentNames[r];t.slots[this.slotIndex].setAttachment(n?t.getAttachmentBySlotIndex(this.slotIndex,n):null)}}},u.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},u.SkeletonData.prototype={defaultSkin:null,findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return slot[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSkin:function(t){for(var e=this.skins,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findAnimation:function(t){for(var e=this.animations,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null}},u.Skeleton=function(t){this.data=t,this.bones=[];for(var e=0,i=t.bones.length;i>e;e++){var r=t.bones[e],n=r.parent?this.bones[t.bones.indexOf(r.parent)]:null;this.bones.push(new u.Bone(r,n))}this.slots=[],this.drawOrder=[];for(var e=0,i=t.slots.length;i>e;e++){var a=t.slots[e],s=this.bones[t.bones.indexOf(a.boneData)],o=new u.Slot(a,this,s);this.slots.push(o),this.drawOrder.push(o)}},u.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var t=this.flipX,e=this.flipY,i=this.bones,r=0,n=i.length;n>r;r++)i[r].updateWorldTransform(t,e)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var t=this.bones,e=0,i=t.length;i>e;e++)t[e].setToSetupPose()},setSlotsToSetupPose:function(){for(var t=this.slots,e=0,i=t.length;i>e;e++)t[e].setToSetupPose(e)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},setSkinByName:function(t){var e=this.data.findSkin(t);if(!e)throw"Skin not found: "+t;this.setSkin(e)},setSkin:function(t){this.skin&&t&&t._attachAll(this,this.skin),this.skin=t},getAttachmentBySlotName:function(t,e){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(t),e)},getAttachmentBySlotIndex:function(t,e){if(this.skin){var i=this.skin.getAttachment(t,e);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},setAttachment:function(t,e){for(var i=this.slots,r=0,n=i.size;n>r;r++){var a=i[r];if(a.data.name==t){var s=null;if(e&&(s=this.getAttachment(r,e),null==s))throw"Attachment not found: "+e+", for slot: "+t;return a.setAttachment(s),void 0}}throw"Slot not found: "+t},update:function(t){time+=t}},u.AttachmentType={region:0},u.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},u.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(t,e,i,r,n){var a=this.uvs;n?(a[2]=t,a[3]=r,a[4]=t,a[5]=e,a[6]=i,a[7]=e,a[0]=i,a[1]=r):(a[0]=t,a[1]=r,a[2]=t,a[3]=e,a[4]=i,a[5]=e,a[6]=i,a[7]=r)},updateOffset:function(){var t=this.width/this.regionOriginalWidth*this.scaleX,e=this.height/this.regionOriginalHeight*this.scaleY,i=-this.width/2*this.scaleX+this.regionOffsetX*t,r=-this.height/2*this.scaleY+this.regionOffsetY*e,n=i+this.regionWidth*t,a=r+this.regionHeight*e,s=this.rotation*Math.PI/180,o=Math.cos(s),h=Math.sin(s),l=i*o+this.x,u=i*h,c=r*o+this.y,d=r*h,p=n*o+this.x,f=n*h,g=a*o+this.y,v=a*h,m=this.offset;m[0]=l-d,m[1]=c+u,m[2]=l-v,m[3]=g+u,m[4]=p-v,m[5]=g+f,m[6]=p-d,m[7]=c+f},computeVertices:function(t,e,i,r){t+=i.worldX,e+=i.worldY;var n=i.m00,a=i.m01,s=i.m10,o=i.m11,h=this.offset;r[0]=h[0]*n+h[1]*a+t,r[1]=h[0]*s+h[1]*o+e,r[2]=h[2]*n+h[3]*a+t,r[3]=h[2]*s+h[3]*o+e,r[4]=h[4]*n+h[5]*a+t,r[5]=h[4]*s+h[5]*o+e,r[6]=h[6]*n+h[7]*a+t,r[7]=h[6]*s+h[7]*o+e}},u.AnimationStateData=function(t){this.skeletonData=t,this.animationToMixTime={}},u.AnimationStateData.prototype={setMixByName:function(t,e,i){var r=this.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;var n=this.skeletonData.findAnimation(e);if(!n)throw"Animation not found: "+e;this.setMix(r,n,i)},setMix:function(t,e,i){this.animationToMixTime[t.name+":"+e.name]=i},getMix:function(t,e){var i=this.animationToMixTime[t.name+":"+e.name];return i?i:0}},u.AnimationState=function(t){this.data=t,this.queue=[]},u.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(t){if(this.currentTime+=t,this.previousTime+=t,this.mixTime+=t,this.queue.length>0){var e=this.queue[0];this.currentTime>=e.delay&&(this._setAnimation(e.animation,e.loop),this.queue.shift())}},apply:function(t){if(this.current)if(this.previous){this.previous.apply(t,this.previousTime,this.previousLoop);var e=this.mixTime/this.mixDuration;e>=1&&(e=1,this.previous=null),this.current.mix(t,this.currentTime,this.currentLoop,e)}else this.current.apply(t,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(t,e){this.previous=null,t&&this.current&&(this.mixDuration=this.data.getMix(this.current,t),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=t,this.currentLoop=e,this.currentTime=0},setAnimationByName:function(t,e){var i=this.data.skeletonData.findAnimation(t);if(!i)throw"Animation not found: "+t;this.setAnimation(i,e)},setAnimation:function(t,e){this.queue.length=0,this._setAnimation(t,e)},addAnimationByName:function(t,e,i){var r=this.data.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;this.addAnimation(r,e,i)},addAnimation:function(t,e,i){var r={};if(r.animation=t,r.loop=e,!i||0>=i){var n=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;i=null!=n?n.duration-this.data.getMix(n,t)+(i||0):0}r.delay=i,this.queue.push(r)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},u.SkeletonJson=function(t){this.attachmentLoader=t},u.SkeletonJson.prototype={scale:1,readSkeletonData:function(t){for(var e=new u.SkeletonData,i=t.bones,r=0,n=i.length;n>r;r++){var a=i[r],s=null;if(a.parent&&(s=e.findBone(a.parent),!s))throw"Parent bone not found: "+a.parent;var o=new u.BoneData(a.name,s);o.length=(a.length||0)*this.scale,o.x=(a.x||0)*this.scale,o.y=(a.y||0)*this.scale,o.rotation=a.rotation||0,o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1,e.bones.push(o)}for(var h=t.slots,r=0,n=h.length;n>r;r++){var l=h[r],o=e.findBone(l.bone);if(!o)throw"Slot bone not found: "+l.bone;var c=new u.SlotData(l.name,o),d=l.color;d&&(c.r=u.SkeletonJson.toColor(d,0),c.g=u.SkeletonJson.toColor(d,1),c.b=u.SkeletonJson.toColor(d,2),c.a=u.SkeletonJson.toColor(d,3)),c.attachmentName=l.attachment,e.slots.push(c)}var p=t.skins;for(var f in p)if(p.hasOwnProperty(f)){var g=p[f],v=new u.Skin(f);for(var m in g)if(g.hasOwnProperty(m)){var x=e.findSlotIndex(m),b=g[m];for(var y in b)if(b.hasOwnProperty(y)){var T=this.readAttachment(v,y,b[y]);null!=T&&v.addAttachment(x,y,T)}}e.skins.push(v),"default"==v.name&&(e.defaultSkin=v)}var A=t.animations;for(var w in A)A.hasOwnProperty(w)&&this.readAnimation(w,A[w],e);return e},readAttachment:function(t,e,i){e=i.name||e;var r=u.AttachmentType[i.type||"region"],n=new u.RegionAttachment;return n.name=e,r==u.AttachmentType.region&&(n.x=(i.x||0)*this.scale,n.y=(i.y||0)*this.scale,n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1,n.rotation=i.rotation||0,n.width=(i.width||32)*this.scale,n.height=(i.height||32)*this.scale,n.updateOffset()),n},readAnimation:function(t,e,i){var r=[],n=0,a=e.bones;for(var s in a)if(a.hasOwnProperty(s)){var o=i.findBoneIndex(s);if(-1==o)throw"Bone not found: "+s;var h=a[s];for(var l in h)if(h.hasOwnProperty(l)){var c=h[l];if("rotate"==l){var d=new u.RotateTimeline(c.length);d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p,v.time,v.angle),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[2*d.getFrameCount()-2])}else{if("translate"!=l&&"scale"!=l)throw"Invalid timeline type for a bone: "+l+" ("+s+")";var d,m=1;"scale"==l?d=new u.ScaleTimeline(c.length):(d=new u.TranslateTimeline(c.length),m=this.scale),d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],x=(v.x||0)*m,b=(v.y||0)*m;d.setFrame(p,v.time,x,b),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[3*d.getFrameCount()-3])}}}var y=e.slots;for(var T in y)if(y.hasOwnProperty(T)){var A=y[T],w=i.findSlotIndex(T);for(var l in A)if(A.hasOwnProperty(l)){var c=A[l];if("color"==l){var d=new u.ColorTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],_=v.color,R=u.SkeletonJson.toColor(_,0),S=u.SkeletonJson.toColor(_,1),C=u.SkeletonJson.toColor(_,2),L=u.SkeletonJson.toColor(_,3);d.setFrame(p,v.time,R,S,C,L),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[5*d.getFrameCount()-5])}else{if("attachment"!=l)throw"Invalid timeline type for a slot: "+l+" ("+T+")";var d=new u.AttachmentTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p++,v.time,v.name)}r.push(d),n=Math.max(n,d.frames[Math.floor(d.getFrameCount())-1])}}}i.animations.push(new u.Animation(t,r,n))}},u.SkeletonJson.readCurve=function(t,e,i){var r=i.curve;r&&("stepped"==r?t.curves.setStepped(e):r instanceof Array&&t.curves.setCurve(e,r[0],r[1],r[2],r[3]))},u.SkeletonJson.toColor=function(t,e){if(8!=t.length)throw"Color hexidecimal length must be 8, recieved: "+t;return parseInt(t.substring(2*e,2),16)/255},u.Atlas=function(t,e){this.textureLoader=e,this.pages=[],this.regions=[];var i=new u.AtlasReader(t),r=[];r.length=4;for(var n=null;;){var a=i.readLine();if(null==a)break;if(a=i.trim(a),0==a.length)n=null;else if(n){var s=new u.AtlasRegion;s.name=a,s.page=n,s.rotate="true"==i.readValue(),i.readTuple(r);var o=parseInt(r[0]),h=parseInt(r[1]);i.readTuple(r);var l=parseInt(r[0]),c=parseInt(r[1]);s.u=o/n.width,s.v=h/n.height,s.rotate?(s.u2=(o+c)/n.width,s.v2=(h+l)/n.height):(s.u2=(o+l)/n.width,s.v2=(h+c)/n.height),s.x=o,s.y=h,s.width=Math.abs(l),s.height=Math.abs(c),4==i.readTuple(r)&&(s.splits=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],4==i.readTuple(r)&&(s.pads=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],i.readTuple(r))),s.originalWidth=parseInt(r[0]),s.originalHeight=parseInt(r[1]),i.readTuple(r),s.offsetX=parseInt(r[0]),s.offsetY=parseInt(r[1]),s.index=parseInt(i.readValue()),this.regions.push(s)}else{n=new u.AtlasPage,n.name=a,n.format=u.Atlas.Format[i.readValue()],i.readTuple(r),n.minFilter=u.Atlas.TextureFilter[r[0]],n.magFilter=u.Atlas.TextureFilter[r[1]];var d=i.readValue();n.uWrap=u.Atlas.TextureWrap.clampToEdge,n.vWrap=u.Atlas.TextureWrap.clampToEdge,"x"==d?n.uWrap=u.Atlas.TextureWrap.repeat:"y"==d?n.vWrap=u.Atlas.TextureWrap.repeat:"xy"==d&&(n.uWrap=n.vWrap=u.Atlas.TextureWrap.repeat),e.load(n,a),this.pages.push(n)}}},u.Atlas.prototype={findRegion:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},dispose:function(){for(var t=this.pages,e=0,i=t.length;i>e;e++)this.textureLoader.unload(t[e].rendererObject)},updateUVs:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++){var n=e[i];n.page==t&&(n.u=n.x/t.width,n.v=n.y/t.height,n.rotate?(n.u2=(n.x+n.height)/t.width,n.v2=(n.y+n.width)/t.height):(n.u2=(n.x+n.width)/t.width,n.v2=(n.y+n.height)/t.height))}}},u.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},u.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},u.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},u.AtlasPage=function(){},u.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},u.AtlasRegion=function(){},u.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},u.AtlasReader=function(t){this.lines=t.split(/\r\n|\r|\n/)},u.AtlasReader.prototype={index:0,trim:function(t){return t.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw"Invalid line: "+t;return this.trim(t.substring(e+1))},readTuple:function(t){var e=this.readLine(),i=e.indexOf(":");if(-1==i)throw"Invalid line: "+e;for(var r=0,n=i+1;3>r;r++){var a=e.indexOf(",",n);if(-1==a){if(0==r)throw"Invalid line: "+e;break}t[r]=this.trim(e.substr(n,a-n)),n=a+1}return t[r]=this.trim(e.substring(n)),r+1}},u.AtlasAttachmentLoader=function(t){this.atlas=t},u.AtlasAttachmentLoader.prototype={newAttachment:function(t,e,i){switch(e){case u.AttachmentType.region:var r=this.atlas.findRegion(i);if(!r)throw"Region not found in atlas: "+i+" ("+e+")";var n=new u.RegionAttachment(i);return n.rendererObject=r,n.setUVs(r.u,r.v,r.u2,r.v2,r.rotate),n.regionOffsetX=r.offsetX,n.regionOffsetY=r.offsetY,n.regionWidth=r.width,n.regionHeight=r.height,n.regionOriginalWidth=r.originalWidth,n.regionOriginalHeight=r.originalHeight,n}throw"Unknown attachment type: "+e}},n.AnimCache={},u.Bone.yDown=!0,n.CustomRenderable=function(){n.DisplayObject.call(this)},n.CustomRenderable.constructor=n.CustomRenderable,n.CustomRenderable.prototype=Object.create(n.DisplayObject.prototype),n.CustomRenderable.prototype.renderCanvas=function(){},n.CustomRenderable.prototype.initWebGL=function(){},n.CustomRenderable.prototype.renderWebGL=function(){},n.BaseTextureCache={},n.texturesToUpdate=[],n.texturesToDestroy=[],n.BaseTexture=function(t){if(n.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,n.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);this._powerOf2=!1}},n.BaseTexture.constructor=n.BaseTexture,n.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,n.texturesToDestroy.push(this)},n.BaseTexture.fromImage=function(t,e){var i=n.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new n.BaseTexture(r),n.BaseTextureCache[t]=i}return i},n.TextureCache={},n.FrameCache={},n.Texture=function(t,e){if(n.EventTarget.call(this),e||(this.noFrame=!0,e=new n.Rectangle(0,0,1,1)),this.trim=new n.Point,t instanceof n.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new n.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},n.Texture.constructor=n.Texture,n.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new n.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},n.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},n.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,n.Texture.frameUpdates.push(this)},n.Texture.fromImage=function(t,e){var i=n.TextureCache[t];return i||(i=new n.Texture(n.BaseTexture.fromImage(t,e)),n.TextureCache[t]=i),i},n.Texture.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},n.Texture.fromCanvas=function(t){var e=new n.BaseTexture(t);return new n.Texture(e)},n.Texture.addTextureToCache=function(t,e){n.TextureCache[e]=t},n.Texture.removeTextureFromCache=function(t){var e=n.TextureCache[t];return n.TextureCache[t]=null,e},n.Texture.frameUpdates=[],n.RenderTexture=function(t,e){n.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=n.mat3.create(),this.frame=new n.Rectangle(0,0,this.width,this.height),n.gl?this.initWebGL():this.initCanvas()},n.RenderTexture.constructor=n.RenderTexture,n.RenderTexture.prototype=Object.create(n.Texture.prototype),n.RenderTexture.prototype.initWebGL=function(){var t=n.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new n.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new n.Point(this.width/2,this.height/2),this.projectionMatrix=n.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},n.RenderTexture.prototype.initCanvas=function(){this.renderer=new n.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new n.BaseTexture(this.renderer.view),this.frame=new n.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},n.RenderTexture.prototype.renderWebGL=function(t,e){var i=n.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=n.mat3.create(),t.worldTransform[4]=-1,t.worldTransform[5]=2*this.projection.y;for(var a=0,s=r.length;s>a;a++)r[a].updateTransform();var o=t.__renderGroup;o?t==o.root?o.render(this.projection):o.renderSpecific(t,this.projection):(this.renderGroup||(this.renderGroup=new n.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projection))},n.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=n.mat3.create();for(var r=0,a=i.length;a>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),n.texturesToUpdate.push(this.baseTexture)},n.AssetLoader=function(t){n.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:n.ImageLoader,jpeg:n.ImageLoader,png:n.ImageLoader,gif:n.ImageLoader,json:n.JsonLoader,anim:n.SpineLoader,xml:n.BitmapFontLoader,fnt:n.BitmapFontLoader}},n.AssetLoader.constructor=n.AssetLoader,n.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),n=this.loadersByType[r];if(!n)throw Error(r+" is an unsupported file type");var a=new n(i,this.crossorigin);a.addEventListener("loaded",function(){t.onAssetLoaded()}),a.load()}},n.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},n.JsonLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.crossorigin=e,this.loaded=!1},n.JsonLoader.constructor=n.JsonLoader,n.JsonLoader.prototype.load=function(){this.ajaxRequest=new l;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},n.JsonLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState)if(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))if(this.json=JSON.parse(this.ajaxRequest.responseText),this.json.frames){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0))}i.load()}else if(this.json.bones){var o=new u.SkeletonJson,h=o.readSkeletonData(this.json);n.AnimCache[this.url]=h,this.onLoaded()}else this.onLoaded();else this.onError()},n.JsonLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},n.JsonLoader.prototype.onError=function(){this.dispatchEvent({type:"error",content:this})},n.SpriteSheetLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},n.SpriteSheetLoader.constructor=n.SpriteSheetLoader,n.SpriteSheetLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpriteSheetLoader.prototype.onJSONLoaded=function(){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0)) }i.load()},n.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.ImageLoader=function(t,e){n.EventTarget.call(this),this.texture=n.Texture.fromImage(t,e)},n.ImageLoader.constructor=n.ImageLoader,n.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},n.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.BitmapFontLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},n.BitmapFontLoader.constructor=n.BitmapFontLoader,n.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},n.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new n.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],a=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(a.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var s=this.ajaxRequest.responseXML.getElementsByTagName("char"),o=0;s.length>o;o++){var h=parseInt(s[o].attributes.getNamedItem("id").nodeValue,10),l={x:parseInt(s[o].attributes.getNamedItem("x").nodeValue,10),y:parseInt(s[o].attributes.getNamedItem("y").nodeValue,10),width:parseInt(s[o].attributes.getNamedItem("width").nodeValue,10),height:parseInt(s[o].attributes.getNamedItem("height").nodeValue,10)};n.TextureCache[h]=new n.Texture(this.texture,l),i.chars[h]={xOffset:parseInt(s[o].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(s[o].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(s[o].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{},texture:new n.Texture(this.texture,l)}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(o=0;u.length>o;o++){var c=parseInt(u[o].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[o].attributes.getNamedItem("second").nodeValue,10),p=parseInt(u[o].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=p}n.BitmapText.fonts[i.font]=i;var f=this;e.addEventListener("loaded",function(){f.onLoaded()}),e.load()}},n.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.SpineLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.crossorigin=e,this.loaded=!1},n.SpineLoader.constructor=n.SpineLoader,n.SpineLoader.prototype.load=function(){new n.JsonLoader(this.url,this.crossorigin),jsonLoader.addEventListener("loaded",function(t){scope.json=t.content.json,scope.onJSONLoaded()}),jsonLoader.load()},n.SpineLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpineLoader.prototype.onJSONLoaded=function(){var t=new u.SkeletonJson,e=t.readSkeletonData(this.json);n.AnimCache[this.url]=e,this.onLoaded()},n.SpineLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports.PIXI=n):i.PIXI=n}).call(this); \ No newline at end of file diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index 25cca17..0391561 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index 25cca17..0391561 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 12 - Spine/pixi.js b/examples/example 12 - Spine/pixi.js index 25cca17..0391561 100644 --- a/examples/example 12 - Spine/pixi.js +++ b/examples/example 12 - Spine/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 13 - Graphics/index.html b/examples/example 13 - Graphics/index.html index e6996b7..d847ef2 100644 --- a/examples/example 13 - Graphics/index.html +++ b/examples/example 13 - Graphics/index.html @@ -80,17 +80,40 @@ stage.addChild(graphics); + // lets create moving shape + var thing = new PIXI.Graphics(); + stage.addChild(thing); + thing.position.x = 620/2; + thing.position.y = 380/2; + + var count = 0; + stage.click = stage.tap = function() { graphics.lineStyle(Math.random() * 30, Math.random() * 0xFFFFFF, 1); graphics.moveTo(Math.random() * 620,Math.random() * 380); graphics.lineTo(Math.random() * 620,Math.random() * 380); - } requestAnimFrame(animate); function animate() { + + thing.clear(); + + count += 0.1; + + thing.clear(); + thing.lineStyle(30, 0xff0000, 1); + thing.beginFill(0xffFF00, 0.5); + + thing.moveTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + thing.lineTo(120 + Math.cos(count) * 20, -100 + Math.sin(count)* 20); + thing.lineTo(120 + Math.sin(count) * 20, 100 + Math.cos(count)* 20); + thing.lineTo(-120 + Math.cos(count)* 20, 100 + Math.sin(count)* 20); + thing.lineTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + + thing.rotation = count * 0.1; renderer.render(stage); requestAnimFrame( animate ); } diff --git a/examples/example 13 - Graphics/pixi.js b/examples/example 13 - Graphics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 13 - Graphics/pixi.js +++ b/examples/example 13 - Graphics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index 25cca17..0391561 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index 25cca17..0391561 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 4 - Balls/pixi.js b/examples/example 4 - Balls/pixi.js index 25cca17..0391561 100644 --- a/examples/example 4 - Balls/pixi.js +++ b/examples/example 4 - Balls/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 5 - Morph/pixi.js b/examples/example 5 - Morph/pixi.js index 25cca17..0391561 100644 --- a/examples/example 5 - Morph/pixi.js +++ b/examples/example 5 - Morph/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.js b/bin/pixi.js index 51d6836..96307b0 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -9,7 +9,7 @@ * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; +(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[],t._webGL.indices=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; if(0!=r.length){var a=new n.Point(r[0],r[1]),s=new n.Point(r[r.length-2],r[r.length-1]);if(a.x==s.x&&a.y==s.y){r.pop(),r.pop(),s=new n.Point(r[r.length-2],r[r.length-1]);var o=s.x+.5*(a.x-s.x),h=s.y+.5*(a.y-s.y);r.unshift(o,h),r.push(o,h)}var l,u,c,d,p,f,g,v,m,x,b,y,T,A,w,_,R,S,C,L,E,B=i.points,F=i.indices,P=r.length/2,G=r.length,I=B.length/6,D=t.lineWidth/2,M=e(t.lineColor),O=t.lineAlpha,W=M[0]*O,U=M[1]*O,j=M[2]*O;l=r[0],u=r[1],c=r[2],d=r[3],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(l-g,u-v,W,U,j,O),B.push(l+g,u+v,W,U,j,O);for(var k=1;P-1>k;k++)l=r[2*(k-1)],u=r[2*(k-1)+1],c=r[2*k],d=r[2*k+1],p=r[2*(k+1)],f=r[2*(k+1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,m=-(d-f),x=c-p,E=Math.sqrt(m*m+x*x),m/=E,x/=E,m*=D,x*=D,T=-v+u-(-v+d),A=-g+c-(-g+l),w=(-g+l)*(-v+d)-(-g+c)*(-v+u),_=-x+f-(-x+d),R=-m+c-(-m+p),S=(-m+p)*(-x+d)-(-m+c)*(-x+f),C=T*R-_*A,0==C&&(C+=1),px=(A*S-R*w)/C,py=(_*w-T*S)/C,L=(px-c)*(px-c)+(py-d)+(py-d),L>19600?(b=g-m,y=v-x,E=Math.sqrt(b*b+y*y),b/=E,y/=E,b*=D,y*=D,B.push(c-b,d-y),B.push(W,U,j,O),B.push(c+b,d+y),B.push(W,U,j,O),B.push(c-b,d-y),B.push(W,U,j,O),G++):(B.push(px,py),B.push(W,U,j,O),B.push(c-(px-c),d-(py-d)),B.push(W,U,j,O));l=r[2*(P-2)],u=r[2*(P-2)+1],c=r[2*(P-1)],d=r[2*(P-1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(c-g,d-v),B.push(W,U,j,O),B.push(c+g,d+v),B.push(W,U,j,O),F.push(I);for(var k=0;G>k;k++)F.push(I++);F.push(I-1)}},n.WebGLGraphics.buildPoly=function(t,i){var r=t.points;if(!(6>r.length)){for(var a=i.points,s=i.indices,o=r.length/2,h=e(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=n.PolyK.Triangulate(r),f=a.length/6,g=0;p.length>g;g+=3)s.push(p[g]+f),s.push(p[g]+f),s.push(p[g+1]+f),s.push(p[g+2]+f),s.push(p[g+2]+f);for(var g=0;o>g;g++)a.push(r[2*g],r[2*g+1],u,c,d,l)}},n._defaultFrame=new n.Rectangle(0,0,1,1),n.gl,n.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var a=this;this.view.addEventListener("webglcontextlost",function(t){a.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){a.handleContextRestored(t)},!1),this.batchs=[];try{n.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!0,premultipliedAlpha:!1})}catch(s){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}n.initPrimitiveShader(),n.initDefaultShader(),n.initDefaultStripShader(),n.activateDefaultShader();var o=this.gl;n.WebGLRenderer.gl=o,this.batch=new n.WebGLBatch(o),o.disable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.enable(o.BLEND),o.colorMask(!0,!0,!0,this.transparent),n.projection=new n.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new n.WebGLRenderGroup(this.gl)},n.WebGLRenderer.constructor=n.WebGLRenderer,n.WebGLRenderer.getBatch=function(){return 0==n._batchs.length?new n.WebGLBatch(n.WebGLRenderer.gl):n._batchs.pop()},n.WebGLRenderer.returnBatch=function(t){t.clean(),n._batchs.push(t)},n.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),n.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],!this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(n.projection),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0){for(var i=0;n.Texture.frameUpdates.length>i;i++)n.Texture.frameUpdates[i].updateFrame=!1;n.Texture.frameUpdates=[]}}},n.WebGLRenderer.updateTextures=function(){for(var t=0;n.texturesToUpdate.length>t;t++)this.updateTexture(n.texturesToUpdate[t]);for(var t=0;n.texturesToDestroy.length>t;t++)this.destroyTexture(n.texturesToDestroy[t]);n.texturesToUpdate=[],n.texturesToDestroy=[]},n.WebGLRenderer.updateTexture=function(t){var e=n.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},n.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},n.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),n.projection.x=this.width/2,n.projection.y=this.height/2},n.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},n.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;n.TextureCache.length>t;t++)this.updateTexture(n.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;n._restoreBatchs(this.gl),this.contextLost=!1},n._batchs=[],n._getBatch=function(t){return 0==n._batchs.length?new n.WebGLBatch(t):n._batchs.pop()},n._returnBatch=function(t){t.clean(),n._batchs.push(t)},n._restoreBatchs=function(t){for(var e=0;n._batchs.length>e;e++)n._batchs[e].restoreLostContext(t)},n.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=n.blendModes.NORMAL,this.dynamicSize=1},n.WebGLBatch.constructor=n.WebGLBatch,n.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},n.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},n.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},n.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},n.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},n.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},n.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new n.WebGLBatch(this.gl);e.init(t),e.texture=this.texture,e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},n.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},n.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,n=4*i;this.indices[r+0]=n+0,this.indices[r+1]=n+1,this.indices[r+2]=n+2,this.indices[r+3]=n+0,this.indices[r+4]=n+2,this.indices[r+5]=n+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},n.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof n.WebGLBatch?this.batchs[r].render():i instanceof n.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof n.Strip?i.visible&&this.renderStrip(i,t):i instanceof n.Graphics&&i.visible&&n.WebGLGraphics.renderGraphics(i,t)},n.WebGLRenderGroup.prototype.renderSpecific=function(t,e){n.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniform2f(n.shaderProgram.projectionVector,e.x,e.y);var r,a,s,o,h=t.renderable?t:this.getNextRenderable(t),l=h.batch;if(h instanceof n.Sprite){l=h.batch;var u=l.head;if(u==h)r=0;else for(r=1;u.__next!=h;)r++,u=u.__next}else l=h;for(var c,d=t,p=t;p.children.length>0;)p=p.children[p.children.length-1],p.renderable&&(d=p);if(d instanceof n.Sprite){c=d.batch;var u=c.head;if(u==d)s=0;else for(s=1;u.__next!=d;)s++,u=u.__next}else c=d;if(l==c)return l instanceof n.WebGLBatch?l.render(r,s+1):this.renderSpecial(l),void 0;a=this.batchs.indexOf(l),o=this.batchs.indexOf(c),l instanceof n.WebGLBatch?l.render(r):this.renderSpecial(l);for(var f=a+1;o>f;f++)renderable=this.batchs[f],renderable instanceof n.WebGLBatch?this.batchs[f].render():this.renderSpecial(renderable);c instanceof n.WebGLBatch?c.render(0,s+1):this.renderSpecial(c)},n.WebGLRenderGroup.prototype.renderSpecial=function(t){t instanceof n.TilingSprite?t.visible&&this.renderTilingSprite(t,projectionMatrix):t instanceof n.Strip?t.visible&&this.renderStrip(t,projectionMatrix):t instanceof n.CustomRenderable?t.visible&&t.renderWebGL(this,projectionMatrix):t instanceof n.Graphics&&t.visible&&n.WebGLGraphics.renderGraphics(t)},n.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var n=i[r];n.worldVisible=n.visible&&e,n.textureChange&&(n.textureChange=!1,n.worldVisible&&(this.removeDisplayObject(n),this.addDisplayObject(n))),n.children.length>0&&this.checkVisibility(n,n.worldVisible)}},n.WebGLRenderGroup.prototype.updateTexture=function(t){if(1==t.batch.length)return t.batch.texture=t.texture.baseTexture,void 0;if(t.batch.texture!=t.texture.baseTexture)if(t.batch.head==t){var e=t.batch,i=this.batchs.indexOf(e),r=this.batchs[i-1];if(e.remove(t),r)if(r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)r.insertAfter(t,r.tail);else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i-1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(0,0,a)}}else if(t.batch.tail==t){var e=t.batch,i=this.batchs.indexOf(e),s=this.batchs[i+1];if(e.remove(t),s){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,s.head),void 0;var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i+1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.push(a)}}else{var e=t.batch,o=e.split(t);o.remove(t);var a=n.WebGLRenderer.getBatch(),i=this.batchs.indexOf(e);a.init(t),this.batchs.splice(i+1,0,a,o)}},n.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof n.Sprite){var r,a;if(e instanceof n.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof n.Sprite){if(a=i.batch){if(a.texture==t.texture.baseTexture&&a.blendMode==t.blendMode)return a.insertBefore(t,i),void 0;if(a==r){var s=r.split(i),o=n.WebGLRenderer.getBatch(),h=this.batchs.indexOf(r);return o.init(t),this.batchs.splice(h+1,0,o,s),void 0}}}else a=i;var o=n.WebGLRenderer.getBatch();if(o.init(t),r){var h=this.batchs.indexOf(r);this.batchs.splice(h+1,0,o)}else this.batchs.push(o)}else t instanceof n.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof n.Strip?(this.initStrip(t),this.batchs.push(t)):t instanceof n.Graphics&&this.batchs.push(t);this.batchUpdate=!0}},n.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},n.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof n.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof n.WebGLBatch&&this.batchs[r+1]instanceof n.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),n.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e)}}},n.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},n.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},n.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=n.shaderProgram;i.useProgram(n.stripShaderProgram);var a=n.mat3.clone(t.worldTransform);n.mat3.transpose(a),i.uniformMatrix3fv(n.stripShaderProgram.translationMatrix,!1,a),i.uniform2f(n.stripShaderProgram.projectionVector,e.x,e.y),i.uniform1f(n.stripShaderProgram.alpha,t.worldAlpha),t.blendMode==n.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.useProgram(n.shaderProgram)},n.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;n.shaderProgram;var r=t.tilePosition,a=t.tileScale,s=r.x/t.texture.baseTexture.width,o=r.y/t.texture.baseTexture.height,h=t.width/t.texture.baseTexture.width/a.x,l=t.height/t.texture.baseTexture.height/a.y;t.uvs[0]=0-s,t.uvs[1]=0-o,t.uvs[2]=1*h-s,t.uvs[3]=0-o,t.uvs[4]=1*h-s,t.uvs[5]=1*l-o,t.uvs[6]=0-s,t.uvs[7]=1*l-o,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},n.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},n.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},n.CanvasRenderer.constructor=n.CanvasRenderer,n.CanvasRenderer.prototype.render=function(t){n.texturesToUpdate=[],n.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0&&(n.Texture.frameUpdates=[])},n.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},n.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof n.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof n.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof n.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof n.CustomRenderable?t.renderCanvas(this):t instanceof n.Graphics&&(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),n.CanvasGraphics.renderGraphics(t,i));if(t.children)for(var a=0;t.children.length>a;a++)this.renderDisplayObject(t.children[a]);this.context.setTransform(1,0,0,1,0,0)}},n.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var n=1;r-2>n;n++){var a=2*n,s=i[a],o=i[a+2],h=i[a+4],l=i[a+1],u=i[a+3],c=i[a+5];e.moveTo(s,l),e.lineTo(o,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},n.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;e.globalAlpha=t.worldAlpha,t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},n.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,n=i.length/2;this.count++;for(var a=1;n-2>a;a++){var s=2*a,o=i[s],h=i[s+2],l=i[s+4],u=i[s+1],c=i[s+3],d=i[s+5],p=r[s]*t.texture.width,f=r[s+2]*t.texture.width,g=r[s+4]*t.texture.width,v=r[s+1]*t.texture.height,m=r[s+3]*t.texture.height,x=r[s+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var b=p*m+v*g+f*x-m*g-v*f-p*x,y=o*m+v*l+h*x-m*l-v*h-o*x,T=p*h+o*g+f*l-h*g-o*f-p*l,A=p*m*l+v*h*g+o*f*x-o*m*g-v*f*l-p*h*x,w=u*m+v*d+c*x-m*d-v*c-u*x,_=p*c+u*g+f*d-c*g-u*f-p*d,R=p*m*d+v*c*g+u*f*x-u*m*g-v*f*d-p*c*x;e.transform(y/b,w/b,T/b,_/b,A/b,R/b),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},n.CanvasGraphics=function(){},n.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,r=0;t.graphicsData.length>r;r++){var a=t.graphicsData[r],s=a.points;if(e.strokeStyle=color="#"+("00000"+(0|a.lineColor).toString(16)).substr(-6),e.lineWidth=a.lineWidth,a.type==n.Graphics.POLY){e.beginPath(),e.moveTo(s[0],s[1]);for(var o=1;s.length/2>o;o++)e.lineTo(s[2*o],s[2*o+1]);s[0]==s[s.length-2]&&s[1]==s[s.length-1]&&e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}else if(a.type==n.Graphics.RECT)a.fillColor&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fillRect(s[0],s[1],s[2],s[3])),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.strokeRect(s[0],s[1],s[2],s[3]));else if(a.type==n.Graphics.CIRC)e.beginPath(),e.arc(s[0],s[1],s[2],0,2*Math.PI),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke());else if(a.type==n.Graphics.ELIP){var h=a.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,v=c+l,m=d+u,x=c+l/2,b=d+u/2;e.moveTo(c,b),e.bezierCurveTo(c,b-g,x-f,d,x,d),e.bezierCurveTo(x+f,d,v,b-g,v,b),e.bezierCurveTo(v,b+g,x+f,m,x,m),e.bezierCurveTo(x-f,m,c,b+g,c,b),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}}},n.Graphics=function(){n.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=2,this.lineColor="#FF0000",this.graphicsData=[],this.currentPath={points:[]}},n.Graphics.constructor=n.Graphics,n.Graphics.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Graphics.prototype.lineStyle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=void 0==i?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.graphicsData.push(this.currentPath)},n.Graphics.prototype.moveTo=function(t,e){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath)},n.Graphics.prototype.lineTo=function(t,e){this.currentPath.points.push(t,e),this.dirty=!0},n.Graphics.prototype.beginFill=function(t,e){this.filling=!0,this.fillColor=t||0,this.fillAlpha=e||1},n.Graphics.prototype.endFill=function(){this.filling=!1,this.fillColor=null,this.fillAlpha=1},n.Graphics.prototype.drawRect=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawCircle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:n.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawElipse=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.clear=function(){this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[]},n.Graphics.POLY=0,n.Graphics.RECT=1,n.Graphics.CIRC=2,n.Graphics.ELIP=3,n.Strip=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=n.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Strip.constructor=n.Strip,n.Strip.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},n.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Rope=function(t,e){n.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},n.Rope.constructor=n.Rope,n.Rope.prototype=Object.create(n.Strip.prototype),n.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,n=t[0],a=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var s=t.length,o=1;s>o;o++){var a=t[o],h=4*o,l=o/(s-1);o%2?(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1):(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,n=a}}},n.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],a={x:0,y:0},s=t[0];this.count-=.2,i[0]=s.x+a.x,i[1]=s.y+a.y,i[2]=s.x-a.x,i[3]=s.y-a.y;for(var o=t.length,h=1;o>h;h++){var s=t[h],l=4*h;e=t.length-1>h?t[h+1]:s,a.y=-(e.x-r.x),a.x=e.y-r.y;var u=10*(1-h/(o-1));u>1&&(u=1);var c=Math.sqrt(a.x*a.x+a.y*a.y),d=this.texture.height/2;a.x/=c,a.y/=c,a.x*=d,a.y*=d,i[l]=s.x+a.x,i[l+1]=s.y+a.y,i[l+2]=s.x-a.x,i[l+3]=s.y-a.y,r=s}n.DisplayObjectContainer.prototype.updateTransform.call(this)}},n.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0 },n.TilingSprite=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new n.Point(1,1),this.tilePosition=new n.Point(0,0),this.blendMode=n.blendModes.NORMAL},n.TilingSprite.constructor=n.TilingSprite,n.TilingSprite.prototype=Object.create(n.DisplayObjectContainer.prototype),n.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},n.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Spine=function(t){if(n.DisplayObjectContainer.call(this),this.spineData=n.AnimCache[t],!this.spineData)throw Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+t);this.count=0,this.sprites=[],this.skeleton=new u.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new u.AnimationStateData(this.spineData),this.state=new u.AnimationState(this.stateData);for(var e=0;this.skeleton.drawOrder.length>e;e++){var i=this.skeleton.drawOrder[e].data.attachmentName;n.TextureCache[i]||(i+=".png");var r=new n.Sprite(n.Texture.fromFrame(i));r.anchor.x=r.anchor.y=.5,this.addChild(r),this.sprites.push(r)}},n.Spine.constructor=n.Spine,n.Spine.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Spine.prototype.updateTransform=function(){this.state.update(1/60),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var t=0;this.skeleton.drawOrder.length>t;t++){var e=this.skeleton.drawOrder[t],i=e.bone.worldX+e.attachment.x*e.bone.m00+e.attachment.y*e.bone.m01+.5*e.attachment.width,r=e.bone.worldY+e.attachment.x*e.bone.m10+e.attachment.y*e.bone.m11+.5*e.attachment.height;if(e.cacheName!=e.attachment.name){var a=e.attachment.name;n.TextureCache[a]||(a+=".png"),this.sprites[t].setTexture(n.TextureCache[a]),e.cacheName=e.attachment.name}i+=-(e.attachment.width*(e.bone.worldScaleX+e.attachment.scaleX-1)>>1),r+=-(e.attachment.height*(e.bone.worldScaleY+e.attachment.scaleY-1)>>1),this.sprites[t].position.x=i,this.sprites[t].position.y=r,this.sprites[t].rotation=-(e.bone.worldRotation+e.attachment.rotation)*(Math.PI/180)}n.DisplayObjectContainer.prototype.updateTransform.call(this)};var u={};u.BoneData=function(t,e){this.name=t,this.parent=e},u.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},u.SlotData=function(t,e){this.name=t,this.boneData=e},u.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},u.Bone=function(t,e){this.data=t,this.parent=e,this.setToSetupPose()},u.Bone.yDown=!1,u.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(t,e){var i=this.parent;null!=i?(this.worldX=this.x*i.m00+this.y*i.m01+i.worldX,this.worldY=this.x*i.m10+this.y*i.m11+i.worldY,this.worldScaleX=i.worldScaleX*this.scaleX,this.worldScaleY=i.worldScaleY*this.scaleY,this.worldRotation=i.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var r=this.worldRotation*Math.PI/180,n=Math.cos(r),a=Math.sin(r);this.m00=n*this.worldScaleX,this.m10=a*this.worldScaleX,this.m01=-a*this.worldScaleY,this.m11=n*this.worldScaleY,t&&(this.m00=-this.m00,this.m01=-this.m01),e&&(this.m10=-this.m10,this.m11=-this.m11),u.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY}},u.Slot=function(t,e,i){this.data=t,this.skeleton=e,this.bone=i,this.setToSetupPose()},u.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(t){this.attachment=t,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(t){this._attachmentTime=this.skeleton.time-t},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var t=this.data;this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a;for(var e=this.skeleton.data.slots,i=0,r=e.length;r>i;i++)if(e[i]==t){this.setAttachment(t.attachmentName?this.skeleton.getAttachmentBySlotIndex(i,t.attachmentName):null);break}}},u.Skin=function(t){this.name=t,this.attachments={}},u.Skin.prototype={addAttachment:function(t,e,i){this.attachments[t+":"+e]=i},getAttachment:function(t,e){return this.attachments[t+":"+e]},_attachAll:function(t,e){for(var i in e.attachments){var r=i.indexOf(":"),n=parseInt(i.substring(0,r)),a=i.substring(r+1),s=t.slots[n];if(s.attachment&&s.attachment.name==a){var o=this.getAttachment(n,a);o&&s.setAttachment(o)}}}},u.Animation=function(t,e,i){this.name=t,this.timelines=e,this.duration=i},u.Animation.prototype={apply:function(t,e,i){i&&0!=this.duration&&(e%=this.duration);for(var r=this.timelines,n=0,a=r.length;a>n;n++)r[n].apply(t,e,1)},mix:function(t,e,i,r){i&&0!=this.duration&&(e%=this.duration);for(var n=this.timelines,a=0,s=n.length;s>a;a++)n[a].apply(t,e,r)}},u.binarySearch=function(t,e,i){var r=0,n=Math.floor(t.length/i)-2;if(0==n)return i;for(var a=n>>>1;;){if(e>=t[(a+1)*i]?r=a+1:n=a,r==n)return(r+1)*i;a=r+n>>>1}},u.linearSearch=function(t,e,i){for(var r=0,n=t.length-i;n>=r;r+=i)if(t[r]>e)return r;return-1},u.Curves=function(t){this.curves=[],this.curves.length=6*(t-1)},u.Curves.prototype={setLinear:function(t){this.curves[6*t]=0},setStepped:function(t){this.curves[6*t]=-1},setCurve:function(t,e,i,r,n){var a=.1,s=a*a,o=s*a,h=3*a,l=3*s,u=6*s,c=6*o,d=2*-e+r,p=2*-i+n,f=3*(e-r)+1,g=3*(i-n)+1,v=6*t,m=this.curves;m[v]=e*h+d*l+f*o,m[v+1]=i*h+p*l+g*o,m[v+2]=d*u+f*c,m[v+3]=p*u+g*c,m[v+4]=f*c,m[v+5]=g*c},getCurvePercent:function(t,e){e=0>e?0:e>1?1:e;var i=6*t,r=this.curves,n=r[i];if(!n)return e;if(-1==n)return 0;for(var a=r[i+1],s=r[i+2],o=r[i+3],h=r[i+4],l=r[i+5],u=n,c=a,d=8;;){if(u>=e){var p=u-n,f=c-a;return f+(c-f)*(e-p)/(u-p)}if(0==d)break;d--,n+=s,a+=o,s+=h,o+=l,u+=n,c+=a}return c+(1-c)*(e-u)/(1-u)}},u.RotateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=2*t},u.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){t*=2,this.frames[t]=e,this.frames[t+1]=i},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-2]){for(var a=n.data.rotation+r[r.length-1]-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;return n.rotation+=a*i,void 0}var s=u.binarySearch(r,e,2),o=r[s-1],h=r[s],l=1-(e-h)/(r[s-2]-h);l=this.curves.getCurvePercent(s/2-1,l);for(var a=r[s+1]-o;a>180;)a-=360;for(;-180>a;)a+=360;for(a=n.data.rotation+(o+a*l)-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;n.rotation+=a*i}}},u.TranslateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.x+=(n.data.x+r[r.length-2]-n.x)*i,n.y+=(n.data.y+r[r.length-1]-n.y)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.x+=(n.data.x+s+(r[a+1]-s)*l-n.x)*i,n.y+=(n.data.y+o+(r[a+2]-o)*l-n.y)*i}}},u.ScaleTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.scaleX+=(n.data.scaleX-1+r[r.length-2]-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+r[r.length-1]-n.scaleY)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.scaleX+=(n.data.scaleX-1+s+(r[a+1]-s)*l-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+o+(r[a+2]-o)*l-n.scaleY)*i}}},u.ColorTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=5*t},u.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e){t*=5,this.frames[t]=e,this.frames[t+1]=r,this.frames[t+2]=g,this.frames[t+3]=b,this.frames[t+4]=a},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.slots[this.slotIndex];if(e>=r[r.length-5]){var a=r.length-1;return n.r=r[a-3],n.g=r[a-2],n.b=r[a-1],n.a=r[a],void 0}var s=u.binarySearch(r,e,5),o=r[s-4],h=r[s-3],l=r[s-2],c=r[s-1],d=r[s],p=1-(e-d)/(r[s-5]-d);p=this.curves.getCurvePercent(s/5-1,p);var f=o+(r[s+1]-o)*p,g=h+(r[s+2]-h)*p,v=l+(r[s+3]-l)*p,m=c+(r[s+4]-c)*p;1>i?(n.r+=(f-n.r)*i,n.g+=(g-n.g)*i,n.b+=(v-n.b)*i,n.a+=(m-n.a)*i):(n.r=f,n.g=g,n.b=v,n.a=m)}}},u.AttachmentTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=t,this.attachmentNames=[],this.attachmentNames.length=t},u.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){this.frames[t]=e,this.attachmentNames[t]=i},apply:function(t,e){var i=this.frames;if(!(i[0]>e)){var r;r=e>=i[i.length-1]?i.length-1:u.binarySearch(i,e,1)-1;var n=this.attachmentNames[r];t.slots[this.slotIndex].setAttachment(n?t.getAttachmentBySlotIndex(this.slotIndex,n):null)}}},u.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},u.SkeletonData.prototype={defaultSkin:null,findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return slot[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSkin:function(t){for(var e=this.skins,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findAnimation:function(t){for(var e=this.animations,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null}},u.Skeleton=function(t){this.data=t,this.bones=[];for(var e=0,i=t.bones.length;i>e;e++){var r=t.bones[e],n=r.parent?this.bones[t.bones.indexOf(r.parent)]:null;this.bones.push(new u.Bone(r,n))}this.slots=[],this.drawOrder=[];for(var e=0,i=t.slots.length;i>e;e++){var a=t.slots[e],s=this.bones[t.bones.indexOf(a.boneData)],o=new u.Slot(a,this,s);this.slots.push(o),this.drawOrder.push(o)}},u.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var t=this.flipX,e=this.flipY,i=this.bones,r=0,n=i.length;n>r;r++)i[r].updateWorldTransform(t,e)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var t=this.bones,e=0,i=t.length;i>e;e++)t[e].setToSetupPose()},setSlotsToSetupPose:function(){for(var t=this.slots,e=0,i=t.length;i>e;e++)t[e].setToSetupPose(e)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},setSkinByName:function(t){var e=this.data.findSkin(t);if(!e)throw"Skin not found: "+t;this.setSkin(e)},setSkin:function(t){this.skin&&t&&t._attachAll(this,this.skin),this.skin=t},getAttachmentBySlotName:function(t,e){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(t),e)},getAttachmentBySlotIndex:function(t,e){if(this.skin){var i=this.skin.getAttachment(t,e);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},setAttachment:function(t,e){for(var i=this.slots,r=0,n=i.size;n>r;r++){var a=i[r];if(a.data.name==t){var s=null;if(e&&(s=this.getAttachment(r,e),null==s))throw"Attachment not found: "+e+", for slot: "+t;return a.setAttachment(s),void 0}}throw"Slot not found: "+t},update:function(t){time+=t}},u.AttachmentType={region:0},u.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},u.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(t,e,i,r,n){var a=this.uvs;n?(a[2]=t,a[3]=r,a[4]=t,a[5]=e,a[6]=i,a[7]=e,a[0]=i,a[1]=r):(a[0]=t,a[1]=r,a[2]=t,a[3]=e,a[4]=i,a[5]=e,a[6]=i,a[7]=r)},updateOffset:function(){var t=this.width/this.regionOriginalWidth*this.scaleX,e=this.height/this.regionOriginalHeight*this.scaleY,i=-this.width/2*this.scaleX+this.regionOffsetX*t,r=-this.height/2*this.scaleY+this.regionOffsetY*e,n=i+this.regionWidth*t,a=r+this.regionHeight*e,s=this.rotation*Math.PI/180,o=Math.cos(s),h=Math.sin(s),l=i*o+this.x,u=i*h,c=r*o+this.y,d=r*h,p=n*o+this.x,f=n*h,g=a*o+this.y,v=a*h,m=this.offset;m[0]=l-d,m[1]=c+u,m[2]=l-v,m[3]=g+u,m[4]=p-v,m[5]=g+f,m[6]=p-d,m[7]=c+f},computeVertices:function(t,e,i,r){t+=i.worldX,e+=i.worldY;var n=i.m00,a=i.m01,s=i.m10,o=i.m11,h=this.offset;r[0]=h[0]*n+h[1]*a+t,r[1]=h[0]*s+h[1]*o+e,r[2]=h[2]*n+h[3]*a+t,r[3]=h[2]*s+h[3]*o+e,r[4]=h[4]*n+h[5]*a+t,r[5]=h[4]*s+h[5]*o+e,r[6]=h[6]*n+h[7]*a+t,r[7]=h[6]*s+h[7]*o+e}},u.AnimationStateData=function(t){this.skeletonData=t,this.animationToMixTime={}},u.AnimationStateData.prototype={setMixByName:function(t,e,i){var r=this.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;var n=this.skeletonData.findAnimation(e);if(!n)throw"Animation not found: "+e;this.setMix(r,n,i)},setMix:function(t,e,i){this.animationToMixTime[t.name+":"+e.name]=i},getMix:function(t,e){var i=this.animationToMixTime[t.name+":"+e.name];return i?i:0}},u.AnimationState=function(t){this.data=t,this.queue=[]},u.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(t){if(this.currentTime+=t,this.previousTime+=t,this.mixTime+=t,this.queue.length>0){var e=this.queue[0];this.currentTime>=e.delay&&(this._setAnimation(e.animation,e.loop),this.queue.shift())}},apply:function(t){if(this.current)if(this.previous){this.previous.apply(t,this.previousTime,this.previousLoop);var e=this.mixTime/this.mixDuration;e>=1&&(e=1,this.previous=null),this.current.mix(t,this.currentTime,this.currentLoop,e)}else this.current.apply(t,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(t,e){this.previous=null,t&&this.current&&(this.mixDuration=this.data.getMix(this.current,t),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=t,this.currentLoop=e,this.currentTime=0},setAnimationByName:function(t,e){var i=this.data.skeletonData.findAnimation(t);if(!i)throw"Animation not found: "+t;this.setAnimation(i,e)},setAnimation:function(t,e){this.queue.length=0,this._setAnimation(t,e)},addAnimationByName:function(t,e,i){var r=this.data.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;this.addAnimation(r,e,i)},addAnimation:function(t,e,i){var r={};if(r.animation=t,r.loop=e,!i||0>=i){var n=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;i=null!=n?n.duration-this.data.getMix(n,t)+(i||0):0}r.delay=i,this.queue.push(r)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},u.SkeletonJson=function(t){this.attachmentLoader=t},u.SkeletonJson.prototype={scale:1,readSkeletonData:function(t){for(var e=new u.SkeletonData,i=t.bones,r=0,n=i.length;n>r;r++){var a=i[r],s=null;if(a.parent&&(s=e.findBone(a.parent),!s))throw"Parent bone not found: "+a.parent;var o=new u.BoneData(a.name,s);o.length=(a.length||0)*this.scale,o.x=(a.x||0)*this.scale,o.y=(a.y||0)*this.scale,o.rotation=a.rotation||0,o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1,e.bones.push(o)}for(var h=t.slots,r=0,n=h.length;n>r;r++){var l=h[r],o=e.findBone(l.bone);if(!o)throw"Slot bone not found: "+l.bone;var c=new u.SlotData(l.name,o),d=l.color;d&&(c.r=u.SkeletonJson.toColor(d,0),c.g=u.SkeletonJson.toColor(d,1),c.b=u.SkeletonJson.toColor(d,2),c.a=u.SkeletonJson.toColor(d,3)),c.attachmentName=l.attachment,e.slots.push(c)}var p=t.skins;for(var f in p)if(p.hasOwnProperty(f)){var g=p[f],v=new u.Skin(f);for(var m in g)if(g.hasOwnProperty(m)){var x=e.findSlotIndex(m),b=g[m];for(var y in b)if(b.hasOwnProperty(y)){var T=this.readAttachment(v,y,b[y]);null!=T&&v.addAttachment(x,y,T)}}e.skins.push(v),"default"==v.name&&(e.defaultSkin=v)}var A=t.animations;for(var w in A)A.hasOwnProperty(w)&&this.readAnimation(w,A[w],e);return e},readAttachment:function(t,e,i){e=i.name||e;var r=u.AttachmentType[i.type||"region"],n=new u.RegionAttachment;return n.name=e,r==u.AttachmentType.region&&(n.x=(i.x||0)*this.scale,n.y=(i.y||0)*this.scale,n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1,n.rotation=i.rotation||0,n.width=(i.width||32)*this.scale,n.height=(i.height||32)*this.scale,n.updateOffset()),n},readAnimation:function(t,e,i){var r=[],n=0,a=e.bones;for(var s in a)if(a.hasOwnProperty(s)){var o=i.findBoneIndex(s);if(-1==o)throw"Bone not found: "+s;var h=a[s];for(var l in h)if(h.hasOwnProperty(l)){var c=h[l];if("rotate"==l){var d=new u.RotateTimeline(c.length);d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p,v.time,v.angle),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[2*d.getFrameCount()-2])}else{if("translate"!=l&&"scale"!=l)throw"Invalid timeline type for a bone: "+l+" ("+s+")";var d,m=1;"scale"==l?d=new u.ScaleTimeline(c.length):(d=new u.TranslateTimeline(c.length),m=this.scale),d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],x=(v.x||0)*m,b=(v.y||0)*m;d.setFrame(p,v.time,x,b),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[3*d.getFrameCount()-3])}}}var y=e.slots;for(var T in y)if(y.hasOwnProperty(T)){var A=y[T],w=i.findSlotIndex(T);for(var l in A)if(A.hasOwnProperty(l)){var c=A[l];if("color"==l){var d=new u.ColorTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],_=v.color,R=u.SkeletonJson.toColor(_,0),S=u.SkeletonJson.toColor(_,1),C=u.SkeletonJson.toColor(_,2),L=u.SkeletonJson.toColor(_,3);d.setFrame(p,v.time,R,S,C,L),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[5*d.getFrameCount()-5])}else{if("attachment"!=l)throw"Invalid timeline type for a slot: "+l+" ("+T+")";var d=new u.AttachmentTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p++,v.time,v.name)}r.push(d),n=Math.max(n,d.frames[Math.floor(d.getFrameCount())-1])}}}i.animations.push(new u.Animation(t,r,n))}},u.SkeletonJson.readCurve=function(t,e,i){var r=i.curve;r&&("stepped"==r?t.curves.setStepped(e):r instanceof Array&&t.curves.setCurve(e,r[0],r[1],r[2],r[3]))},u.SkeletonJson.toColor=function(t,e){if(8!=t.length)throw"Color hexidecimal length must be 8, recieved: "+t;return parseInt(t.substring(2*e,2),16)/255},u.Atlas=function(t,e){this.textureLoader=e,this.pages=[],this.regions=[];var i=new u.AtlasReader(t),r=[];r.length=4;for(var n=null;;){var a=i.readLine();if(null==a)break;if(a=i.trim(a),0==a.length)n=null;else if(n){var s=new u.AtlasRegion;s.name=a,s.page=n,s.rotate="true"==i.readValue(),i.readTuple(r);var o=parseInt(r[0]),h=parseInt(r[1]);i.readTuple(r);var l=parseInt(r[0]),c=parseInt(r[1]);s.u=o/n.width,s.v=h/n.height,s.rotate?(s.u2=(o+c)/n.width,s.v2=(h+l)/n.height):(s.u2=(o+l)/n.width,s.v2=(h+c)/n.height),s.x=o,s.y=h,s.width=Math.abs(l),s.height=Math.abs(c),4==i.readTuple(r)&&(s.splits=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],4==i.readTuple(r)&&(s.pads=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],i.readTuple(r))),s.originalWidth=parseInt(r[0]),s.originalHeight=parseInt(r[1]),i.readTuple(r),s.offsetX=parseInt(r[0]),s.offsetY=parseInt(r[1]),s.index=parseInt(i.readValue()),this.regions.push(s)}else{n=new u.AtlasPage,n.name=a,n.format=u.Atlas.Format[i.readValue()],i.readTuple(r),n.minFilter=u.Atlas.TextureFilter[r[0]],n.magFilter=u.Atlas.TextureFilter[r[1]];var d=i.readValue();n.uWrap=u.Atlas.TextureWrap.clampToEdge,n.vWrap=u.Atlas.TextureWrap.clampToEdge,"x"==d?n.uWrap=u.Atlas.TextureWrap.repeat:"y"==d?n.vWrap=u.Atlas.TextureWrap.repeat:"xy"==d&&(n.uWrap=n.vWrap=u.Atlas.TextureWrap.repeat),e.load(n,a),this.pages.push(n)}}},u.Atlas.prototype={findRegion:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},dispose:function(){for(var t=this.pages,e=0,i=t.length;i>e;e++)this.textureLoader.unload(t[e].rendererObject)},updateUVs:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++){var n=e[i];n.page==t&&(n.u=n.x/t.width,n.v=n.y/t.height,n.rotate?(n.u2=(n.x+n.height)/t.width,n.v2=(n.y+n.width)/t.height):(n.u2=(n.x+n.width)/t.width,n.v2=(n.y+n.height)/t.height))}}},u.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},u.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},u.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},u.AtlasPage=function(){},u.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},u.AtlasRegion=function(){},u.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},u.AtlasReader=function(t){this.lines=t.split(/\r\n|\r|\n/)},u.AtlasReader.prototype={index:0,trim:function(t){return t.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw"Invalid line: "+t;return this.trim(t.substring(e+1))},readTuple:function(t){var e=this.readLine(),i=e.indexOf(":");if(-1==i)throw"Invalid line: "+e;for(var r=0,n=i+1;3>r;r++){var a=e.indexOf(",",n);if(-1==a){if(0==r)throw"Invalid line: "+e;break}t[r]=this.trim(e.substr(n,a-n)),n=a+1}return t[r]=this.trim(e.substring(n)),r+1}},u.AtlasAttachmentLoader=function(t){this.atlas=t},u.AtlasAttachmentLoader.prototype={newAttachment:function(t,e,i){switch(e){case u.AttachmentType.region:var r=this.atlas.findRegion(i);if(!r)throw"Region not found in atlas: "+i+" ("+e+")";var n=new u.RegionAttachment(i);return n.rendererObject=r,n.setUVs(r.u,r.v,r.u2,r.v2,r.rotate),n.regionOffsetX=r.offsetX,n.regionOffsetY=r.offsetY,n.regionWidth=r.width,n.regionHeight=r.height,n.regionOriginalWidth=r.originalWidth,n.regionOriginalHeight=r.originalHeight,n}throw"Unknown attachment type: "+e}},n.AnimCache={},u.Bone.yDown=!0,n.CustomRenderable=function(){n.DisplayObject.call(this)},n.CustomRenderable.constructor=n.CustomRenderable,n.CustomRenderable.prototype=Object.create(n.DisplayObject.prototype),n.CustomRenderable.prototype.renderCanvas=function(){},n.CustomRenderable.prototype.initWebGL=function(){},n.CustomRenderable.prototype.renderWebGL=function(){},n.BaseTextureCache={},n.texturesToUpdate=[],n.texturesToDestroy=[],n.BaseTexture=function(t){if(n.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,n.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);this._powerOf2=!1}},n.BaseTexture.constructor=n.BaseTexture,n.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,n.texturesToDestroy.push(this)},n.BaseTexture.fromImage=function(t,e){var i=n.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new n.BaseTexture(r),n.BaseTextureCache[t]=i}return i},n.TextureCache={},n.FrameCache={},n.Texture=function(t,e){if(n.EventTarget.call(this),e||(this.noFrame=!0,e=new n.Rectangle(0,0,1,1)),this.trim=new n.Point,t instanceof n.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new n.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},n.Texture.constructor=n.Texture,n.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new n.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},n.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},n.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,n.Texture.frameUpdates.push(this)},n.Texture.fromImage=function(t,e){var i=n.TextureCache[t];return i||(i=new n.Texture(n.BaseTexture.fromImage(t,e)),n.TextureCache[t]=i),i},n.Texture.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},n.Texture.fromCanvas=function(t){var e=new n.BaseTexture(t);return new n.Texture(e)},n.Texture.addTextureToCache=function(t,e){n.TextureCache[e]=t},n.Texture.removeTextureFromCache=function(t){var e=n.TextureCache[t];return n.TextureCache[t]=null,e},n.Texture.frameUpdates=[],n.RenderTexture=function(t,e){n.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=n.mat3.create(),this.frame=new n.Rectangle(0,0,this.width,this.height),n.gl?this.initWebGL():this.initCanvas()},n.RenderTexture.constructor=n.RenderTexture,n.RenderTexture.prototype=Object.create(n.Texture.prototype),n.RenderTexture.prototype.initWebGL=function(){var t=n.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new n.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new n.Point(this.width/2,this.height/2),this.projectionMatrix=n.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},n.RenderTexture.prototype.initCanvas=function(){this.renderer=new n.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new n.BaseTexture(this.renderer.view),this.frame=new n.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},n.RenderTexture.prototype.renderWebGL=function(t,e){var i=n.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=n.mat3.create(),t.worldTransform[4]=-1,t.worldTransform[5]=2*this.projection.y;for(var a=0,s=r.length;s>a;a++)r[a].updateTransform();var o=t.__renderGroup;o?t==o.root?o.render(this.projection):o.renderSpecific(t,this.projection):(this.renderGroup||(this.renderGroup=new n.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projection))},n.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=n.mat3.create();for(var r=0,a=i.length;a>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),n.texturesToUpdate.push(this.baseTexture)},n.AssetLoader=function(t){n.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:n.ImageLoader,jpeg:n.ImageLoader,png:n.ImageLoader,gif:n.ImageLoader,json:n.JsonLoader,anim:n.SpineLoader,xml:n.BitmapFontLoader,fnt:n.BitmapFontLoader}},n.AssetLoader.constructor=n.AssetLoader,n.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),n=this.loadersByType[r];if(!n)throw Error(r+" is an unsupported file type");var a=new n(i,this.crossorigin);a.addEventListener("loaded",function(){t.onAssetLoaded()}),a.load()}},n.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},n.JsonLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.crossorigin=e,this.loaded=!1},n.JsonLoader.constructor=n.JsonLoader,n.JsonLoader.prototype.load=function(){this.ajaxRequest=new l;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},n.JsonLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState)if(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))if(this.json=JSON.parse(this.ajaxRequest.responseText),this.json.frames){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0))}i.load()}else if(this.json.bones){var o=new u.SkeletonJson,h=o.readSkeletonData(this.json);n.AnimCache[this.url]=h,this.onLoaded()}else this.onLoaded();else this.onError()},n.JsonLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},n.JsonLoader.prototype.onError=function(){this.dispatchEvent({type:"error",content:this})},n.SpriteSheetLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},n.SpriteSheetLoader.constructor=n.SpriteSheetLoader,n.SpriteSheetLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpriteSheetLoader.prototype.onJSONLoaded=function(){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0)) }i.load()},n.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.ImageLoader=function(t,e){n.EventTarget.call(this),this.texture=n.Texture.fromImage(t,e)},n.ImageLoader.constructor=n.ImageLoader,n.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},n.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.BitmapFontLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},n.BitmapFontLoader.constructor=n.BitmapFontLoader,n.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},n.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new n.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],a=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(a.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var s=this.ajaxRequest.responseXML.getElementsByTagName("char"),o=0;s.length>o;o++){var h=parseInt(s[o].attributes.getNamedItem("id").nodeValue,10),l={x:parseInt(s[o].attributes.getNamedItem("x").nodeValue,10),y:parseInt(s[o].attributes.getNamedItem("y").nodeValue,10),width:parseInt(s[o].attributes.getNamedItem("width").nodeValue,10),height:parseInt(s[o].attributes.getNamedItem("height").nodeValue,10)};n.TextureCache[h]=new n.Texture(this.texture,l),i.chars[h]={xOffset:parseInt(s[o].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(s[o].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(s[o].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{},texture:new n.Texture(this.texture,l)}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(o=0;u.length>o;o++){var c=parseInt(u[o].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[o].attributes.getNamedItem("second").nodeValue,10),p=parseInt(u[o].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=p}n.BitmapText.fonts[i.font]=i;var f=this;e.addEventListener("loaded",function(){f.onLoaded()}),e.load()}},n.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.SpineLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.crossorigin=e,this.loaded=!1},n.SpineLoader.constructor=n.SpineLoader,n.SpineLoader.prototype.load=function(){new n.JsonLoader(this.url,this.crossorigin),jsonLoader.addEventListener("loaded",function(t){scope.json=t.content.json,scope.onJSONLoaded()}),jsonLoader.load()},n.SpineLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpineLoader.prototype.onJSONLoaded=function(){var t=new u.SkeletonJson,e=t.readSkeletonData(this.json);n.AnimCache[this.url]=e,this.onLoaded()},n.SpineLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports.PIXI=n):i.PIXI=n}).call(this); \ No newline at end of file diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index 25cca17..0391561 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index 25cca17..0391561 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 12 - Spine/pixi.js b/examples/example 12 - Spine/pixi.js index 25cca17..0391561 100644 --- a/examples/example 12 - Spine/pixi.js +++ b/examples/example 12 - Spine/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 13 - Graphics/index.html b/examples/example 13 - Graphics/index.html index e6996b7..d847ef2 100644 --- a/examples/example 13 - Graphics/index.html +++ b/examples/example 13 - Graphics/index.html @@ -80,17 +80,40 @@ stage.addChild(graphics); + // lets create moving shape + var thing = new PIXI.Graphics(); + stage.addChild(thing); + thing.position.x = 620/2; + thing.position.y = 380/2; + + var count = 0; + stage.click = stage.tap = function() { graphics.lineStyle(Math.random() * 30, Math.random() * 0xFFFFFF, 1); graphics.moveTo(Math.random() * 620,Math.random() * 380); graphics.lineTo(Math.random() * 620,Math.random() * 380); - } requestAnimFrame(animate); function animate() { + + thing.clear(); + + count += 0.1; + + thing.clear(); + thing.lineStyle(30, 0xff0000, 1); + thing.beginFill(0xffFF00, 0.5); + + thing.moveTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + thing.lineTo(120 + Math.cos(count) * 20, -100 + Math.sin(count)* 20); + thing.lineTo(120 + Math.sin(count) * 20, 100 + Math.cos(count)* 20); + thing.lineTo(-120 + Math.cos(count)* 20, 100 + Math.sin(count)* 20); + thing.lineTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + + thing.rotation = count * 0.1; renderer.render(stage); requestAnimFrame( animate ); } diff --git a/examples/example 13 - Graphics/pixi.js b/examples/example 13 - Graphics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 13 - Graphics/pixi.js +++ b/examples/example 13 - Graphics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index 25cca17..0391561 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index 25cca17..0391561 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 4 - Balls/pixi.js b/examples/example 4 - Balls/pixi.js index 25cca17..0391561 100644 --- a/examples/example 4 - Balls/pixi.js +++ b/examples/example 4 - Balls/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 5 - Morph/pixi.js b/examples/example 5 - Morph/pixi.js index 25cca17..0391561 100644 --- a/examples/example 5 - Morph/pixi.js +++ b/examples/example 5 - Morph/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 6 - Interactivity/pixi.js b/examples/example 6 - Interactivity/pixi.js index 25cca17..0391561 100644 --- a/examples/example 6 - Interactivity/pixi.js +++ b/examples/example 6 - Interactivity/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.js b/bin/pixi.js index 51d6836..96307b0 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -9,7 +9,7 @@ * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; +(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[],t._webGL.indices=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; if(0!=r.length){var a=new n.Point(r[0],r[1]),s=new n.Point(r[r.length-2],r[r.length-1]);if(a.x==s.x&&a.y==s.y){r.pop(),r.pop(),s=new n.Point(r[r.length-2],r[r.length-1]);var o=s.x+.5*(a.x-s.x),h=s.y+.5*(a.y-s.y);r.unshift(o,h),r.push(o,h)}var l,u,c,d,p,f,g,v,m,x,b,y,T,A,w,_,R,S,C,L,E,B=i.points,F=i.indices,P=r.length/2,G=r.length,I=B.length/6,D=t.lineWidth/2,M=e(t.lineColor),O=t.lineAlpha,W=M[0]*O,U=M[1]*O,j=M[2]*O;l=r[0],u=r[1],c=r[2],d=r[3],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(l-g,u-v,W,U,j,O),B.push(l+g,u+v,W,U,j,O);for(var k=1;P-1>k;k++)l=r[2*(k-1)],u=r[2*(k-1)+1],c=r[2*k],d=r[2*k+1],p=r[2*(k+1)],f=r[2*(k+1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,m=-(d-f),x=c-p,E=Math.sqrt(m*m+x*x),m/=E,x/=E,m*=D,x*=D,T=-v+u-(-v+d),A=-g+c-(-g+l),w=(-g+l)*(-v+d)-(-g+c)*(-v+u),_=-x+f-(-x+d),R=-m+c-(-m+p),S=(-m+p)*(-x+d)-(-m+c)*(-x+f),C=T*R-_*A,0==C&&(C+=1),px=(A*S-R*w)/C,py=(_*w-T*S)/C,L=(px-c)*(px-c)+(py-d)+(py-d),L>19600?(b=g-m,y=v-x,E=Math.sqrt(b*b+y*y),b/=E,y/=E,b*=D,y*=D,B.push(c-b,d-y),B.push(W,U,j,O),B.push(c+b,d+y),B.push(W,U,j,O),B.push(c-b,d-y),B.push(W,U,j,O),G++):(B.push(px,py),B.push(W,U,j,O),B.push(c-(px-c),d-(py-d)),B.push(W,U,j,O));l=r[2*(P-2)],u=r[2*(P-2)+1],c=r[2*(P-1)],d=r[2*(P-1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(c-g,d-v),B.push(W,U,j,O),B.push(c+g,d+v),B.push(W,U,j,O),F.push(I);for(var k=0;G>k;k++)F.push(I++);F.push(I-1)}},n.WebGLGraphics.buildPoly=function(t,i){var r=t.points;if(!(6>r.length)){for(var a=i.points,s=i.indices,o=r.length/2,h=e(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=n.PolyK.Triangulate(r),f=a.length/6,g=0;p.length>g;g+=3)s.push(p[g]+f),s.push(p[g]+f),s.push(p[g+1]+f),s.push(p[g+2]+f),s.push(p[g+2]+f);for(var g=0;o>g;g++)a.push(r[2*g],r[2*g+1],u,c,d,l)}},n._defaultFrame=new n.Rectangle(0,0,1,1),n.gl,n.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var a=this;this.view.addEventListener("webglcontextlost",function(t){a.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){a.handleContextRestored(t)},!1),this.batchs=[];try{n.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!0,premultipliedAlpha:!1})}catch(s){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}n.initPrimitiveShader(),n.initDefaultShader(),n.initDefaultStripShader(),n.activateDefaultShader();var o=this.gl;n.WebGLRenderer.gl=o,this.batch=new n.WebGLBatch(o),o.disable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.enable(o.BLEND),o.colorMask(!0,!0,!0,this.transparent),n.projection=new n.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new n.WebGLRenderGroup(this.gl)},n.WebGLRenderer.constructor=n.WebGLRenderer,n.WebGLRenderer.getBatch=function(){return 0==n._batchs.length?new n.WebGLBatch(n.WebGLRenderer.gl):n._batchs.pop()},n.WebGLRenderer.returnBatch=function(t){t.clean(),n._batchs.push(t)},n.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),n.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],!this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(n.projection),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0){for(var i=0;n.Texture.frameUpdates.length>i;i++)n.Texture.frameUpdates[i].updateFrame=!1;n.Texture.frameUpdates=[]}}},n.WebGLRenderer.updateTextures=function(){for(var t=0;n.texturesToUpdate.length>t;t++)this.updateTexture(n.texturesToUpdate[t]);for(var t=0;n.texturesToDestroy.length>t;t++)this.destroyTexture(n.texturesToDestroy[t]);n.texturesToUpdate=[],n.texturesToDestroy=[]},n.WebGLRenderer.updateTexture=function(t){var e=n.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},n.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},n.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),n.projection.x=this.width/2,n.projection.y=this.height/2},n.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},n.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;n.TextureCache.length>t;t++)this.updateTexture(n.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;n._restoreBatchs(this.gl),this.contextLost=!1},n._batchs=[],n._getBatch=function(t){return 0==n._batchs.length?new n.WebGLBatch(t):n._batchs.pop()},n._returnBatch=function(t){t.clean(),n._batchs.push(t)},n._restoreBatchs=function(t){for(var e=0;n._batchs.length>e;e++)n._batchs[e].restoreLostContext(t)},n.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=n.blendModes.NORMAL,this.dynamicSize=1},n.WebGLBatch.constructor=n.WebGLBatch,n.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},n.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},n.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},n.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},n.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},n.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},n.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new n.WebGLBatch(this.gl);e.init(t),e.texture=this.texture,e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},n.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},n.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,n=4*i;this.indices[r+0]=n+0,this.indices[r+1]=n+1,this.indices[r+2]=n+2,this.indices[r+3]=n+0,this.indices[r+4]=n+2,this.indices[r+5]=n+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},n.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof n.WebGLBatch?this.batchs[r].render():i instanceof n.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof n.Strip?i.visible&&this.renderStrip(i,t):i instanceof n.Graphics&&i.visible&&n.WebGLGraphics.renderGraphics(i,t)},n.WebGLRenderGroup.prototype.renderSpecific=function(t,e){n.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniform2f(n.shaderProgram.projectionVector,e.x,e.y);var r,a,s,o,h=t.renderable?t:this.getNextRenderable(t),l=h.batch;if(h instanceof n.Sprite){l=h.batch;var u=l.head;if(u==h)r=0;else for(r=1;u.__next!=h;)r++,u=u.__next}else l=h;for(var c,d=t,p=t;p.children.length>0;)p=p.children[p.children.length-1],p.renderable&&(d=p);if(d instanceof n.Sprite){c=d.batch;var u=c.head;if(u==d)s=0;else for(s=1;u.__next!=d;)s++,u=u.__next}else c=d;if(l==c)return l instanceof n.WebGLBatch?l.render(r,s+1):this.renderSpecial(l),void 0;a=this.batchs.indexOf(l),o=this.batchs.indexOf(c),l instanceof n.WebGLBatch?l.render(r):this.renderSpecial(l);for(var f=a+1;o>f;f++)renderable=this.batchs[f],renderable instanceof n.WebGLBatch?this.batchs[f].render():this.renderSpecial(renderable);c instanceof n.WebGLBatch?c.render(0,s+1):this.renderSpecial(c)},n.WebGLRenderGroup.prototype.renderSpecial=function(t){t instanceof n.TilingSprite?t.visible&&this.renderTilingSprite(t,projectionMatrix):t instanceof n.Strip?t.visible&&this.renderStrip(t,projectionMatrix):t instanceof n.CustomRenderable?t.visible&&t.renderWebGL(this,projectionMatrix):t instanceof n.Graphics&&t.visible&&n.WebGLGraphics.renderGraphics(t)},n.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var n=i[r];n.worldVisible=n.visible&&e,n.textureChange&&(n.textureChange=!1,n.worldVisible&&(this.removeDisplayObject(n),this.addDisplayObject(n))),n.children.length>0&&this.checkVisibility(n,n.worldVisible)}},n.WebGLRenderGroup.prototype.updateTexture=function(t){if(1==t.batch.length)return t.batch.texture=t.texture.baseTexture,void 0;if(t.batch.texture!=t.texture.baseTexture)if(t.batch.head==t){var e=t.batch,i=this.batchs.indexOf(e),r=this.batchs[i-1];if(e.remove(t),r)if(r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)r.insertAfter(t,r.tail);else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i-1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(0,0,a)}}else if(t.batch.tail==t){var e=t.batch,i=this.batchs.indexOf(e),s=this.batchs[i+1];if(e.remove(t),s){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,s.head),void 0;var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i+1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.push(a)}}else{var e=t.batch,o=e.split(t);o.remove(t);var a=n.WebGLRenderer.getBatch(),i=this.batchs.indexOf(e);a.init(t),this.batchs.splice(i+1,0,a,o)}},n.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof n.Sprite){var r,a;if(e instanceof n.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof n.Sprite){if(a=i.batch){if(a.texture==t.texture.baseTexture&&a.blendMode==t.blendMode)return a.insertBefore(t,i),void 0;if(a==r){var s=r.split(i),o=n.WebGLRenderer.getBatch(),h=this.batchs.indexOf(r);return o.init(t),this.batchs.splice(h+1,0,o,s),void 0}}}else a=i;var o=n.WebGLRenderer.getBatch();if(o.init(t),r){var h=this.batchs.indexOf(r);this.batchs.splice(h+1,0,o)}else this.batchs.push(o)}else t instanceof n.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof n.Strip?(this.initStrip(t),this.batchs.push(t)):t instanceof n.Graphics&&this.batchs.push(t);this.batchUpdate=!0}},n.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},n.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof n.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof n.WebGLBatch&&this.batchs[r+1]instanceof n.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),n.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e)}}},n.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},n.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},n.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=n.shaderProgram;i.useProgram(n.stripShaderProgram);var a=n.mat3.clone(t.worldTransform);n.mat3.transpose(a),i.uniformMatrix3fv(n.stripShaderProgram.translationMatrix,!1,a),i.uniform2f(n.stripShaderProgram.projectionVector,e.x,e.y),i.uniform1f(n.stripShaderProgram.alpha,t.worldAlpha),t.blendMode==n.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.useProgram(n.shaderProgram)},n.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;n.shaderProgram;var r=t.tilePosition,a=t.tileScale,s=r.x/t.texture.baseTexture.width,o=r.y/t.texture.baseTexture.height,h=t.width/t.texture.baseTexture.width/a.x,l=t.height/t.texture.baseTexture.height/a.y;t.uvs[0]=0-s,t.uvs[1]=0-o,t.uvs[2]=1*h-s,t.uvs[3]=0-o,t.uvs[4]=1*h-s,t.uvs[5]=1*l-o,t.uvs[6]=0-s,t.uvs[7]=1*l-o,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},n.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},n.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},n.CanvasRenderer.constructor=n.CanvasRenderer,n.CanvasRenderer.prototype.render=function(t){n.texturesToUpdate=[],n.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0&&(n.Texture.frameUpdates=[])},n.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},n.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof n.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof n.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof n.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof n.CustomRenderable?t.renderCanvas(this):t instanceof n.Graphics&&(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),n.CanvasGraphics.renderGraphics(t,i));if(t.children)for(var a=0;t.children.length>a;a++)this.renderDisplayObject(t.children[a]);this.context.setTransform(1,0,0,1,0,0)}},n.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var n=1;r-2>n;n++){var a=2*n,s=i[a],o=i[a+2],h=i[a+4],l=i[a+1],u=i[a+3],c=i[a+5];e.moveTo(s,l),e.lineTo(o,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},n.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;e.globalAlpha=t.worldAlpha,t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},n.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,n=i.length/2;this.count++;for(var a=1;n-2>a;a++){var s=2*a,o=i[s],h=i[s+2],l=i[s+4],u=i[s+1],c=i[s+3],d=i[s+5],p=r[s]*t.texture.width,f=r[s+2]*t.texture.width,g=r[s+4]*t.texture.width,v=r[s+1]*t.texture.height,m=r[s+3]*t.texture.height,x=r[s+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var b=p*m+v*g+f*x-m*g-v*f-p*x,y=o*m+v*l+h*x-m*l-v*h-o*x,T=p*h+o*g+f*l-h*g-o*f-p*l,A=p*m*l+v*h*g+o*f*x-o*m*g-v*f*l-p*h*x,w=u*m+v*d+c*x-m*d-v*c-u*x,_=p*c+u*g+f*d-c*g-u*f-p*d,R=p*m*d+v*c*g+u*f*x-u*m*g-v*f*d-p*c*x;e.transform(y/b,w/b,T/b,_/b,A/b,R/b),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},n.CanvasGraphics=function(){},n.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,r=0;t.graphicsData.length>r;r++){var a=t.graphicsData[r],s=a.points;if(e.strokeStyle=color="#"+("00000"+(0|a.lineColor).toString(16)).substr(-6),e.lineWidth=a.lineWidth,a.type==n.Graphics.POLY){e.beginPath(),e.moveTo(s[0],s[1]);for(var o=1;s.length/2>o;o++)e.lineTo(s[2*o],s[2*o+1]);s[0]==s[s.length-2]&&s[1]==s[s.length-1]&&e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}else if(a.type==n.Graphics.RECT)a.fillColor&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fillRect(s[0],s[1],s[2],s[3])),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.strokeRect(s[0],s[1],s[2],s[3]));else if(a.type==n.Graphics.CIRC)e.beginPath(),e.arc(s[0],s[1],s[2],0,2*Math.PI),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke());else if(a.type==n.Graphics.ELIP){var h=a.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,v=c+l,m=d+u,x=c+l/2,b=d+u/2;e.moveTo(c,b),e.bezierCurveTo(c,b-g,x-f,d,x,d),e.bezierCurveTo(x+f,d,v,b-g,v,b),e.bezierCurveTo(v,b+g,x+f,m,x,m),e.bezierCurveTo(x-f,m,c,b+g,c,b),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}}},n.Graphics=function(){n.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=2,this.lineColor="#FF0000",this.graphicsData=[],this.currentPath={points:[]}},n.Graphics.constructor=n.Graphics,n.Graphics.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Graphics.prototype.lineStyle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=void 0==i?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.graphicsData.push(this.currentPath)},n.Graphics.prototype.moveTo=function(t,e){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath)},n.Graphics.prototype.lineTo=function(t,e){this.currentPath.points.push(t,e),this.dirty=!0},n.Graphics.prototype.beginFill=function(t,e){this.filling=!0,this.fillColor=t||0,this.fillAlpha=e||1},n.Graphics.prototype.endFill=function(){this.filling=!1,this.fillColor=null,this.fillAlpha=1},n.Graphics.prototype.drawRect=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawCircle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:n.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawElipse=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.clear=function(){this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[]},n.Graphics.POLY=0,n.Graphics.RECT=1,n.Graphics.CIRC=2,n.Graphics.ELIP=3,n.Strip=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=n.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Strip.constructor=n.Strip,n.Strip.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},n.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Rope=function(t,e){n.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},n.Rope.constructor=n.Rope,n.Rope.prototype=Object.create(n.Strip.prototype),n.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,n=t[0],a=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var s=t.length,o=1;s>o;o++){var a=t[o],h=4*o,l=o/(s-1);o%2?(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1):(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,n=a}}},n.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],a={x:0,y:0},s=t[0];this.count-=.2,i[0]=s.x+a.x,i[1]=s.y+a.y,i[2]=s.x-a.x,i[3]=s.y-a.y;for(var o=t.length,h=1;o>h;h++){var s=t[h],l=4*h;e=t.length-1>h?t[h+1]:s,a.y=-(e.x-r.x),a.x=e.y-r.y;var u=10*(1-h/(o-1));u>1&&(u=1);var c=Math.sqrt(a.x*a.x+a.y*a.y),d=this.texture.height/2;a.x/=c,a.y/=c,a.x*=d,a.y*=d,i[l]=s.x+a.x,i[l+1]=s.y+a.y,i[l+2]=s.x-a.x,i[l+3]=s.y-a.y,r=s}n.DisplayObjectContainer.prototype.updateTransform.call(this)}},n.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0 },n.TilingSprite=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new n.Point(1,1),this.tilePosition=new n.Point(0,0),this.blendMode=n.blendModes.NORMAL},n.TilingSprite.constructor=n.TilingSprite,n.TilingSprite.prototype=Object.create(n.DisplayObjectContainer.prototype),n.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},n.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Spine=function(t){if(n.DisplayObjectContainer.call(this),this.spineData=n.AnimCache[t],!this.spineData)throw Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+t);this.count=0,this.sprites=[],this.skeleton=new u.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new u.AnimationStateData(this.spineData),this.state=new u.AnimationState(this.stateData);for(var e=0;this.skeleton.drawOrder.length>e;e++){var i=this.skeleton.drawOrder[e].data.attachmentName;n.TextureCache[i]||(i+=".png");var r=new n.Sprite(n.Texture.fromFrame(i));r.anchor.x=r.anchor.y=.5,this.addChild(r),this.sprites.push(r)}},n.Spine.constructor=n.Spine,n.Spine.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Spine.prototype.updateTransform=function(){this.state.update(1/60),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var t=0;this.skeleton.drawOrder.length>t;t++){var e=this.skeleton.drawOrder[t],i=e.bone.worldX+e.attachment.x*e.bone.m00+e.attachment.y*e.bone.m01+.5*e.attachment.width,r=e.bone.worldY+e.attachment.x*e.bone.m10+e.attachment.y*e.bone.m11+.5*e.attachment.height;if(e.cacheName!=e.attachment.name){var a=e.attachment.name;n.TextureCache[a]||(a+=".png"),this.sprites[t].setTexture(n.TextureCache[a]),e.cacheName=e.attachment.name}i+=-(e.attachment.width*(e.bone.worldScaleX+e.attachment.scaleX-1)>>1),r+=-(e.attachment.height*(e.bone.worldScaleY+e.attachment.scaleY-1)>>1),this.sprites[t].position.x=i,this.sprites[t].position.y=r,this.sprites[t].rotation=-(e.bone.worldRotation+e.attachment.rotation)*(Math.PI/180)}n.DisplayObjectContainer.prototype.updateTransform.call(this)};var u={};u.BoneData=function(t,e){this.name=t,this.parent=e},u.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},u.SlotData=function(t,e){this.name=t,this.boneData=e},u.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},u.Bone=function(t,e){this.data=t,this.parent=e,this.setToSetupPose()},u.Bone.yDown=!1,u.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(t,e){var i=this.parent;null!=i?(this.worldX=this.x*i.m00+this.y*i.m01+i.worldX,this.worldY=this.x*i.m10+this.y*i.m11+i.worldY,this.worldScaleX=i.worldScaleX*this.scaleX,this.worldScaleY=i.worldScaleY*this.scaleY,this.worldRotation=i.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var r=this.worldRotation*Math.PI/180,n=Math.cos(r),a=Math.sin(r);this.m00=n*this.worldScaleX,this.m10=a*this.worldScaleX,this.m01=-a*this.worldScaleY,this.m11=n*this.worldScaleY,t&&(this.m00=-this.m00,this.m01=-this.m01),e&&(this.m10=-this.m10,this.m11=-this.m11),u.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY}},u.Slot=function(t,e,i){this.data=t,this.skeleton=e,this.bone=i,this.setToSetupPose()},u.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(t){this.attachment=t,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(t){this._attachmentTime=this.skeleton.time-t},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var t=this.data;this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a;for(var e=this.skeleton.data.slots,i=0,r=e.length;r>i;i++)if(e[i]==t){this.setAttachment(t.attachmentName?this.skeleton.getAttachmentBySlotIndex(i,t.attachmentName):null);break}}},u.Skin=function(t){this.name=t,this.attachments={}},u.Skin.prototype={addAttachment:function(t,e,i){this.attachments[t+":"+e]=i},getAttachment:function(t,e){return this.attachments[t+":"+e]},_attachAll:function(t,e){for(var i in e.attachments){var r=i.indexOf(":"),n=parseInt(i.substring(0,r)),a=i.substring(r+1),s=t.slots[n];if(s.attachment&&s.attachment.name==a){var o=this.getAttachment(n,a);o&&s.setAttachment(o)}}}},u.Animation=function(t,e,i){this.name=t,this.timelines=e,this.duration=i},u.Animation.prototype={apply:function(t,e,i){i&&0!=this.duration&&(e%=this.duration);for(var r=this.timelines,n=0,a=r.length;a>n;n++)r[n].apply(t,e,1)},mix:function(t,e,i,r){i&&0!=this.duration&&(e%=this.duration);for(var n=this.timelines,a=0,s=n.length;s>a;a++)n[a].apply(t,e,r)}},u.binarySearch=function(t,e,i){var r=0,n=Math.floor(t.length/i)-2;if(0==n)return i;for(var a=n>>>1;;){if(e>=t[(a+1)*i]?r=a+1:n=a,r==n)return(r+1)*i;a=r+n>>>1}},u.linearSearch=function(t,e,i){for(var r=0,n=t.length-i;n>=r;r+=i)if(t[r]>e)return r;return-1},u.Curves=function(t){this.curves=[],this.curves.length=6*(t-1)},u.Curves.prototype={setLinear:function(t){this.curves[6*t]=0},setStepped:function(t){this.curves[6*t]=-1},setCurve:function(t,e,i,r,n){var a=.1,s=a*a,o=s*a,h=3*a,l=3*s,u=6*s,c=6*o,d=2*-e+r,p=2*-i+n,f=3*(e-r)+1,g=3*(i-n)+1,v=6*t,m=this.curves;m[v]=e*h+d*l+f*o,m[v+1]=i*h+p*l+g*o,m[v+2]=d*u+f*c,m[v+3]=p*u+g*c,m[v+4]=f*c,m[v+5]=g*c},getCurvePercent:function(t,e){e=0>e?0:e>1?1:e;var i=6*t,r=this.curves,n=r[i];if(!n)return e;if(-1==n)return 0;for(var a=r[i+1],s=r[i+2],o=r[i+3],h=r[i+4],l=r[i+5],u=n,c=a,d=8;;){if(u>=e){var p=u-n,f=c-a;return f+(c-f)*(e-p)/(u-p)}if(0==d)break;d--,n+=s,a+=o,s+=h,o+=l,u+=n,c+=a}return c+(1-c)*(e-u)/(1-u)}},u.RotateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=2*t},u.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){t*=2,this.frames[t]=e,this.frames[t+1]=i},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-2]){for(var a=n.data.rotation+r[r.length-1]-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;return n.rotation+=a*i,void 0}var s=u.binarySearch(r,e,2),o=r[s-1],h=r[s],l=1-(e-h)/(r[s-2]-h);l=this.curves.getCurvePercent(s/2-1,l);for(var a=r[s+1]-o;a>180;)a-=360;for(;-180>a;)a+=360;for(a=n.data.rotation+(o+a*l)-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;n.rotation+=a*i}}},u.TranslateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.x+=(n.data.x+r[r.length-2]-n.x)*i,n.y+=(n.data.y+r[r.length-1]-n.y)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.x+=(n.data.x+s+(r[a+1]-s)*l-n.x)*i,n.y+=(n.data.y+o+(r[a+2]-o)*l-n.y)*i}}},u.ScaleTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.scaleX+=(n.data.scaleX-1+r[r.length-2]-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+r[r.length-1]-n.scaleY)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.scaleX+=(n.data.scaleX-1+s+(r[a+1]-s)*l-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+o+(r[a+2]-o)*l-n.scaleY)*i}}},u.ColorTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=5*t},u.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e){t*=5,this.frames[t]=e,this.frames[t+1]=r,this.frames[t+2]=g,this.frames[t+3]=b,this.frames[t+4]=a},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.slots[this.slotIndex];if(e>=r[r.length-5]){var a=r.length-1;return n.r=r[a-3],n.g=r[a-2],n.b=r[a-1],n.a=r[a],void 0}var s=u.binarySearch(r,e,5),o=r[s-4],h=r[s-3],l=r[s-2],c=r[s-1],d=r[s],p=1-(e-d)/(r[s-5]-d);p=this.curves.getCurvePercent(s/5-1,p);var f=o+(r[s+1]-o)*p,g=h+(r[s+2]-h)*p,v=l+(r[s+3]-l)*p,m=c+(r[s+4]-c)*p;1>i?(n.r+=(f-n.r)*i,n.g+=(g-n.g)*i,n.b+=(v-n.b)*i,n.a+=(m-n.a)*i):(n.r=f,n.g=g,n.b=v,n.a=m)}}},u.AttachmentTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=t,this.attachmentNames=[],this.attachmentNames.length=t},u.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){this.frames[t]=e,this.attachmentNames[t]=i},apply:function(t,e){var i=this.frames;if(!(i[0]>e)){var r;r=e>=i[i.length-1]?i.length-1:u.binarySearch(i,e,1)-1;var n=this.attachmentNames[r];t.slots[this.slotIndex].setAttachment(n?t.getAttachmentBySlotIndex(this.slotIndex,n):null)}}},u.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},u.SkeletonData.prototype={defaultSkin:null,findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return slot[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSkin:function(t){for(var e=this.skins,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findAnimation:function(t){for(var e=this.animations,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null}},u.Skeleton=function(t){this.data=t,this.bones=[];for(var e=0,i=t.bones.length;i>e;e++){var r=t.bones[e],n=r.parent?this.bones[t.bones.indexOf(r.parent)]:null;this.bones.push(new u.Bone(r,n))}this.slots=[],this.drawOrder=[];for(var e=0,i=t.slots.length;i>e;e++){var a=t.slots[e],s=this.bones[t.bones.indexOf(a.boneData)],o=new u.Slot(a,this,s);this.slots.push(o),this.drawOrder.push(o)}},u.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var t=this.flipX,e=this.flipY,i=this.bones,r=0,n=i.length;n>r;r++)i[r].updateWorldTransform(t,e)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var t=this.bones,e=0,i=t.length;i>e;e++)t[e].setToSetupPose()},setSlotsToSetupPose:function(){for(var t=this.slots,e=0,i=t.length;i>e;e++)t[e].setToSetupPose(e)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},setSkinByName:function(t){var e=this.data.findSkin(t);if(!e)throw"Skin not found: "+t;this.setSkin(e)},setSkin:function(t){this.skin&&t&&t._attachAll(this,this.skin),this.skin=t},getAttachmentBySlotName:function(t,e){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(t),e)},getAttachmentBySlotIndex:function(t,e){if(this.skin){var i=this.skin.getAttachment(t,e);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},setAttachment:function(t,e){for(var i=this.slots,r=0,n=i.size;n>r;r++){var a=i[r];if(a.data.name==t){var s=null;if(e&&(s=this.getAttachment(r,e),null==s))throw"Attachment not found: "+e+", for slot: "+t;return a.setAttachment(s),void 0}}throw"Slot not found: "+t},update:function(t){time+=t}},u.AttachmentType={region:0},u.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},u.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(t,e,i,r,n){var a=this.uvs;n?(a[2]=t,a[3]=r,a[4]=t,a[5]=e,a[6]=i,a[7]=e,a[0]=i,a[1]=r):(a[0]=t,a[1]=r,a[2]=t,a[3]=e,a[4]=i,a[5]=e,a[6]=i,a[7]=r)},updateOffset:function(){var t=this.width/this.regionOriginalWidth*this.scaleX,e=this.height/this.regionOriginalHeight*this.scaleY,i=-this.width/2*this.scaleX+this.regionOffsetX*t,r=-this.height/2*this.scaleY+this.regionOffsetY*e,n=i+this.regionWidth*t,a=r+this.regionHeight*e,s=this.rotation*Math.PI/180,o=Math.cos(s),h=Math.sin(s),l=i*o+this.x,u=i*h,c=r*o+this.y,d=r*h,p=n*o+this.x,f=n*h,g=a*o+this.y,v=a*h,m=this.offset;m[0]=l-d,m[1]=c+u,m[2]=l-v,m[3]=g+u,m[4]=p-v,m[5]=g+f,m[6]=p-d,m[7]=c+f},computeVertices:function(t,e,i,r){t+=i.worldX,e+=i.worldY;var n=i.m00,a=i.m01,s=i.m10,o=i.m11,h=this.offset;r[0]=h[0]*n+h[1]*a+t,r[1]=h[0]*s+h[1]*o+e,r[2]=h[2]*n+h[3]*a+t,r[3]=h[2]*s+h[3]*o+e,r[4]=h[4]*n+h[5]*a+t,r[5]=h[4]*s+h[5]*o+e,r[6]=h[6]*n+h[7]*a+t,r[7]=h[6]*s+h[7]*o+e}},u.AnimationStateData=function(t){this.skeletonData=t,this.animationToMixTime={}},u.AnimationStateData.prototype={setMixByName:function(t,e,i){var r=this.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;var n=this.skeletonData.findAnimation(e);if(!n)throw"Animation not found: "+e;this.setMix(r,n,i)},setMix:function(t,e,i){this.animationToMixTime[t.name+":"+e.name]=i},getMix:function(t,e){var i=this.animationToMixTime[t.name+":"+e.name];return i?i:0}},u.AnimationState=function(t){this.data=t,this.queue=[]},u.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(t){if(this.currentTime+=t,this.previousTime+=t,this.mixTime+=t,this.queue.length>0){var e=this.queue[0];this.currentTime>=e.delay&&(this._setAnimation(e.animation,e.loop),this.queue.shift())}},apply:function(t){if(this.current)if(this.previous){this.previous.apply(t,this.previousTime,this.previousLoop);var e=this.mixTime/this.mixDuration;e>=1&&(e=1,this.previous=null),this.current.mix(t,this.currentTime,this.currentLoop,e)}else this.current.apply(t,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(t,e){this.previous=null,t&&this.current&&(this.mixDuration=this.data.getMix(this.current,t),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=t,this.currentLoop=e,this.currentTime=0},setAnimationByName:function(t,e){var i=this.data.skeletonData.findAnimation(t);if(!i)throw"Animation not found: "+t;this.setAnimation(i,e)},setAnimation:function(t,e){this.queue.length=0,this._setAnimation(t,e)},addAnimationByName:function(t,e,i){var r=this.data.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;this.addAnimation(r,e,i)},addAnimation:function(t,e,i){var r={};if(r.animation=t,r.loop=e,!i||0>=i){var n=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;i=null!=n?n.duration-this.data.getMix(n,t)+(i||0):0}r.delay=i,this.queue.push(r)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},u.SkeletonJson=function(t){this.attachmentLoader=t},u.SkeletonJson.prototype={scale:1,readSkeletonData:function(t){for(var e=new u.SkeletonData,i=t.bones,r=0,n=i.length;n>r;r++){var a=i[r],s=null;if(a.parent&&(s=e.findBone(a.parent),!s))throw"Parent bone not found: "+a.parent;var o=new u.BoneData(a.name,s);o.length=(a.length||0)*this.scale,o.x=(a.x||0)*this.scale,o.y=(a.y||0)*this.scale,o.rotation=a.rotation||0,o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1,e.bones.push(o)}for(var h=t.slots,r=0,n=h.length;n>r;r++){var l=h[r],o=e.findBone(l.bone);if(!o)throw"Slot bone not found: "+l.bone;var c=new u.SlotData(l.name,o),d=l.color;d&&(c.r=u.SkeletonJson.toColor(d,0),c.g=u.SkeletonJson.toColor(d,1),c.b=u.SkeletonJson.toColor(d,2),c.a=u.SkeletonJson.toColor(d,3)),c.attachmentName=l.attachment,e.slots.push(c)}var p=t.skins;for(var f in p)if(p.hasOwnProperty(f)){var g=p[f],v=new u.Skin(f);for(var m in g)if(g.hasOwnProperty(m)){var x=e.findSlotIndex(m),b=g[m];for(var y in b)if(b.hasOwnProperty(y)){var T=this.readAttachment(v,y,b[y]);null!=T&&v.addAttachment(x,y,T)}}e.skins.push(v),"default"==v.name&&(e.defaultSkin=v)}var A=t.animations;for(var w in A)A.hasOwnProperty(w)&&this.readAnimation(w,A[w],e);return e},readAttachment:function(t,e,i){e=i.name||e;var r=u.AttachmentType[i.type||"region"],n=new u.RegionAttachment;return n.name=e,r==u.AttachmentType.region&&(n.x=(i.x||0)*this.scale,n.y=(i.y||0)*this.scale,n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1,n.rotation=i.rotation||0,n.width=(i.width||32)*this.scale,n.height=(i.height||32)*this.scale,n.updateOffset()),n},readAnimation:function(t,e,i){var r=[],n=0,a=e.bones;for(var s in a)if(a.hasOwnProperty(s)){var o=i.findBoneIndex(s);if(-1==o)throw"Bone not found: "+s;var h=a[s];for(var l in h)if(h.hasOwnProperty(l)){var c=h[l];if("rotate"==l){var d=new u.RotateTimeline(c.length);d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p,v.time,v.angle),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[2*d.getFrameCount()-2])}else{if("translate"!=l&&"scale"!=l)throw"Invalid timeline type for a bone: "+l+" ("+s+")";var d,m=1;"scale"==l?d=new u.ScaleTimeline(c.length):(d=new u.TranslateTimeline(c.length),m=this.scale),d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],x=(v.x||0)*m,b=(v.y||0)*m;d.setFrame(p,v.time,x,b),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[3*d.getFrameCount()-3])}}}var y=e.slots;for(var T in y)if(y.hasOwnProperty(T)){var A=y[T],w=i.findSlotIndex(T);for(var l in A)if(A.hasOwnProperty(l)){var c=A[l];if("color"==l){var d=new u.ColorTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],_=v.color,R=u.SkeletonJson.toColor(_,0),S=u.SkeletonJson.toColor(_,1),C=u.SkeletonJson.toColor(_,2),L=u.SkeletonJson.toColor(_,3);d.setFrame(p,v.time,R,S,C,L),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[5*d.getFrameCount()-5])}else{if("attachment"!=l)throw"Invalid timeline type for a slot: "+l+" ("+T+")";var d=new u.AttachmentTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p++,v.time,v.name)}r.push(d),n=Math.max(n,d.frames[Math.floor(d.getFrameCount())-1])}}}i.animations.push(new u.Animation(t,r,n))}},u.SkeletonJson.readCurve=function(t,e,i){var r=i.curve;r&&("stepped"==r?t.curves.setStepped(e):r instanceof Array&&t.curves.setCurve(e,r[0],r[1],r[2],r[3]))},u.SkeletonJson.toColor=function(t,e){if(8!=t.length)throw"Color hexidecimal length must be 8, recieved: "+t;return parseInt(t.substring(2*e,2),16)/255},u.Atlas=function(t,e){this.textureLoader=e,this.pages=[],this.regions=[];var i=new u.AtlasReader(t),r=[];r.length=4;for(var n=null;;){var a=i.readLine();if(null==a)break;if(a=i.trim(a),0==a.length)n=null;else if(n){var s=new u.AtlasRegion;s.name=a,s.page=n,s.rotate="true"==i.readValue(),i.readTuple(r);var o=parseInt(r[0]),h=parseInt(r[1]);i.readTuple(r);var l=parseInt(r[0]),c=parseInt(r[1]);s.u=o/n.width,s.v=h/n.height,s.rotate?(s.u2=(o+c)/n.width,s.v2=(h+l)/n.height):(s.u2=(o+l)/n.width,s.v2=(h+c)/n.height),s.x=o,s.y=h,s.width=Math.abs(l),s.height=Math.abs(c),4==i.readTuple(r)&&(s.splits=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],4==i.readTuple(r)&&(s.pads=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],i.readTuple(r))),s.originalWidth=parseInt(r[0]),s.originalHeight=parseInt(r[1]),i.readTuple(r),s.offsetX=parseInt(r[0]),s.offsetY=parseInt(r[1]),s.index=parseInt(i.readValue()),this.regions.push(s)}else{n=new u.AtlasPage,n.name=a,n.format=u.Atlas.Format[i.readValue()],i.readTuple(r),n.minFilter=u.Atlas.TextureFilter[r[0]],n.magFilter=u.Atlas.TextureFilter[r[1]];var d=i.readValue();n.uWrap=u.Atlas.TextureWrap.clampToEdge,n.vWrap=u.Atlas.TextureWrap.clampToEdge,"x"==d?n.uWrap=u.Atlas.TextureWrap.repeat:"y"==d?n.vWrap=u.Atlas.TextureWrap.repeat:"xy"==d&&(n.uWrap=n.vWrap=u.Atlas.TextureWrap.repeat),e.load(n,a),this.pages.push(n)}}},u.Atlas.prototype={findRegion:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},dispose:function(){for(var t=this.pages,e=0,i=t.length;i>e;e++)this.textureLoader.unload(t[e].rendererObject)},updateUVs:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++){var n=e[i];n.page==t&&(n.u=n.x/t.width,n.v=n.y/t.height,n.rotate?(n.u2=(n.x+n.height)/t.width,n.v2=(n.y+n.width)/t.height):(n.u2=(n.x+n.width)/t.width,n.v2=(n.y+n.height)/t.height))}}},u.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},u.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},u.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},u.AtlasPage=function(){},u.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},u.AtlasRegion=function(){},u.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},u.AtlasReader=function(t){this.lines=t.split(/\r\n|\r|\n/)},u.AtlasReader.prototype={index:0,trim:function(t){return t.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw"Invalid line: "+t;return this.trim(t.substring(e+1))},readTuple:function(t){var e=this.readLine(),i=e.indexOf(":");if(-1==i)throw"Invalid line: "+e;for(var r=0,n=i+1;3>r;r++){var a=e.indexOf(",",n);if(-1==a){if(0==r)throw"Invalid line: "+e;break}t[r]=this.trim(e.substr(n,a-n)),n=a+1}return t[r]=this.trim(e.substring(n)),r+1}},u.AtlasAttachmentLoader=function(t){this.atlas=t},u.AtlasAttachmentLoader.prototype={newAttachment:function(t,e,i){switch(e){case u.AttachmentType.region:var r=this.atlas.findRegion(i);if(!r)throw"Region not found in atlas: "+i+" ("+e+")";var n=new u.RegionAttachment(i);return n.rendererObject=r,n.setUVs(r.u,r.v,r.u2,r.v2,r.rotate),n.regionOffsetX=r.offsetX,n.regionOffsetY=r.offsetY,n.regionWidth=r.width,n.regionHeight=r.height,n.regionOriginalWidth=r.originalWidth,n.regionOriginalHeight=r.originalHeight,n}throw"Unknown attachment type: "+e}},n.AnimCache={},u.Bone.yDown=!0,n.CustomRenderable=function(){n.DisplayObject.call(this)},n.CustomRenderable.constructor=n.CustomRenderable,n.CustomRenderable.prototype=Object.create(n.DisplayObject.prototype),n.CustomRenderable.prototype.renderCanvas=function(){},n.CustomRenderable.prototype.initWebGL=function(){},n.CustomRenderable.prototype.renderWebGL=function(){},n.BaseTextureCache={},n.texturesToUpdate=[],n.texturesToDestroy=[],n.BaseTexture=function(t){if(n.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,n.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);this._powerOf2=!1}},n.BaseTexture.constructor=n.BaseTexture,n.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,n.texturesToDestroy.push(this)},n.BaseTexture.fromImage=function(t,e){var i=n.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new n.BaseTexture(r),n.BaseTextureCache[t]=i}return i},n.TextureCache={},n.FrameCache={},n.Texture=function(t,e){if(n.EventTarget.call(this),e||(this.noFrame=!0,e=new n.Rectangle(0,0,1,1)),this.trim=new n.Point,t instanceof n.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new n.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},n.Texture.constructor=n.Texture,n.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new n.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},n.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},n.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,n.Texture.frameUpdates.push(this)},n.Texture.fromImage=function(t,e){var i=n.TextureCache[t];return i||(i=new n.Texture(n.BaseTexture.fromImage(t,e)),n.TextureCache[t]=i),i},n.Texture.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},n.Texture.fromCanvas=function(t){var e=new n.BaseTexture(t);return new n.Texture(e)},n.Texture.addTextureToCache=function(t,e){n.TextureCache[e]=t},n.Texture.removeTextureFromCache=function(t){var e=n.TextureCache[t];return n.TextureCache[t]=null,e},n.Texture.frameUpdates=[],n.RenderTexture=function(t,e){n.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=n.mat3.create(),this.frame=new n.Rectangle(0,0,this.width,this.height),n.gl?this.initWebGL():this.initCanvas()},n.RenderTexture.constructor=n.RenderTexture,n.RenderTexture.prototype=Object.create(n.Texture.prototype),n.RenderTexture.prototype.initWebGL=function(){var t=n.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new n.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new n.Point(this.width/2,this.height/2),this.projectionMatrix=n.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},n.RenderTexture.prototype.initCanvas=function(){this.renderer=new n.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new n.BaseTexture(this.renderer.view),this.frame=new n.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},n.RenderTexture.prototype.renderWebGL=function(t,e){var i=n.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=n.mat3.create(),t.worldTransform[4]=-1,t.worldTransform[5]=2*this.projection.y;for(var a=0,s=r.length;s>a;a++)r[a].updateTransform();var o=t.__renderGroup;o?t==o.root?o.render(this.projection):o.renderSpecific(t,this.projection):(this.renderGroup||(this.renderGroup=new n.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projection))},n.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=n.mat3.create();for(var r=0,a=i.length;a>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),n.texturesToUpdate.push(this.baseTexture)},n.AssetLoader=function(t){n.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:n.ImageLoader,jpeg:n.ImageLoader,png:n.ImageLoader,gif:n.ImageLoader,json:n.JsonLoader,anim:n.SpineLoader,xml:n.BitmapFontLoader,fnt:n.BitmapFontLoader}},n.AssetLoader.constructor=n.AssetLoader,n.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),n=this.loadersByType[r];if(!n)throw Error(r+" is an unsupported file type");var a=new n(i,this.crossorigin);a.addEventListener("loaded",function(){t.onAssetLoaded()}),a.load()}},n.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},n.JsonLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.crossorigin=e,this.loaded=!1},n.JsonLoader.constructor=n.JsonLoader,n.JsonLoader.prototype.load=function(){this.ajaxRequest=new l;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},n.JsonLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState)if(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))if(this.json=JSON.parse(this.ajaxRequest.responseText),this.json.frames){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0))}i.load()}else if(this.json.bones){var o=new u.SkeletonJson,h=o.readSkeletonData(this.json);n.AnimCache[this.url]=h,this.onLoaded()}else this.onLoaded();else this.onError()},n.JsonLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},n.JsonLoader.prototype.onError=function(){this.dispatchEvent({type:"error",content:this})},n.SpriteSheetLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},n.SpriteSheetLoader.constructor=n.SpriteSheetLoader,n.SpriteSheetLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpriteSheetLoader.prototype.onJSONLoaded=function(){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0)) }i.load()},n.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.ImageLoader=function(t,e){n.EventTarget.call(this),this.texture=n.Texture.fromImage(t,e)},n.ImageLoader.constructor=n.ImageLoader,n.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},n.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.BitmapFontLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},n.BitmapFontLoader.constructor=n.BitmapFontLoader,n.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},n.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new n.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],a=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(a.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var s=this.ajaxRequest.responseXML.getElementsByTagName("char"),o=0;s.length>o;o++){var h=parseInt(s[o].attributes.getNamedItem("id").nodeValue,10),l={x:parseInt(s[o].attributes.getNamedItem("x").nodeValue,10),y:parseInt(s[o].attributes.getNamedItem("y").nodeValue,10),width:parseInt(s[o].attributes.getNamedItem("width").nodeValue,10),height:parseInt(s[o].attributes.getNamedItem("height").nodeValue,10)};n.TextureCache[h]=new n.Texture(this.texture,l),i.chars[h]={xOffset:parseInt(s[o].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(s[o].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(s[o].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{},texture:new n.Texture(this.texture,l)}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(o=0;u.length>o;o++){var c=parseInt(u[o].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[o].attributes.getNamedItem("second").nodeValue,10),p=parseInt(u[o].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=p}n.BitmapText.fonts[i.font]=i;var f=this;e.addEventListener("loaded",function(){f.onLoaded()}),e.load()}},n.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.SpineLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.crossorigin=e,this.loaded=!1},n.SpineLoader.constructor=n.SpineLoader,n.SpineLoader.prototype.load=function(){new n.JsonLoader(this.url,this.crossorigin),jsonLoader.addEventListener("loaded",function(t){scope.json=t.content.json,scope.onJSONLoaded()}),jsonLoader.load()},n.SpineLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpineLoader.prototype.onJSONLoaded=function(){var t=new u.SkeletonJson,e=t.readSkeletonData(this.json);n.AnimCache[this.url]=e,this.onLoaded()},n.SpineLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports.PIXI=n):i.PIXI=n}).call(this); \ No newline at end of file diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index 25cca17..0391561 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index 25cca17..0391561 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 12 - Spine/pixi.js b/examples/example 12 - Spine/pixi.js index 25cca17..0391561 100644 --- a/examples/example 12 - Spine/pixi.js +++ b/examples/example 12 - Spine/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 13 - Graphics/index.html b/examples/example 13 - Graphics/index.html index e6996b7..d847ef2 100644 --- a/examples/example 13 - Graphics/index.html +++ b/examples/example 13 - Graphics/index.html @@ -80,17 +80,40 @@ stage.addChild(graphics); + // lets create moving shape + var thing = new PIXI.Graphics(); + stage.addChild(thing); + thing.position.x = 620/2; + thing.position.y = 380/2; + + var count = 0; + stage.click = stage.tap = function() { graphics.lineStyle(Math.random() * 30, Math.random() * 0xFFFFFF, 1); graphics.moveTo(Math.random() * 620,Math.random() * 380); graphics.lineTo(Math.random() * 620,Math.random() * 380); - } requestAnimFrame(animate); function animate() { + + thing.clear(); + + count += 0.1; + + thing.clear(); + thing.lineStyle(30, 0xff0000, 1); + thing.beginFill(0xffFF00, 0.5); + + thing.moveTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + thing.lineTo(120 + Math.cos(count) * 20, -100 + Math.sin(count)* 20); + thing.lineTo(120 + Math.sin(count) * 20, 100 + Math.cos(count)* 20); + thing.lineTo(-120 + Math.cos(count)* 20, 100 + Math.sin(count)* 20); + thing.lineTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + + thing.rotation = count * 0.1; renderer.render(stage); requestAnimFrame( animate ); } diff --git a/examples/example 13 - Graphics/pixi.js b/examples/example 13 - Graphics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 13 - Graphics/pixi.js +++ b/examples/example 13 - Graphics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index 25cca17..0391561 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index 25cca17..0391561 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 4 - Balls/pixi.js b/examples/example 4 - Balls/pixi.js index 25cca17..0391561 100644 --- a/examples/example 4 - Balls/pixi.js +++ b/examples/example 4 - Balls/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 5 - Morph/pixi.js b/examples/example 5 - Morph/pixi.js index 25cca17..0391561 100644 --- a/examples/example 5 - Morph/pixi.js +++ b/examples/example 5 - Morph/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 6 - Interactivity/pixi.js b/examples/example 6 - Interactivity/pixi.js index 25cca17..0391561 100644 --- a/examples/example 6 - Interactivity/pixi.js +++ b/examples/example 6 - Interactivity/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 7 - Transparent Background/pixi.js b/examples/example 7 - Transparent Background/pixi.js index 25cca17..0391561 100644 --- a/examples/example 7 - Transparent Background/pixi.js +++ b/examples/example 7 - Transparent Background/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.js b/bin/pixi.js index 51d6836..96307b0 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -9,7 +9,7 @@ * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; +(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[],t._webGL.indices=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; if(0!=r.length){var a=new n.Point(r[0],r[1]),s=new n.Point(r[r.length-2],r[r.length-1]);if(a.x==s.x&&a.y==s.y){r.pop(),r.pop(),s=new n.Point(r[r.length-2],r[r.length-1]);var o=s.x+.5*(a.x-s.x),h=s.y+.5*(a.y-s.y);r.unshift(o,h),r.push(o,h)}var l,u,c,d,p,f,g,v,m,x,b,y,T,A,w,_,R,S,C,L,E,B=i.points,F=i.indices,P=r.length/2,G=r.length,I=B.length/6,D=t.lineWidth/2,M=e(t.lineColor),O=t.lineAlpha,W=M[0]*O,U=M[1]*O,j=M[2]*O;l=r[0],u=r[1],c=r[2],d=r[3],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(l-g,u-v,W,U,j,O),B.push(l+g,u+v,W,U,j,O);for(var k=1;P-1>k;k++)l=r[2*(k-1)],u=r[2*(k-1)+1],c=r[2*k],d=r[2*k+1],p=r[2*(k+1)],f=r[2*(k+1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,m=-(d-f),x=c-p,E=Math.sqrt(m*m+x*x),m/=E,x/=E,m*=D,x*=D,T=-v+u-(-v+d),A=-g+c-(-g+l),w=(-g+l)*(-v+d)-(-g+c)*(-v+u),_=-x+f-(-x+d),R=-m+c-(-m+p),S=(-m+p)*(-x+d)-(-m+c)*(-x+f),C=T*R-_*A,0==C&&(C+=1),px=(A*S-R*w)/C,py=(_*w-T*S)/C,L=(px-c)*(px-c)+(py-d)+(py-d),L>19600?(b=g-m,y=v-x,E=Math.sqrt(b*b+y*y),b/=E,y/=E,b*=D,y*=D,B.push(c-b,d-y),B.push(W,U,j,O),B.push(c+b,d+y),B.push(W,U,j,O),B.push(c-b,d-y),B.push(W,U,j,O),G++):(B.push(px,py),B.push(W,U,j,O),B.push(c-(px-c),d-(py-d)),B.push(W,U,j,O));l=r[2*(P-2)],u=r[2*(P-2)+1],c=r[2*(P-1)],d=r[2*(P-1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(c-g,d-v),B.push(W,U,j,O),B.push(c+g,d+v),B.push(W,U,j,O),F.push(I);for(var k=0;G>k;k++)F.push(I++);F.push(I-1)}},n.WebGLGraphics.buildPoly=function(t,i){var r=t.points;if(!(6>r.length)){for(var a=i.points,s=i.indices,o=r.length/2,h=e(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=n.PolyK.Triangulate(r),f=a.length/6,g=0;p.length>g;g+=3)s.push(p[g]+f),s.push(p[g]+f),s.push(p[g+1]+f),s.push(p[g+2]+f),s.push(p[g+2]+f);for(var g=0;o>g;g++)a.push(r[2*g],r[2*g+1],u,c,d,l)}},n._defaultFrame=new n.Rectangle(0,0,1,1),n.gl,n.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var a=this;this.view.addEventListener("webglcontextlost",function(t){a.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){a.handleContextRestored(t)},!1),this.batchs=[];try{n.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!0,premultipliedAlpha:!1})}catch(s){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}n.initPrimitiveShader(),n.initDefaultShader(),n.initDefaultStripShader(),n.activateDefaultShader();var o=this.gl;n.WebGLRenderer.gl=o,this.batch=new n.WebGLBatch(o),o.disable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.enable(o.BLEND),o.colorMask(!0,!0,!0,this.transparent),n.projection=new n.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new n.WebGLRenderGroup(this.gl)},n.WebGLRenderer.constructor=n.WebGLRenderer,n.WebGLRenderer.getBatch=function(){return 0==n._batchs.length?new n.WebGLBatch(n.WebGLRenderer.gl):n._batchs.pop()},n.WebGLRenderer.returnBatch=function(t){t.clean(),n._batchs.push(t)},n.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),n.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],!this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(n.projection),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0){for(var i=0;n.Texture.frameUpdates.length>i;i++)n.Texture.frameUpdates[i].updateFrame=!1;n.Texture.frameUpdates=[]}}},n.WebGLRenderer.updateTextures=function(){for(var t=0;n.texturesToUpdate.length>t;t++)this.updateTexture(n.texturesToUpdate[t]);for(var t=0;n.texturesToDestroy.length>t;t++)this.destroyTexture(n.texturesToDestroy[t]);n.texturesToUpdate=[],n.texturesToDestroy=[]},n.WebGLRenderer.updateTexture=function(t){var e=n.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},n.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},n.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),n.projection.x=this.width/2,n.projection.y=this.height/2},n.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},n.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;n.TextureCache.length>t;t++)this.updateTexture(n.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;n._restoreBatchs(this.gl),this.contextLost=!1},n._batchs=[],n._getBatch=function(t){return 0==n._batchs.length?new n.WebGLBatch(t):n._batchs.pop()},n._returnBatch=function(t){t.clean(),n._batchs.push(t)},n._restoreBatchs=function(t){for(var e=0;n._batchs.length>e;e++)n._batchs[e].restoreLostContext(t)},n.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=n.blendModes.NORMAL,this.dynamicSize=1},n.WebGLBatch.constructor=n.WebGLBatch,n.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},n.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},n.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},n.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},n.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},n.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},n.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new n.WebGLBatch(this.gl);e.init(t),e.texture=this.texture,e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},n.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},n.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,n=4*i;this.indices[r+0]=n+0,this.indices[r+1]=n+1,this.indices[r+2]=n+2,this.indices[r+3]=n+0,this.indices[r+4]=n+2,this.indices[r+5]=n+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},n.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof n.WebGLBatch?this.batchs[r].render():i instanceof n.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof n.Strip?i.visible&&this.renderStrip(i,t):i instanceof n.Graphics&&i.visible&&n.WebGLGraphics.renderGraphics(i,t)},n.WebGLRenderGroup.prototype.renderSpecific=function(t,e){n.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniform2f(n.shaderProgram.projectionVector,e.x,e.y);var r,a,s,o,h=t.renderable?t:this.getNextRenderable(t),l=h.batch;if(h instanceof n.Sprite){l=h.batch;var u=l.head;if(u==h)r=0;else for(r=1;u.__next!=h;)r++,u=u.__next}else l=h;for(var c,d=t,p=t;p.children.length>0;)p=p.children[p.children.length-1],p.renderable&&(d=p);if(d instanceof n.Sprite){c=d.batch;var u=c.head;if(u==d)s=0;else for(s=1;u.__next!=d;)s++,u=u.__next}else c=d;if(l==c)return l instanceof n.WebGLBatch?l.render(r,s+1):this.renderSpecial(l),void 0;a=this.batchs.indexOf(l),o=this.batchs.indexOf(c),l instanceof n.WebGLBatch?l.render(r):this.renderSpecial(l);for(var f=a+1;o>f;f++)renderable=this.batchs[f],renderable instanceof n.WebGLBatch?this.batchs[f].render():this.renderSpecial(renderable);c instanceof n.WebGLBatch?c.render(0,s+1):this.renderSpecial(c)},n.WebGLRenderGroup.prototype.renderSpecial=function(t){t instanceof n.TilingSprite?t.visible&&this.renderTilingSprite(t,projectionMatrix):t instanceof n.Strip?t.visible&&this.renderStrip(t,projectionMatrix):t instanceof n.CustomRenderable?t.visible&&t.renderWebGL(this,projectionMatrix):t instanceof n.Graphics&&t.visible&&n.WebGLGraphics.renderGraphics(t)},n.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var n=i[r];n.worldVisible=n.visible&&e,n.textureChange&&(n.textureChange=!1,n.worldVisible&&(this.removeDisplayObject(n),this.addDisplayObject(n))),n.children.length>0&&this.checkVisibility(n,n.worldVisible)}},n.WebGLRenderGroup.prototype.updateTexture=function(t){if(1==t.batch.length)return t.batch.texture=t.texture.baseTexture,void 0;if(t.batch.texture!=t.texture.baseTexture)if(t.batch.head==t){var e=t.batch,i=this.batchs.indexOf(e),r=this.batchs[i-1];if(e.remove(t),r)if(r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)r.insertAfter(t,r.tail);else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i-1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(0,0,a)}}else if(t.batch.tail==t){var e=t.batch,i=this.batchs.indexOf(e),s=this.batchs[i+1];if(e.remove(t),s){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,s.head),void 0;var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i+1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.push(a)}}else{var e=t.batch,o=e.split(t);o.remove(t);var a=n.WebGLRenderer.getBatch(),i=this.batchs.indexOf(e);a.init(t),this.batchs.splice(i+1,0,a,o)}},n.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof n.Sprite){var r,a;if(e instanceof n.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof n.Sprite){if(a=i.batch){if(a.texture==t.texture.baseTexture&&a.blendMode==t.blendMode)return a.insertBefore(t,i),void 0;if(a==r){var s=r.split(i),o=n.WebGLRenderer.getBatch(),h=this.batchs.indexOf(r);return o.init(t),this.batchs.splice(h+1,0,o,s),void 0}}}else a=i;var o=n.WebGLRenderer.getBatch();if(o.init(t),r){var h=this.batchs.indexOf(r);this.batchs.splice(h+1,0,o)}else this.batchs.push(o)}else t instanceof n.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof n.Strip?(this.initStrip(t),this.batchs.push(t)):t instanceof n.Graphics&&this.batchs.push(t);this.batchUpdate=!0}},n.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},n.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof n.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof n.WebGLBatch&&this.batchs[r+1]instanceof n.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),n.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e)}}},n.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},n.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},n.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=n.shaderProgram;i.useProgram(n.stripShaderProgram);var a=n.mat3.clone(t.worldTransform);n.mat3.transpose(a),i.uniformMatrix3fv(n.stripShaderProgram.translationMatrix,!1,a),i.uniform2f(n.stripShaderProgram.projectionVector,e.x,e.y),i.uniform1f(n.stripShaderProgram.alpha,t.worldAlpha),t.blendMode==n.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.useProgram(n.shaderProgram)},n.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;n.shaderProgram;var r=t.tilePosition,a=t.tileScale,s=r.x/t.texture.baseTexture.width,o=r.y/t.texture.baseTexture.height,h=t.width/t.texture.baseTexture.width/a.x,l=t.height/t.texture.baseTexture.height/a.y;t.uvs[0]=0-s,t.uvs[1]=0-o,t.uvs[2]=1*h-s,t.uvs[3]=0-o,t.uvs[4]=1*h-s,t.uvs[5]=1*l-o,t.uvs[6]=0-s,t.uvs[7]=1*l-o,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},n.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},n.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},n.CanvasRenderer.constructor=n.CanvasRenderer,n.CanvasRenderer.prototype.render=function(t){n.texturesToUpdate=[],n.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0&&(n.Texture.frameUpdates=[])},n.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},n.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof n.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof n.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof n.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof n.CustomRenderable?t.renderCanvas(this):t instanceof n.Graphics&&(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),n.CanvasGraphics.renderGraphics(t,i));if(t.children)for(var a=0;t.children.length>a;a++)this.renderDisplayObject(t.children[a]);this.context.setTransform(1,0,0,1,0,0)}},n.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var n=1;r-2>n;n++){var a=2*n,s=i[a],o=i[a+2],h=i[a+4],l=i[a+1],u=i[a+3],c=i[a+5];e.moveTo(s,l),e.lineTo(o,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},n.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;e.globalAlpha=t.worldAlpha,t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},n.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,n=i.length/2;this.count++;for(var a=1;n-2>a;a++){var s=2*a,o=i[s],h=i[s+2],l=i[s+4],u=i[s+1],c=i[s+3],d=i[s+5],p=r[s]*t.texture.width,f=r[s+2]*t.texture.width,g=r[s+4]*t.texture.width,v=r[s+1]*t.texture.height,m=r[s+3]*t.texture.height,x=r[s+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var b=p*m+v*g+f*x-m*g-v*f-p*x,y=o*m+v*l+h*x-m*l-v*h-o*x,T=p*h+o*g+f*l-h*g-o*f-p*l,A=p*m*l+v*h*g+o*f*x-o*m*g-v*f*l-p*h*x,w=u*m+v*d+c*x-m*d-v*c-u*x,_=p*c+u*g+f*d-c*g-u*f-p*d,R=p*m*d+v*c*g+u*f*x-u*m*g-v*f*d-p*c*x;e.transform(y/b,w/b,T/b,_/b,A/b,R/b),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},n.CanvasGraphics=function(){},n.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,r=0;t.graphicsData.length>r;r++){var a=t.graphicsData[r],s=a.points;if(e.strokeStyle=color="#"+("00000"+(0|a.lineColor).toString(16)).substr(-6),e.lineWidth=a.lineWidth,a.type==n.Graphics.POLY){e.beginPath(),e.moveTo(s[0],s[1]);for(var o=1;s.length/2>o;o++)e.lineTo(s[2*o],s[2*o+1]);s[0]==s[s.length-2]&&s[1]==s[s.length-1]&&e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}else if(a.type==n.Graphics.RECT)a.fillColor&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fillRect(s[0],s[1],s[2],s[3])),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.strokeRect(s[0],s[1],s[2],s[3]));else if(a.type==n.Graphics.CIRC)e.beginPath(),e.arc(s[0],s[1],s[2],0,2*Math.PI),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke());else if(a.type==n.Graphics.ELIP){var h=a.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,v=c+l,m=d+u,x=c+l/2,b=d+u/2;e.moveTo(c,b),e.bezierCurveTo(c,b-g,x-f,d,x,d),e.bezierCurveTo(x+f,d,v,b-g,v,b),e.bezierCurveTo(v,b+g,x+f,m,x,m),e.bezierCurveTo(x-f,m,c,b+g,c,b),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}}},n.Graphics=function(){n.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=2,this.lineColor="#FF0000",this.graphicsData=[],this.currentPath={points:[]}},n.Graphics.constructor=n.Graphics,n.Graphics.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Graphics.prototype.lineStyle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=void 0==i?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.graphicsData.push(this.currentPath)},n.Graphics.prototype.moveTo=function(t,e){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath)},n.Graphics.prototype.lineTo=function(t,e){this.currentPath.points.push(t,e),this.dirty=!0},n.Graphics.prototype.beginFill=function(t,e){this.filling=!0,this.fillColor=t||0,this.fillAlpha=e||1},n.Graphics.prototype.endFill=function(){this.filling=!1,this.fillColor=null,this.fillAlpha=1},n.Graphics.prototype.drawRect=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawCircle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:n.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawElipse=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.clear=function(){this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[]},n.Graphics.POLY=0,n.Graphics.RECT=1,n.Graphics.CIRC=2,n.Graphics.ELIP=3,n.Strip=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=n.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Strip.constructor=n.Strip,n.Strip.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},n.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Rope=function(t,e){n.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},n.Rope.constructor=n.Rope,n.Rope.prototype=Object.create(n.Strip.prototype),n.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,n=t[0],a=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var s=t.length,o=1;s>o;o++){var a=t[o],h=4*o,l=o/(s-1);o%2?(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1):(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,n=a}}},n.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],a={x:0,y:0},s=t[0];this.count-=.2,i[0]=s.x+a.x,i[1]=s.y+a.y,i[2]=s.x-a.x,i[3]=s.y-a.y;for(var o=t.length,h=1;o>h;h++){var s=t[h],l=4*h;e=t.length-1>h?t[h+1]:s,a.y=-(e.x-r.x),a.x=e.y-r.y;var u=10*(1-h/(o-1));u>1&&(u=1);var c=Math.sqrt(a.x*a.x+a.y*a.y),d=this.texture.height/2;a.x/=c,a.y/=c,a.x*=d,a.y*=d,i[l]=s.x+a.x,i[l+1]=s.y+a.y,i[l+2]=s.x-a.x,i[l+3]=s.y-a.y,r=s}n.DisplayObjectContainer.prototype.updateTransform.call(this)}},n.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0 },n.TilingSprite=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new n.Point(1,1),this.tilePosition=new n.Point(0,0),this.blendMode=n.blendModes.NORMAL},n.TilingSprite.constructor=n.TilingSprite,n.TilingSprite.prototype=Object.create(n.DisplayObjectContainer.prototype),n.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},n.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Spine=function(t){if(n.DisplayObjectContainer.call(this),this.spineData=n.AnimCache[t],!this.spineData)throw Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+t);this.count=0,this.sprites=[],this.skeleton=new u.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new u.AnimationStateData(this.spineData),this.state=new u.AnimationState(this.stateData);for(var e=0;this.skeleton.drawOrder.length>e;e++){var i=this.skeleton.drawOrder[e].data.attachmentName;n.TextureCache[i]||(i+=".png");var r=new n.Sprite(n.Texture.fromFrame(i));r.anchor.x=r.anchor.y=.5,this.addChild(r),this.sprites.push(r)}},n.Spine.constructor=n.Spine,n.Spine.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Spine.prototype.updateTransform=function(){this.state.update(1/60),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var t=0;this.skeleton.drawOrder.length>t;t++){var e=this.skeleton.drawOrder[t],i=e.bone.worldX+e.attachment.x*e.bone.m00+e.attachment.y*e.bone.m01+.5*e.attachment.width,r=e.bone.worldY+e.attachment.x*e.bone.m10+e.attachment.y*e.bone.m11+.5*e.attachment.height;if(e.cacheName!=e.attachment.name){var a=e.attachment.name;n.TextureCache[a]||(a+=".png"),this.sprites[t].setTexture(n.TextureCache[a]),e.cacheName=e.attachment.name}i+=-(e.attachment.width*(e.bone.worldScaleX+e.attachment.scaleX-1)>>1),r+=-(e.attachment.height*(e.bone.worldScaleY+e.attachment.scaleY-1)>>1),this.sprites[t].position.x=i,this.sprites[t].position.y=r,this.sprites[t].rotation=-(e.bone.worldRotation+e.attachment.rotation)*(Math.PI/180)}n.DisplayObjectContainer.prototype.updateTransform.call(this)};var u={};u.BoneData=function(t,e){this.name=t,this.parent=e},u.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},u.SlotData=function(t,e){this.name=t,this.boneData=e},u.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},u.Bone=function(t,e){this.data=t,this.parent=e,this.setToSetupPose()},u.Bone.yDown=!1,u.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(t,e){var i=this.parent;null!=i?(this.worldX=this.x*i.m00+this.y*i.m01+i.worldX,this.worldY=this.x*i.m10+this.y*i.m11+i.worldY,this.worldScaleX=i.worldScaleX*this.scaleX,this.worldScaleY=i.worldScaleY*this.scaleY,this.worldRotation=i.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var r=this.worldRotation*Math.PI/180,n=Math.cos(r),a=Math.sin(r);this.m00=n*this.worldScaleX,this.m10=a*this.worldScaleX,this.m01=-a*this.worldScaleY,this.m11=n*this.worldScaleY,t&&(this.m00=-this.m00,this.m01=-this.m01),e&&(this.m10=-this.m10,this.m11=-this.m11),u.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY}},u.Slot=function(t,e,i){this.data=t,this.skeleton=e,this.bone=i,this.setToSetupPose()},u.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(t){this.attachment=t,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(t){this._attachmentTime=this.skeleton.time-t},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var t=this.data;this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a;for(var e=this.skeleton.data.slots,i=0,r=e.length;r>i;i++)if(e[i]==t){this.setAttachment(t.attachmentName?this.skeleton.getAttachmentBySlotIndex(i,t.attachmentName):null);break}}},u.Skin=function(t){this.name=t,this.attachments={}},u.Skin.prototype={addAttachment:function(t,e,i){this.attachments[t+":"+e]=i},getAttachment:function(t,e){return this.attachments[t+":"+e]},_attachAll:function(t,e){for(var i in e.attachments){var r=i.indexOf(":"),n=parseInt(i.substring(0,r)),a=i.substring(r+1),s=t.slots[n];if(s.attachment&&s.attachment.name==a){var o=this.getAttachment(n,a);o&&s.setAttachment(o)}}}},u.Animation=function(t,e,i){this.name=t,this.timelines=e,this.duration=i},u.Animation.prototype={apply:function(t,e,i){i&&0!=this.duration&&(e%=this.duration);for(var r=this.timelines,n=0,a=r.length;a>n;n++)r[n].apply(t,e,1)},mix:function(t,e,i,r){i&&0!=this.duration&&(e%=this.duration);for(var n=this.timelines,a=0,s=n.length;s>a;a++)n[a].apply(t,e,r)}},u.binarySearch=function(t,e,i){var r=0,n=Math.floor(t.length/i)-2;if(0==n)return i;for(var a=n>>>1;;){if(e>=t[(a+1)*i]?r=a+1:n=a,r==n)return(r+1)*i;a=r+n>>>1}},u.linearSearch=function(t,e,i){for(var r=0,n=t.length-i;n>=r;r+=i)if(t[r]>e)return r;return-1},u.Curves=function(t){this.curves=[],this.curves.length=6*(t-1)},u.Curves.prototype={setLinear:function(t){this.curves[6*t]=0},setStepped:function(t){this.curves[6*t]=-1},setCurve:function(t,e,i,r,n){var a=.1,s=a*a,o=s*a,h=3*a,l=3*s,u=6*s,c=6*o,d=2*-e+r,p=2*-i+n,f=3*(e-r)+1,g=3*(i-n)+1,v=6*t,m=this.curves;m[v]=e*h+d*l+f*o,m[v+1]=i*h+p*l+g*o,m[v+2]=d*u+f*c,m[v+3]=p*u+g*c,m[v+4]=f*c,m[v+5]=g*c},getCurvePercent:function(t,e){e=0>e?0:e>1?1:e;var i=6*t,r=this.curves,n=r[i];if(!n)return e;if(-1==n)return 0;for(var a=r[i+1],s=r[i+2],o=r[i+3],h=r[i+4],l=r[i+5],u=n,c=a,d=8;;){if(u>=e){var p=u-n,f=c-a;return f+(c-f)*(e-p)/(u-p)}if(0==d)break;d--,n+=s,a+=o,s+=h,o+=l,u+=n,c+=a}return c+(1-c)*(e-u)/(1-u)}},u.RotateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=2*t},u.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){t*=2,this.frames[t]=e,this.frames[t+1]=i},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-2]){for(var a=n.data.rotation+r[r.length-1]-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;return n.rotation+=a*i,void 0}var s=u.binarySearch(r,e,2),o=r[s-1],h=r[s],l=1-(e-h)/(r[s-2]-h);l=this.curves.getCurvePercent(s/2-1,l);for(var a=r[s+1]-o;a>180;)a-=360;for(;-180>a;)a+=360;for(a=n.data.rotation+(o+a*l)-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;n.rotation+=a*i}}},u.TranslateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.x+=(n.data.x+r[r.length-2]-n.x)*i,n.y+=(n.data.y+r[r.length-1]-n.y)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.x+=(n.data.x+s+(r[a+1]-s)*l-n.x)*i,n.y+=(n.data.y+o+(r[a+2]-o)*l-n.y)*i}}},u.ScaleTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.scaleX+=(n.data.scaleX-1+r[r.length-2]-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+r[r.length-1]-n.scaleY)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.scaleX+=(n.data.scaleX-1+s+(r[a+1]-s)*l-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+o+(r[a+2]-o)*l-n.scaleY)*i}}},u.ColorTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=5*t},u.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e){t*=5,this.frames[t]=e,this.frames[t+1]=r,this.frames[t+2]=g,this.frames[t+3]=b,this.frames[t+4]=a},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.slots[this.slotIndex];if(e>=r[r.length-5]){var a=r.length-1;return n.r=r[a-3],n.g=r[a-2],n.b=r[a-1],n.a=r[a],void 0}var s=u.binarySearch(r,e,5),o=r[s-4],h=r[s-3],l=r[s-2],c=r[s-1],d=r[s],p=1-(e-d)/(r[s-5]-d);p=this.curves.getCurvePercent(s/5-1,p);var f=o+(r[s+1]-o)*p,g=h+(r[s+2]-h)*p,v=l+(r[s+3]-l)*p,m=c+(r[s+4]-c)*p;1>i?(n.r+=(f-n.r)*i,n.g+=(g-n.g)*i,n.b+=(v-n.b)*i,n.a+=(m-n.a)*i):(n.r=f,n.g=g,n.b=v,n.a=m)}}},u.AttachmentTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=t,this.attachmentNames=[],this.attachmentNames.length=t},u.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){this.frames[t]=e,this.attachmentNames[t]=i},apply:function(t,e){var i=this.frames;if(!(i[0]>e)){var r;r=e>=i[i.length-1]?i.length-1:u.binarySearch(i,e,1)-1;var n=this.attachmentNames[r];t.slots[this.slotIndex].setAttachment(n?t.getAttachmentBySlotIndex(this.slotIndex,n):null)}}},u.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},u.SkeletonData.prototype={defaultSkin:null,findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return slot[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSkin:function(t){for(var e=this.skins,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findAnimation:function(t){for(var e=this.animations,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null}},u.Skeleton=function(t){this.data=t,this.bones=[];for(var e=0,i=t.bones.length;i>e;e++){var r=t.bones[e],n=r.parent?this.bones[t.bones.indexOf(r.parent)]:null;this.bones.push(new u.Bone(r,n))}this.slots=[],this.drawOrder=[];for(var e=0,i=t.slots.length;i>e;e++){var a=t.slots[e],s=this.bones[t.bones.indexOf(a.boneData)],o=new u.Slot(a,this,s);this.slots.push(o),this.drawOrder.push(o)}},u.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var t=this.flipX,e=this.flipY,i=this.bones,r=0,n=i.length;n>r;r++)i[r].updateWorldTransform(t,e)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var t=this.bones,e=0,i=t.length;i>e;e++)t[e].setToSetupPose()},setSlotsToSetupPose:function(){for(var t=this.slots,e=0,i=t.length;i>e;e++)t[e].setToSetupPose(e)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},setSkinByName:function(t){var e=this.data.findSkin(t);if(!e)throw"Skin not found: "+t;this.setSkin(e)},setSkin:function(t){this.skin&&t&&t._attachAll(this,this.skin),this.skin=t},getAttachmentBySlotName:function(t,e){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(t),e)},getAttachmentBySlotIndex:function(t,e){if(this.skin){var i=this.skin.getAttachment(t,e);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},setAttachment:function(t,e){for(var i=this.slots,r=0,n=i.size;n>r;r++){var a=i[r];if(a.data.name==t){var s=null;if(e&&(s=this.getAttachment(r,e),null==s))throw"Attachment not found: "+e+", for slot: "+t;return a.setAttachment(s),void 0}}throw"Slot not found: "+t},update:function(t){time+=t}},u.AttachmentType={region:0},u.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},u.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(t,e,i,r,n){var a=this.uvs;n?(a[2]=t,a[3]=r,a[4]=t,a[5]=e,a[6]=i,a[7]=e,a[0]=i,a[1]=r):(a[0]=t,a[1]=r,a[2]=t,a[3]=e,a[4]=i,a[5]=e,a[6]=i,a[7]=r)},updateOffset:function(){var t=this.width/this.regionOriginalWidth*this.scaleX,e=this.height/this.regionOriginalHeight*this.scaleY,i=-this.width/2*this.scaleX+this.regionOffsetX*t,r=-this.height/2*this.scaleY+this.regionOffsetY*e,n=i+this.regionWidth*t,a=r+this.regionHeight*e,s=this.rotation*Math.PI/180,o=Math.cos(s),h=Math.sin(s),l=i*o+this.x,u=i*h,c=r*o+this.y,d=r*h,p=n*o+this.x,f=n*h,g=a*o+this.y,v=a*h,m=this.offset;m[0]=l-d,m[1]=c+u,m[2]=l-v,m[3]=g+u,m[4]=p-v,m[5]=g+f,m[6]=p-d,m[7]=c+f},computeVertices:function(t,e,i,r){t+=i.worldX,e+=i.worldY;var n=i.m00,a=i.m01,s=i.m10,o=i.m11,h=this.offset;r[0]=h[0]*n+h[1]*a+t,r[1]=h[0]*s+h[1]*o+e,r[2]=h[2]*n+h[3]*a+t,r[3]=h[2]*s+h[3]*o+e,r[4]=h[4]*n+h[5]*a+t,r[5]=h[4]*s+h[5]*o+e,r[6]=h[6]*n+h[7]*a+t,r[7]=h[6]*s+h[7]*o+e}},u.AnimationStateData=function(t){this.skeletonData=t,this.animationToMixTime={}},u.AnimationStateData.prototype={setMixByName:function(t,e,i){var r=this.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;var n=this.skeletonData.findAnimation(e);if(!n)throw"Animation not found: "+e;this.setMix(r,n,i)},setMix:function(t,e,i){this.animationToMixTime[t.name+":"+e.name]=i},getMix:function(t,e){var i=this.animationToMixTime[t.name+":"+e.name];return i?i:0}},u.AnimationState=function(t){this.data=t,this.queue=[]},u.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(t){if(this.currentTime+=t,this.previousTime+=t,this.mixTime+=t,this.queue.length>0){var e=this.queue[0];this.currentTime>=e.delay&&(this._setAnimation(e.animation,e.loop),this.queue.shift())}},apply:function(t){if(this.current)if(this.previous){this.previous.apply(t,this.previousTime,this.previousLoop);var e=this.mixTime/this.mixDuration;e>=1&&(e=1,this.previous=null),this.current.mix(t,this.currentTime,this.currentLoop,e)}else this.current.apply(t,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(t,e){this.previous=null,t&&this.current&&(this.mixDuration=this.data.getMix(this.current,t),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=t,this.currentLoop=e,this.currentTime=0},setAnimationByName:function(t,e){var i=this.data.skeletonData.findAnimation(t);if(!i)throw"Animation not found: "+t;this.setAnimation(i,e)},setAnimation:function(t,e){this.queue.length=0,this._setAnimation(t,e)},addAnimationByName:function(t,e,i){var r=this.data.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;this.addAnimation(r,e,i)},addAnimation:function(t,e,i){var r={};if(r.animation=t,r.loop=e,!i||0>=i){var n=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;i=null!=n?n.duration-this.data.getMix(n,t)+(i||0):0}r.delay=i,this.queue.push(r)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},u.SkeletonJson=function(t){this.attachmentLoader=t},u.SkeletonJson.prototype={scale:1,readSkeletonData:function(t){for(var e=new u.SkeletonData,i=t.bones,r=0,n=i.length;n>r;r++){var a=i[r],s=null;if(a.parent&&(s=e.findBone(a.parent),!s))throw"Parent bone not found: "+a.parent;var o=new u.BoneData(a.name,s);o.length=(a.length||0)*this.scale,o.x=(a.x||0)*this.scale,o.y=(a.y||0)*this.scale,o.rotation=a.rotation||0,o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1,e.bones.push(o)}for(var h=t.slots,r=0,n=h.length;n>r;r++){var l=h[r],o=e.findBone(l.bone);if(!o)throw"Slot bone not found: "+l.bone;var c=new u.SlotData(l.name,o),d=l.color;d&&(c.r=u.SkeletonJson.toColor(d,0),c.g=u.SkeletonJson.toColor(d,1),c.b=u.SkeletonJson.toColor(d,2),c.a=u.SkeletonJson.toColor(d,3)),c.attachmentName=l.attachment,e.slots.push(c)}var p=t.skins;for(var f in p)if(p.hasOwnProperty(f)){var g=p[f],v=new u.Skin(f);for(var m in g)if(g.hasOwnProperty(m)){var x=e.findSlotIndex(m),b=g[m];for(var y in b)if(b.hasOwnProperty(y)){var T=this.readAttachment(v,y,b[y]);null!=T&&v.addAttachment(x,y,T)}}e.skins.push(v),"default"==v.name&&(e.defaultSkin=v)}var A=t.animations;for(var w in A)A.hasOwnProperty(w)&&this.readAnimation(w,A[w],e);return e},readAttachment:function(t,e,i){e=i.name||e;var r=u.AttachmentType[i.type||"region"],n=new u.RegionAttachment;return n.name=e,r==u.AttachmentType.region&&(n.x=(i.x||0)*this.scale,n.y=(i.y||0)*this.scale,n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1,n.rotation=i.rotation||0,n.width=(i.width||32)*this.scale,n.height=(i.height||32)*this.scale,n.updateOffset()),n},readAnimation:function(t,e,i){var r=[],n=0,a=e.bones;for(var s in a)if(a.hasOwnProperty(s)){var o=i.findBoneIndex(s);if(-1==o)throw"Bone not found: "+s;var h=a[s];for(var l in h)if(h.hasOwnProperty(l)){var c=h[l];if("rotate"==l){var d=new u.RotateTimeline(c.length);d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p,v.time,v.angle),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[2*d.getFrameCount()-2])}else{if("translate"!=l&&"scale"!=l)throw"Invalid timeline type for a bone: "+l+" ("+s+")";var d,m=1;"scale"==l?d=new u.ScaleTimeline(c.length):(d=new u.TranslateTimeline(c.length),m=this.scale),d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],x=(v.x||0)*m,b=(v.y||0)*m;d.setFrame(p,v.time,x,b),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[3*d.getFrameCount()-3])}}}var y=e.slots;for(var T in y)if(y.hasOwnProperty(T)){var A=y[T],w=i.findSlotIndex(T);for(var l in A)if(A.hasOwnProperty(l)){var c=A[l];if("color"==l){var d=new u.ColorTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],_=v.color,R=u.SkeletonJson.toColor(_,0),S=u.SkeletonJson.toColor(_,1),C=u.SkeletonJson.toColor(_,2),L=u.SkeletonJson.toColor(_,3);d.setFrame(p,v.time,R,S,C,L),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[5*d.getFrameCount()-5])}else{if("attachment"!=l)throw"Invalid timeline type for a slot: "+l+" ("+T+")";var d=new u.AttachmentTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p++,v.time,v.name)}r.push(d),n=Math.max(n,d.frames[Math.floor(d.getFrameCount())-1])}}}i.animations.push(new u.Animation(t,r,n))}},u.SkeletonJson.readCurve=function(t,e,i){var r=i.curve;r&&("stepped"==r?t.curves.setStepped(e):r instanceof Array&&t.curves.setCurve(e,r[0],r[1],r[2],r[3]))},u.SkeletonJson.toColor=function(t,e){if(8!=t.length)throw"Color hexidecimal length must be 8, recieved: "+t;return parseInt(t.substring(2*e,2),16)/255},u.Atlas=function(t,e){this.textureLoader=e,this.pages=[],this.regions=[];var i=new u.AtlasReader(t),r=[];r.length=4;for(var n=null;;){var a=i.readLine();if(null==a)break;if(a=i.trim(a),0==a.length)n=null;else if(n){var s=new u.AtlasRegion;s.name=a,s.page=n,s.rotate="true"==i.readValue(),i.readTuple(r);var o=parseInt(r[0]),h=parseInt(r[1]);i.readTuple(r);var l=parseInt(r[0]),c=parseInt(r[1]);s.u=o/n.width,s.v=h/n.height,s.rotate?(s.u2=(o+c)/n.width,s.v2=(h+l)/n.height):(s.u2=(o+l)/n.width,s.v2=(h+c)/n.height),s.x=o,s.y=h,s.width=Math.abs(l),s.height=Math.abs(c),4==i.readTuple(r)&&(s.splits=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],4==i.readTuple(r)&&(s.pads=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],i.readTuple(r))),s.originalWidth=parseInt(r[0]),s.originalHeight=parseInt(r[1]),i.readTuple(r),s.offsetX=parseInt(r[0]),s.offsetY=parseInt(r[1]),s.index=parseInt(i.readValue()),this.regions.push(s)}else{n=new u.AtlasPage,n.name=a,n.format=u.Atlas.Format[i.readValue()],i.readTuple(r),n.minFilter=u.Atlas.TextureFilter[r[0]],n.magFilter=u.Atlas.TextureFilter[r[1]];var d=i.readValue();n.uWrap=u.Atlas.TextureWrap.clampToEdge,n.vWrap=u.Atlas.TextureWrap.clampToEdge,"x"==d?n.uWrap=u.Atlas.TextureWrap.repeat:"y"==d?n.vWrap=u.Atlas.TextureWrap.repeat:"xy"==d&&(n.uWrap=n.vWrap=u.Atlas.TextureWrap.repeat),e.load(n,a),this.pages.push(n)}}},u.Atlas.prototype={findRegion:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},dispose:function(){for(var t=this.pages,e=0,i=t.length;i>e;e++)this.textureLoader.unload(t[e].rendererObject)},updateUVs:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++){var n=e[i];n.page==t&&(n.u=n.x/t.width,n.v=n.y/t.height,n.rotate?(n.u2=(n.x+n.height)/t.width,n.v2=(n.y+n.width)/t.height):(n.u2=(n.x+n.width)/t.width,n.v2=(n.y+n.height)/t.height))}}},u.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},u.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},u.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},u.AtlasPage=function(){},u.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},u.AtlasRegion=function(){},u.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},u.AtlasReader=function(t){this.lines=t.split(/\r\n|\r|\n/)},u.AtlasReader.prototype={index:0,trim:function(t){return t.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw"Invalid line: "+t;return this.trim(t.substring(e+1))},readTuple:function(t){var e=this.readLine(),i=e.indexOf(":");if(-1==i)throw"Invalid line: "+e;for(var r=0,n=i+1;3>r;r++){var a=e.indexOf(",",n);if(-1==a){if(0==r)throw"Invalid line: "+e;break}t[r]=this.trim(e.substr(n,a-n)),n=a+1}return t[r]=this.trim(e.substring(n)),r+1}},u.AtlasAttachmentLoader=function(t){this.atlas=t},u.AtlasAttachmentLoader.prototype={newAttachment:function(t,e,i){switch(e){case u.AttachmentType.region:var r=this.atlas.findRegion(i);if(!r)throw"Region not found in atlas: "+i+" ("+e+")";var n=new u.RegionAttachment(i);return n.rendererObject=r,n.setUVs(r.u,r.v,r.u2,r.v2,r.rotate),n.regionOffsetX=r.offsetX,n.regionOffsetY=r.offsetY,n.regionWidth=r.width,n.regionHeight=r.height,n.regionOriginalWidth=r.originalWidth,n.regionOriginalHeight=r.originalHeight,n}throw"Unknown attachment type: "+e}},n.AnimCache={},u.Bone.yDown=!0,n.CustomRenderable=function(){n.DisplayObject.call(this)},n.CustomRenderable.constructor=n.CustomRenderable,n.CustomRenderable.prototype=Object.create(n.DisplayObject.prototype),n.CustomRenderable.prototype.renderCanvas=function(){},n.CustomRenderable.prototype.initWebGL=function(){},n.CustomRenderable.prototype.renderWebGL=function(){},n.BaseTextureCache={},n.texturesToUpdate=[],n.texturesToDestroy=[],n.BaseTexture=function(t){if(n.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,n.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);this._powerOf2=!1}},n.BaseTexture.constructor=n.BaseTexture,n.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,n.texturesToDestroy.push(this)},n.BaseTexture.fromImage=function(t,e){var i=n.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new n.BaseTexture(r),n.BaseTextureCache[t]=i}return i},n.TextureCache={},n.FrameCache={},n.Texture=function(t,e){if(n.EventTarget.call(this),e||(this.noFrame=!0,e=new n.Rectangle(0,0,1,1)),this.trim=new n.Point,t instanceof n.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new n.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},n.Texture.constructor=n.Texture,n.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new n.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},n.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},n.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,n.Texture.frameUpdates.push(this)},n.Texture.fromImage=function(t,e){var i=n.TextureCache[t];return i||(i=new n.Texture(n.BaseTexture.fromImage(t,e)),n.TextureCache[t]=i),i},n.Texture.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},n.Texture.fromCanvas=function(t){var e=new n.BaseTexture(t);return new n.Texture(e)},n.Texture.addTextureToCache=function(t,e){n.TextureCache[e]=t},n.Texture.removeTextureFromCache=function(t){var e=n.TextureCache[t];return n.TextureCache[t]=null,e},n.Texture.frameUpdates=[],n.RenderTexture=function(t,e){n.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=n.mat3.create(),this.frame=new n.Rectangle(0,0,this.width,this.height),n.gl?this.initWebGL():this.initCanvas()},n.RenderTexture.constructor=n.RenderTexture,n.RenderTexture.prototype=Object.create(n.Texture.prototype),n.RenderTexture.prototype.initWebGL=function(){var t=n.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new n.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new n.Point(this.width/2,this.height/2),this.projectionMatrix=n.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},n.RenderTexture.prototype.initCanvas=function(){this.renderer=new n.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new n.BaseTexture(this.renderer.view),this.frame=new n.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},n.RenderTexture.prototype.renderWebGL=function(t,e){var i=n.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=n.mat3.create(),t.worldTransform[4]=-1,t.worldTransform[5]=2*this.projection.y;for(var a=0,s=r.length;s>a;a++)r[a].updateTransform();var o=t.__renderGroup;o?t==o.root?o.render(this.projection):o.renderSpecific(t,this.projection):(this.renderGroup||(this.renderGroup=new n.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projection))},n.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=n.mat3.create();for(var r=0,a=i.length;a>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),n.texturesToUpdate.push(this.baseTexture)},n.AssetLoader=function(t){n.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:n.ImageLoader,jpeg:n.ImageLoader,png:n.ImageLoader,gif:n.ImageLoader,json:n.JsonLoader,anim:n.SpineLoader,xml:n.BitmapFontLoader,fnt:n.BitmapFontLoader}},n.AssetLoader.constructor=n.AssetLoader,n.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),n=this.loadersByType[r];if(!n)throw Error(r+" is an unsupported file type");var a=new n(i,this.crossorigin);a.addEventListener("loaded",function(){t.onAssetLoaded()}),a.load()}},n.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},n.JsonLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.crossorigin=e,this.loaded=!1},n.JsonLoader.constructor=n.JsonLoader,n.JsonLoader.prototype.load=function(){this.ajaxRequest=new l;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},n.JsonLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState)if(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))if(this.json=JSON.parse(this.ajaxRequest.responseText),this.json.frames){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0))}i.load()}else if(this.json.bones){var o=new u.SkeletonJson,h=o.readSkeletonData(this.json);n.AnimCache[this.url]=h,this.onLoaded()}else this.onLoaded();else this.onError()},n.JsonLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},n.JsonLoader.prototype.onError=function(){this.dispatchEvent({type:"error",content:this})},n.SpriteSheetLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},n.SpriteSheetLoader.constructor=n.SpriteSheetLoader,n.SpriteSheetLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpriteSheetLoader.prototype.onJSONLoaded=function(){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0)) }i.load()},n.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.ImageLoader=function(t,e){n.EventTarget.call(this),this.texture=n.Texture.fromImage(t,e)},n.ImageLoader.constructor=n.ImageLoader,n.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},n.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.BitmapFontLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},n.BitmapFontLoader.constructor=n.BitmapFontLoader,n.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},n.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new n.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],a=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(a.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var s=this.ajaxRequest.responseXML.getElementsByTagName("char"),o=0;s.length>o;o++){var h=parseInt(s[o].attributes.getNamedItem("id").nodeValue,10),l={x:parseInt(s[o].attributes.getNamedItem("x").nodeValue,10),y:parseInt(s[o].attributes.getNamedItem("y").nodeValue,10),width:parseInt(s[o].attributes.getNamedItem("width").nodeValue,10),height:parseInt(s[o].attributes.getNamedItem("height").nodeValue,10)};n.TextureCache[h]=new n.Texture(this.texture,l),i.chars[h]={xOffset:parseInt(s[o].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(s[o].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(s[o].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{},texture:new n.Texture(this.texture,l)}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(o=0;u.length>o;o++){var c=parseInt(u[o].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[o].attributes.getNamedItem("second").nodeValue,10),p=parseInt(u[o].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=p}n.BitmapText.fonts[i.font]=i;var f=this;e.addEventListener("loaded",function(){f.onLoaded()}),e.load()}},n.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.SpineLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.crossorigin=e,this.loaded=!1},n.SpineLoader.constructor=n.SpineLoader,n.SpineLoader.prototype.load=function(){new n.JsonLoader(this.url,this.crossorigin),jsonLoader.addEventListener("loaded",function(t){scope.json=t.content.json,scope.onJSONLoaded()}),jsonLoader.load()},n.SpineLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpineLoader.prototype.onJSONLoaded=function(){var t=new u.SkeletonJson,e=t.readSkeletonData(this.json);n.AnimCache[this.url]=e,this.onLoaded()},n.SpineLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports.PIXI=n):i.PIXI=n}).call(this); \ No newline at end of file diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index 25cca17..0391561 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index 25cca17..0391561 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 12 - Spine/pixi.js b/examples/example 12 - Spine/pixi.js index 25cca17..0391561 100644 --- a/examples/example 12 - Spine/pixi.js +++ b/examples/example 12 - Spine/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 13 - Graphics/index.html b/examples/example 13 - Graphics/index.html index e6996b7..d847ef2 100644 --- a/examples/example 13 - Graphics/index.html +++ b/examples/example 13 - Graphics/index.html @@ -80,17 +80,40 @@ stage.addChild(graphics); + // lets create moving shape + var thing = new PIXI.Graphics(); + stage.addChild(thing); + thing.position.x = 620/2; + thing.position.y = 380/2; + + var count = 0; + stage.click = stage.tap = function() { graphics.lineStyle(Math.random() * 30, Math.random() * 0xFFFFFF, 1); graphics.moveTo(Math.random() * 620,Math.random() * 380); graphics.lineTo(Math.random() * 620,Math.random() * 380); - } requestAnimFrame(animate); function animate() { + + thing.clear(); + + count += 0.1; + + thing.clear(); + thing.lineStyle(30, 0xff0000, 1); + thing.beginFill(0xffFF00, 0.5); + + thing.moveTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + thing.lineTo(120 + Math.cos(count) * 20, -100 + Math.sin(count)* 20); + thing.lineTo(120 + Math.sin(count) * 20, 100 + Math.cos(count)* 20); + thing.lineTo(-120 + Math.cos(count)* 20, 100 + Math.sin(count)* 20); + thing.lineTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + + thing.rotation = count * 0.1; renderer.render(stage); requestAnimFrame( animate ); } diff --git a/examples/example 13 - Graphics/pixi.js b/examples/example 13 - Graphics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 13 - Graphics/pixi.js +++ b/examples/example 13 - Graphics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index 25cca17..0391561 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index 25cca17..0391561 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 4 - Balls/pixi.js b/examples/example 4 - Balls/pixi.js index 25cca17..0391561 100644 --- a/examples/example 4 - Balls/pixi.js +++ b/examples/example 4 - Balls/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 5 - Morph/pixi.js b/examples/example 5 - Morph/pixi.js index 25cca17..0391561 100644 --- a/examples/example 5 - Morph/pixi.js +++ b/examples/example 5 - Morph/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 6 - Interactivity/pixi.js b/examples/example 6 - Interactivity/pixi.js index 25cca17..0391561 100644 --- a/examples/example 6 - Interactivity/pixi.js +++ b/examples/example 6 - Interactivity/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 7 - Transparent Background/pixi.js b/examples/example 7 - Transparent Background/pixi.js index 25cca17..0391561 100644 --- a/examples/example 7 - Transparent Background/pixi.js +++ b/examples/example 7 - Transparent Background/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 8 - Dragging/pixi.js b/examples/example 8 - Dragging/pixi.js index 25cca17..0391561 100644 --- a/examples/example 8 - Dragging/pixi.js +++ b/examples/example 8 - Dragging/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.js b/bin/pixi.js index 51d6836..96307b0 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -9,7 +9,7 @@ * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; +(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[],t._webGL.indices=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; if(0!=r.length){var a=new n.Point(r[0],r[1]),s=new n.Point(r[r.length-2],r[r.length-1]);if(a.x==s.x&&a.y==s.y){r.pop(),r.pop(),s=new n.Point(r[r.length-2],r[r.length-1]);var o=s.x+.5*(a.x-s.x),h=s.y+.5*(a.y-s.y);r.unshift(o,h),r.push(o,h)}var l,u,c,d,p,f,g,v,m,x,b,y,T,A,w,_,R,S,C,L,E,B=i.points,F=i.indices,P=r.length/2,G=r.length,I=B.length/6,D=t.lineWidth/2,M=e(t.lineColor),O=t.lineAlpha,W=M[0]*O,U=M[1]*O,j=M[2]*O;l=r[0],u=r[1],c=r[2],d=r[3],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(l-g,u-v,W,U,j,O),B.push(l+g,u+v,W,U,j,O);for(var k=1;P-1>k;k++)l=r[2*(k-1)],u=r[2*(k-1)+1],c=r[2*k],d=r[2*k+1],p=r[2*(k+1)],f=r[2*(k+1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,m=-(d-f),x=c-p,E=Math.sqrt(m*m+x*x),m/=E,x/=E,m*=D,x*=D,T=-v+u-(-v+d),A=-g+c-(-g+l),w=(-g+l)*(-v+d)-(-g+c)*(-v+u),_=-x+f-(-x+d),R=-m+c-(-m+p),S=(-m+p)*(-x+d)-(-m+c)*(-x+f),C=T*R-_*A,0==C&&(C+=1),px=(A*S-R*w)/C,py=(_*w-T*S)/C,L=(px-c)*(px-c)+(py-d)+(py-d),L>19600?(b=g-m,y=v-x,E=Math.sqrt(b*b+y*y),b/=E,y/=E,b*=D,y*=D,B.push(c-b,d-y),B.push(W,U,j,O),B.push(c+b,d+y),B.push(W,U,j,O),B.push(c-b,d-y),B.push(W,U,j,O),G++):(B.push(px,py),B.push(W,U,j,O),B.push(c-(px-c),d-(py-d)),B.push(W,U,j,O));l=r[2*(P-2)],u=r[2*(P-2)+1],c=r[2*(P-1)],d=r[2*(P-1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(c-g,d-v),B.push(W,U,j,O),B.push(c+g,d+v),B.push(W,U,j,O),F.push(I);for(var k=0;G>k;k++)F.push(I++);F.push(I-1)}},n.WebGLGraphics.buildPoly=function(t,i){var r=t.points;if(!(6>r.length)){for(var a=i.points,s=i.indices,o=r.length/2,h=e(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=n.PolyK.Triangulate(r),f=a.length/6,g=0;p.length>g;g+=3)s.push(p[g]+f),s.push(p[g]+f),s.push(p[g+1]+f),s.push(p[g+2]+f),s.push(p[g+2]+f);for(var g=0;o>g;g++)a.push(r[2*g],r[2*g+1],u,c,d,l)}},n._defaultFrame=new n.Rectangle(0,0,1,1),n.gl,n.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var a=this;this.view.addEventListener("webglcontextlost",function(t){a.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){a.handleContextRestored(t)},!1),this.batchs=[];try{n.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!0,premultipliedAlpha:!1})}catch(s){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}n.initPrimitiveShader(),n.initDefaultShader(),n.initDefaultStripShader(),n.activateDefaultShader();var o=this.gl;n.WebGLRenderer.gl=o,this.batch=new n.WebGLBatch(o),o.disable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.enable(o.BLEND),o.colorMask(!0,!0,!0,this.transparent),n.projection=new n.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new n.WebGLRenderGroup(this.gl)},n.WebGLRenderer.constructor=n.WebGLRenderer,n.WebGLRenderer.getBatch=function(){return 0==n._batchs.length?new n.WebGLBatch(n.WebGLRenderer.gl):n._batchs.pop()},n.WebGLRenderer.returnBatch=function(t){t.clean(),n._batchs.push(t)},n.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),n.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],!this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(n.projection),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0){for(var i=0;n.Texture.frameUpdates.length>i;i++)n.Texture.frameUpdates[i].updateFrame=!1;n.Texture.frameUpdates=[]}}},n.WebGLRenderer.updateTextures=function(){for(var t=0;n.texturesToUpdate.length>t;t++)this.updateTexture(n.texturesToUpdate[t]);for(var t=0;n.texturesToDestroy.length>t;t++)this.destroyTexture(n.texturesToDestroy[t]);n.texturesToUpdate=[],n.texturesToDestroy=[]},n.WebGLRenderer.updateTexture=function(t){var e=n.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},n.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},n.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),n.projection.x=this.width/2,n.projection.y=this.height/2},n.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},n.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;n.TextureCache.length>t;t++)this.updateTexture(n.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;n._restoreBatchs(this.gl),this.contextLost=!1},n._batchs=[],n._getBatch=function(t){return 0==n._batchs.length?new n.WebGLBatch(t):n._batchs.pop()},n._returnBatch=function(t){t.clean(),n._batchs.push(t)},n._restoreBatchs=function(t){for(var e=0;n._batchs.length>e;e++)n._batchs[e].restoreLostContext(t)},n.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=n.blendModes.NORMAL,this.dynamicSize=1},n.WebGLBatch.constructor=n.WebGLBatch,n.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},n.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},n.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},n.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},n.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},n.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},n.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new n.WebGLBatch(this.gl);e.init(t),e.texture=this.texture,e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},n.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},n.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,n=4*i;this.indices[r+0]=n+0,this.indices[r+1]=n+1,this.indices[r+2]=n+2,this.indices[r+3]=n+0,this.indices[r+4]=n+2,this.indices[r+5]=n+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},n.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof n.WebGLBatch?this.batchs[r].render():i instanceof n.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof n.Strip?i.visible&&this.renderStrip(i,t):i instanceof n.Graphics&&i.visible&&n.WebGLGraphics.renderGraphics(i,t)},n.WebGLRenderGroup.prototype.renderSpecific=function(t,e){n.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniform2f(n.shaderProgram.projectionVector,e.x,e.y);var r,a,s,o,h=t.renderable?t:this.getNextRenderable(t),l=h.batch;if(h instanceof n.Sprite){l=h.batch;var u=l.head;if(u==h)r=0;else for(r=1;u.__next!=h;)r++,u=u.__next}else l=h;for(var c,d=t,p=t;p.children.length>0;)p=p.children[p.children.length-1],p.renderable&&(d=p);if(d instanceof n.Sprite){c=d.batch;var u=c.head;if(u==d)s=0;else for(s=1;u.__next!=d;)s++,u=u.__next}else c=d;if(l==c)return l instanceof n.WebGLBatch?l.render(r,s+1):this.renderSpecial(l),void 0;a=this.batchs.indexOf(l),o=this.batchs.indexOf(c),l instanceof n.WebGLBatch?l.render(r):this.renderSpecial(l);for(var f=a+1;o>f;f++)renderable=this.batchs[f],renderable instanceof n.WebGLBatch?this.batchs[f].render():this.renderSpecial(renderable);c instanceof n.WebGLBatch?c.render(0,s+1):this.renderSpecial(c)},n.WebGLRenderGroup.prototype.renderSpecial=function(t){t instanceof n.TilingSprite?t.visible&&this.renderTilingSprite(t,projectionMatrix):t instanceof n.Strip?t.visible&&this.renderStrip(t,projectionMatrix):t instanceof n.CustomRenderable?t.visible&&t.renderWebGL(this,projectionMatrix):t instanceof n.Graphics&&t.visible&&n.WebGLGraphics.renderGraphics(t)},n.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var n=i[r];n.worldVisible=n.visible&&e,n.textureChange&&(n.textureChange=!1,n.worldVisible&&(this.removeDisplayObject(n),this.addDisplayObject(n))),n.children.length>0&&this.checkVisibility(n,n.worldVisible)}},n.WebGLRenderGroup.prototype.updateTexture=function(t){if(1==t.batch.length)return t.batch.texture=t.texture.baseTexture,void 0;if(t.batch.texture!=t.texture.baseTexture)if(t.batch.head==t){var e=t.batch,i=this.batchs.indexOf(e),r=this.batchs[i-1];if(e.remove(t),r)if(r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)r.insertAfter(t,r.tail);else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i-1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(0,0,a)}}else if(t.batch.tail==t){var e=t.batch,i=this.batchs.indexOf(e),s=this.batchs[i+1];if(e.remove(t),s){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,s.head),void 0;var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i+1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.push(a)}}else{var e=t.batch,o=e.split(t);o.remove(t);var a=n.WebGLRenderer.getBatch(),i=this.batchs.indexOf(e);a.init(t),this.batchs.splice(i+1,0,a,o)}},n.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof n.Sprite){var r,a;if(e instanceof n.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof n.Sprite){if(a=i.batch){if(a.texture==t.texture.baseTexture&&a.blendMode==t.blendMode)return a.insertBefore(t,i),void 0;if(a==r){var s=r.split(i),o=n.WebGLRenderer.getBatch(),h=this.batchs.indexOf(r);return o.init(t),this.batchs.splice(h+1,0,o,s),void 0}}}else a=i;var o=n.WebGLRenderer.getBatch();if(o.init(t),r){var h=this.batchs.indexOf(r);this.batchs.splice(h+1,0,o)}else this.batchs.push(o)}else t instanceof n.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof n.Strip?(this.initStrip(t),this.batchs.push(t)):t instanceof n.Graphics&&this.batchs.push(t);this.batchUpdate=!0}},n.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},n.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof n.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof n.WebGLBatch&&this.batchs[r+1]instanceof n.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),n.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e)}}},n.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},n.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},n.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=n.shaderProgram;i.useProgram(n.stripShaderProgram);var a=n.mat3.clone(t.worldTransform);n.mat3.transpose(a),i.uniformMatrix3fv(n.stripShaderProgram.translationMatrix,!1,a),i.uniform2f(n.stripShaderProgram.projectionVector,e.x,e.y),i.uniform1f(n.stripShaderProgram.alpha,t.worldAlpha),t.blendMode==n.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.useProgram(n.shaderProgram)},n.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;n.shaderProgram;var r=t.tilePosition,a=t.tileScale,s=r.x/t.texture.baseTexture.width,o=r.y/t.texture.baseTexture.height,h=t.width/t.texture.baseTexture.width/a.x,l=t.height/t.texture.baseTexture.height/a.y;t.uvs[0]=0-s,t.uvs[1]=0-o,t.uvs[2]=1*h-s,t.uvs[3]=0-o,t.uvs[4]=1*h-s,t.uvs[5]=1*l-o,t.uvs[6]=0-s,t.uvs[7]=1*l-o,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},n.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},n.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},n.CanvasRenderer.constructor=n.CanvasRenderer,n.CanvasRenderer.prototype.render=function(t){n.texturesToUpdate=[],n.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0&&(n.Texture.frameUpdates=[])},n.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},n.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof n.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof n.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof n.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof n.CustomRenderable?t.renderCanvas(this):t instanceof n.Graphics&&(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),n.CanvasGraphics.renderGraphics(t,i));if(t.children)for(var a=0;t.children.length>a;a++)this.renderDisplayObject(t.children[a]);this.context.setTransform(1,0,0,1,0,0)}},n.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var n=1;r-2>n;n++){var a=2*n,s=i[a],o=i[a+2],h=i[a+4],l=i[a+1],u=i[a+3],c=i[a+5];e.moveTo(s,l),e.lineTo(o,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},n.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;e.globalAlpha=t.worldAlpha,t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},n.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,n=i.length/2;this.count++;for(var a=1;n-2>a;a++){var s=2*a,o=i[s],h=i[s+2],l=i[s+4],u=i[s+1],c=i[s+3],d=i[s+5],p=r[s]*t.texture.width,f=r[s+2]*t.texture.width,g=r[s+4]*t.texture.width,v=r[s+1]*t.texture.height,m=r[s+3]*t.texture.height,x=r[s+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var b=p*m+v*g+f*x-m*g-v*f-p*x,y=o*m+v*l+h*x-m*l-v*h-o*x,T=p*h+o*g+f*l-h*g-o*f-p*l,A=p*m*l+v*h*g+o*f*x-o*m*g-v*f*l-p*h*x,w=u*m+v*d+c*x-m*d-v*c-u*x,_=p*c+u*g+f*d-c*g-u*f-p*d,R=p*m*d+v*c*g+u*f*x-u*m*g-v*f*d-p*c*x;e.transform(y/b,w/b,T/b,_/b,A/b,R/b),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},n.CanvasGraphics=function(){},n.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,r=0;t.graphicsData.length>r;r++){var a=t.graphicsData[r],s=a.points;if(e.strokeStyle=color="#"+("00000"+(0|a.lineColor).toString(16)).substr(-6),e.lineWidth=a.lineWidth,a.type==n.Graphics.POLY){e.beginPath(),e.moveTo(s[0],s[1]);for(var o=1;s.length/2>o;o++)e.lineTo(s[2*o],s[2*o+1]);s[0]==s[s.length-2]&&s[1]==s[s.length-1]&&e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}else if(a.type==n.Graphics.RECT)a.fillColor&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fillRect(s[0],s[1],s[2],s[3])),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.strokeRect(s[0],s[1],s[2],s[3]));else if(a.type==n.Graphics.CIRC)e.beginPath(),e.arc(s[0],s[1],s[2],0,2*Math.PI),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke());else if(a.type==n.Graphics.ELIP){var h=a.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,v=c+l,m=d+u,x=c+l/2,b=d+u/2;e.moveTo(c,b),e.bezierCurveTo(c,b-g,x-f,d,x,d),e.bezierCurveTo(x+f,d,v,b-g,v,b),e.bezierCurveTo(v,b+g,x+f,m,x,m),e.bezierCurveTo(x-f,m,c,b+g,c,b),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}}},n.Graphics=function(){n.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=2,this.lineColor="#FF0000",this.graphicsData=[],this.currentPath={points:[]}},n.Graphics.constructor=n.Graphics,n.Graphics.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Graphics.prototype.lineStyle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=void 0==i?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.graphicsData.push(this.currentPath)},n.Graphics.prototype.moveTo=function(t,e){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath)},n.Graphics.prototype.lineTo=function(t,e){this.currentPath.points.push(t,e),this.dirty=!0},n.Graphics.prototype.beginFill=function(t,e){this.filling=!0,this.fillColor=t||0,this.fillAlpha=e||1},n.Graphics.prototype.endFill=function(){this.filling=!1,this.fillColor=null,this.fillAlpha=1},n.Graphics.prototype.drawRect=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawCircle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:n.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawElipse=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.clear=function(){this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[]},n.Graphics.POLY=0,n.Graphics.RECT=1,n.Graphics.CIRC=2,n.Graphics.ELIP=3,n.Strip=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=n.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Strip.constructor=n.Strip,n.Strip.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},n.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Rope=function(t,e){n.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},n.Rope.constructor=n.Rope,n.Rope.prototype=Object.create(n.Strip.prototype),n.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,n=t[0],a=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var s=t.length,o=1;s>o;o++){var a=t[o],h=4*o,l=o/(s-1);o%2?(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1):(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,n=a}}},n.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],a={x:0,y:0},s=t[0];this.count-=.2,i[0]=s.x+a.x,i[1]=s.y+a.y,i[2]=s.x-a.x,i[3]=s.y-a.y;for(var o=t.length,h=1;o>h;h++){var s=t[h],l=4*h;e=t.length-1>h?t[h+1]:s,a.y=-(e.x-r.x),a.x=e.y-r.y;var u=10*(1-h/(o-1));u>1&&(u=1);var c=Math.sqrt(a.x*a.x+a.y*a.y),d=this.texture.height/2;a.x/=c,a.y/=c,a.x*=d,a.y*=d,i[l]=s.x+a.x,i[l+1]=s.y+a.y,i[l+2]=s.x-a.x,i[l+3]=s.y-a.y,r=s}n.DisplayObjectContainer.prototype.updateTransform.call(this)}},n.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0 },n.TilingSprite=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new n.Point(1,1),this.tilePosition=new n.Point(0,0),this.blendMode=n.blendModes.NORMAL},n.TilingSprite.constructor=n.TilingSprite,n.TilingSprite.prototype=Object.create(n.DisplayObjectContainer.prototype),n.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},n.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Spine=function(t){if(n.DisplayObjectContainer.call(this),this.spineData=n.AnimCache[t],!this.spineData)throw Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+t);this.count=0,this.sprites=[],this.skeleton=new u.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new u.AnimationStateData(this.spineData),this.state=new u.AnimationState(this.stateData);for(var e=0;this.skeleton.drawOrder.length>e;e++){var i=this.skeleton.drawOrder[e].data.attachmentName;n.TextureCache[i]||(i+=".png");var r=new n.Sprite(n.Texture.fromFrame(i));r.anchor.x=r.anchor.y=.5,this.addChild(r),this.sprites.push(r)}},n.Spine.constructor=n.Spine,n.Spine.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Spine.prototype.updateTransform=function(){this.state.update(1/60),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var t=0;this.skeleton.drawOrder.length>t;t++){var e=this.skeleton.drawOrder[t],i=e.bone.worldX+e.attachment.x*e.bone.m00+e.attachment.y*e.bone.m01+.5*e.attachment.width,r=e.bone.worldY+e.attachment.x*e.bone.m10+e.attachment.y*e.bone.m11+.5*e.attachment.height;if(e.cacheName!=e.attachment.name){var a=e.attachment.name;n.TextureCache[a]||(a+=".png"),this.sprites[t].setTexture(n.TextureCache[a]),e.cacheName=e.attachment.name}i+=-(e.attachment.width*(e.bone.worldScaleX+e.attachment.scaleX-1)>>1),r+=-(e.attachment.height*(e.bone.worldScaleY+e.attachment.scaleY-1)>>1),this.sprites[t].position.x=i,this.sprites[t].position.y=r,this.sprites[t].rotation=-(e.bone.worldRotation+e.attachment.rotation)*(Math.PI/180)}n.DisplayObjectContainer.prototype.updateTransform.call(this)};var u={};u.BoneData=function(t,e){this.name=t,this.parent=e},u.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},u.SlotData=function(t,e){this.name=t,this.boneData=e},u.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},u.Bone=function(t,e){this.data=t,this.parent=e,this.setToSetupPose()},u.Bone.yDown=!1,u.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(t,e){var i=this.parent;null!=i?(this.worldX=this.x*i.m00+this.y*i.m01+i.worldX,this.worldY=this.x*i.m10+this.y*i.m11+i.worldY,this.worldScaleX=i.worldScaleX*this.scaleX,this.worldScaleY=i.worldScaleY*this.scaleY,this.worldRotation=i.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var r=this.worldRotation*Math.PI/180,n=Math.cos(r),a=Math.sin(r);this.m00=n*this.worldScaleX,this.m10=a*this.worldScaleX,this.m01=-a*this.worldScaleY,this.m11=n*this.worldScaleY,t&&(this.m00=-this.m00,this.m01=-this.m01),e&&(this.m10=-this.m10,this.m11=-this.m11),u.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY}},u.Slot=function(t,e,i){this.data=t,this.skeleton=e,this.bone=i,this.setToSetupPose()},u.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(t){this.attachment=t,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(t){this._attachmentTime=this.skeleton.time-t},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var t=this.data;this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a;for(var e=this.skeleton.data.slots,i=0,r=e.length;r>i;i++)if(e[i]==t){this.setAttachment(t.attachmentName?this.skeleton.getAttachmentBySlotIndex(i,t.attachmentName):null);break}}},u.Skin=function(t){this.name=t,this.attachments={}},u.Skin.prototype={addAttachment:function(t,e,i){this.attachments[t+":"+e]=i},getAttachment:function(t,e){return this.attachments[t+":"+e]},_attachAll:function(t,e){for(var i in e.attachments){var r=i.indexOf(":"),n=parseInt(i.substring(0,r)),a=i.substring(r+1),s=t.slots[n];if(s.attachment&&s.attachment.name==a){var o=this.getAttachment(n,a);o&&s.setAttachment(o)}}}},u.Animation=function(t,e,i){this.name=t,this.timelines=e,this.duration=i},u.Animation.prototype={apply:function(t,e,i){i&&0!=this.duration&&(e%=this.duration);for(var r=this.timelines,n=0,a=r.length;a>n;n++)r[n].apply(t,e,1)},mix:function(t,e,i,r){i&&0!=this.duration&&(e%=this.duration);for(var n=this.timelines,a=0,s=n.length;s>a;a++)n[a].apply(t,e,r)}},u.binarySearch=function(t,e,i){var r=0,n=Math.floor(t.length/i)-2;if(0==n)return i;for(var a=n>>>1;;){if(e>=t[(a+1)*i]?r=a+1:n=a,r==n)return(r+1)*i;a=r+n>>>1}},u.linearSearch=function(t,e,i){for(var r=0,n=t.length-i;n>=r;r+=i)if(t[r]>e)return r;return-1},u.Curves=function(t){this.curves=[],this.curves.length=6*(t-1)},u.Curves.prototype={setLinear:function(t){this.curves[6*t]=0},setStepped:function(t){this.curves[6*t]=-1},setCurve:function(t,e,i,r,n){var a=.1,s=a*a,o=s*a,h=3*a,l=3*s,u=6*s,c=6*o,d=2*-e+r,p=2*-i+n,f=3*(e-r)+1,g=3*(i-n)+1,v=6*t,m=this.curves;m[v]=e*h+d*l+f*o,m[v+1]=i*h+p*l+g*o,m[v+2]=d*u+f*c,m[v+3]=p*u+g*c,m[v+4]=f*c,m[v+5]=g*c},getCurvePercent:function(t,e){e=0>e?0:e>1?1:e;var i=6*t,r=this.curves,n=r[i];if(!n)return e;if(-1==n)return 0;for(var a=r[i+1],s=r[i+2],o=r[i+3],h=r[i+4],l=r[i+5],u=n,c=a,d=8;;){if(u>=e){var p=u-n,f=c-a;return f+(c-f)*(e-p)/(u-p)}if(0==d)break;d--,n+=s,a+=o,s+=h,o+=l,u+=n,c+=a}return c+(1-c)*(e-u)/(1-u)}},u.RotateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=2*t},u.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){t*=2,this.frames[t]=e,this.frames[t+1]=i},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-2]){for(var a=n.data.rotation+r[r.length-1]-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;return n.rotation+=a*i,void 0}var s=u.binarySearch(r,e,2),o=r[s-1],h=r[s],l=1-(e-h)/(r[s-2]-h);l=this.curves.getCurvePercent(s/2-1,l);for(var a=r[s+1]-o;a>180;)a-=360;for(;-180>a;)a+=360;for(a=n.data.rotation+(o+a*l)-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;n.rotation+=a*i}}},u.TranslateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.x+=(n.data.x+r[r.length-2]-n.x)*i,n.y+=(n.data.y+r[r.length-1]-n.y)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.x+=(n.data.x+s+(r[a+1]-s)*l-n.x)*i,n.y+=(n.data.y+o+(r[a+2]-o)*l-n.y)*i}}},u.ScaleTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.scaleX+=(n.data.scaleX-1+r[r.length-2]-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+r[r.length-1]-n.scaleY)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.scaleX+=(n.data.scaleX-1+s+(r[a+1]-s)*l-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+o+(r[a+2]-o)*l-n.scaleY)*i}}},u.ColorTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=5*t},u.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e){t*=5,this.frames[t]=e,this.frames[t+1]=r,this.frames[t+2]=g,this.frames[t+3]=b,this.frames[t+4]=a},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.slots[this.slotIndex];if(e>=r[r.length-5]){var a=r.length-1;return n.r=r[a-3],n.g=r[a-2],n.b=r[a-1],n.a=r[a],void 0}var s=u.binarySearch(r,e,5),o=r[s-4],h=r[s-3],l=r[s-2],c=r[s-1],d=r[s],p=1-(e-d)/(r[s-5]-d);p=this.curves.getCurvePercent(s/5-1,p);var f=o+(r[s+1]-o)*p,g=h+(r[s+2]-h)*p,v=l+(r[s+3]-l)*p,m=c+(r[s+4]-c)*p;1>i?(n.r+=(f-n.r)*i,n.g+=(g-n.g)*i,n.b+=(v-n.b)*i,n.a+=(m-n.a)*i):(n.r=f,n.g=g,n.b=v,n.a=m)}}},u.AttachmentTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=t,this.attachmentNames=[],this.attachmentNames.length=t},u.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){this.frames[t]=e,this.attachmentNames[t]=i},apply:function(t,e){var i=this.frames;if(!(i[0]>e)){var r;r=e>=i[i.length-1]?i.length-1:u.binarySearch(i,e,1)-1;var n=this.attachmentNames[r];t.slots[this.slotIndex].setAttachment(n?t.getAttachmentBySlotIndex(this.slotIndex,n):null)}}},u.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},u.SkeletonData.prototype={defaultSkin:null,findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return slot[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSkin:function(t){for(var e=this.skins,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findAnimation:function(t){for(var e=this.animations,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null}},u.Skeleton=function(t){this.data=t,this.bones=[];for(var e=0,i=t.bones.length;i>e;e++){var r=t.bones[e],n=r.parent?this.bones[t.bones.indexOf(r.parent)]:null;this.bones.push(new u.Bone(r,n))}this.slots=[],this.drawOrder=[];for(var e=0,i=t.slots.length;i>e;e++){var a=t.slots[e],s=this.bones[t.bones.indexOf(a.boneData)],o=new u.Slot(a,this,s);this.slots.push(o),this.drawOrder.push(o)}},u.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var t=this.flipX,e=this.flipY,i=this.bones,r=0,n=i.length;n>r;r++)i[r].updateWorldTransform(t,e)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var t=this.bones,e=0,i=t.length;i>e;e++)t[e].setToSetupPose()},setSlotsToSetupPose:function(){for(var t=this.slots,e=0,i=t.length;i>e;e++)t[e].setToSetupPose(e)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},setSkinByName:function(t){var e=this.data.findSkin(t);if(!e)throw"Skin not found: "+t;this.setSkin(e)},setSkin:function(t){this.skin&&t&&t._attachAll(this,this.skin),this.skin=t},getAttachmentBySlotName:function(t,e){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(t),e)},getAttachmentBySlotIndex:function(t,e){if(this.skin){var i=this.skin.getAttachment(t,e);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},setAttachment:function(t,e){for(var i=this.slots,r=0,n=i.size;n>r;r++){var a=i[r];if(a.data.name==t){var s=null;if(e&&(s=this.getAttachment(r,e),null==s))throw"Attachment not found: "+e+", for slot: "+t;return a.setAttachment(s),void 0}}throw"Slot not found: "+t},update:function(t){time+=t}},u.AttachmentType={region:0},u.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},u.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(t,e,i,r,n){var a=this.uvs;n?(a[2]=t,a[3]=r,a[4]=t,a[5]=e,a[6]=i,a[7]=e,a[0]=i,a[1]=r):(a[0]=t,a[1]=r,a[2]=t,a[3]=e,a[4]=i,a[5]=e,a[6]=i,a[7]=r)},updateOffset:function(){var t=this.width/this.regionOriginalWidth*this.scaleX,e=this.height/this.regionOriginalHeight*this.scaleY,i=-this.width/2*this.scaleX+this.regionOffsetX*t,r=-this.height/2*this.scaleY+this.regionOffsetY*e,n=i+this.regionWidth*t,a=r+this.regionHeight*e,s=this.rotation*Math.PI/180,o=Math.cos(s),h=Math.sin(s),l=i*o+this.x,u=i*h,c=r*o+this.y,d=r*h,p=n*o+this.x,f=n*h,g=a*o+this.y,v=a*h,m=this.offset;m[0]=l-d,m[1]=c+u,m[2]=l-v,m[3]=g+u,m[4]=p-v,m[5]=g+f,m[6]=p-d,m[7]=c+f},computeVertices:function(t,e,i,r){t+=i.worldX,e+=i.worldY;var n=i.m00,a=i.m01,s=i.m10,o=i.m11,h=this.offset;r[0]=h[0]*n+h[1]*a+t,r[1]=h[0]*s+h[1]*o+e,r[2]=h[2]*n+h[3]*a+t,r[3]=h[2]*s+h[3]*o+e,r[4]=h[4]*n+h[5]*a+t,r[5]=h[4]*s+h[5]*o+e,r[6]=h[6]*n+h[7]*a+t,r[7]=h[6]*s+h[7]*o+e}},u.AnimationStateData=function(t){this.skeletonData=t,this.animationToMixTime={}},u.AnimationStateData.prototype={setMixByName:function(t,e,i){var r=this.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;var n=this.skeletonData.findAnimation(e);if(!n)throw"Animation not found: "+e;this.setMix(r,n,i)},setMix:function(t,e,i){this.animationToMixTime[t.name+":"+e.name]=i},getMix:function(t,e){var i=this.animationToMixTime[t.name+":"+e.name];return i?i:0}},u.AnimationState=function(t){this.data=t,this.queue=[]},u.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(t){if(this.currentTime+=t,this.previousTime+=t,this.mixTime+=t,this.queue.length>0){var e=this.queue[0];this.currentTime>=e.delay&&(this._setAnimation(e.animation,e.loop),this.queue.shift())}},apply:function(t){if(this.current)if(this.previous){this.previous.apply(t,this.previousTime,this.previousLoop);var e=this.mixTime/this.mixDuration;e>=1&&(e=1,this.previous=null),this.current.mix(t,this.currentTime,this.currentLoop,e)}else this.current.apply(t,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(t,e){this.previous=null,t&&this.current&&(this.mixDuration=this.data.getMix(this.current,t),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=t,this.currentLoop=e,this.currentTime=0},setAnimationByName:function(t,e){var i=this.data.skeletonData.findAnimation(t);if(!i)throw"Animation not found: "+t;this.setAnimation(i,e)},setAnimation:function(t,e){this.queue.length=0,this._setAnimation(t,e)},addAnimationByName:function(t,e,i){var r=this.data.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;this.addAnimation(r,e,i)},addAnimation:function(t,e,i){var r={};if(r.animation=t,r.loop=e,!i||0>=i){var n=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;i=null!=n?n.duration-this.data.getMix(n,t)+(i||0):0}r.delay=i,this.queue.push(r)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},u.SkeletonJson=function(t){this.attachmentLoader=t},u.SkeletonJson.prototype={scale:1,readSkeletonData:function(t){for(var e=new u.SkeletonData,i=t.bones,r=0,n=i.length;n>r;r++){var a=i[r],s=null;if(a.parent&&(s=e.findBone(a.parent),!s))throw"Parent bone not found: "+a.parent;var o=new u.BoneData(a.name,s);o.length=(a.length||0)*this.scale,o.x=(a.x||0)*this.scale,o.y=(a.y||0)*this.scale,o.rotation=a.rotation||0,o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1,e.bones.push(o)}for(var h=t.slots,r=0,n=h.length;n>r;r++){var l=h[r],o=e.findBone(l.bone);if(!o)throw"Slot bone not found: "+l.bone;var c=new u.SlotData(l.name,o),d=l.color;d&&(c.r=u.SkeletonJson.toColor(d,0),c.g=u.SkeletonJson.toColor(d,1),c.b=u.SkeletonJson.toColor(d,2),c.a=u.SkeletonJson.toColor(d,3)),c.attachmentName=l.attachment,e.slots.push(c)}var p=t.skins;for(var f in p)if(p.hasOwnProperty(f)){var g=p[f],v=new u.Skin(f);for(var m in g)if(g.hasOwnProperty(m)){var x=e.findSlotIndex(m),b=g[m];for(var y in b)if(b.hasOwnProperty(y)){var T=this.readAttachment(v,y,b[y]);null!=T&&v.addAttachment(x,y,T)}}e.skins.push(v),"default"==v.name&&(e.defaultSkin=v)}var A=t.animations;for(var w in A)A.hasOwnProperty(w)&&this.readAnimation(w,A[w],e);return e},readAttachment:function(t,e,i){e=i.name||e;var r=u.AttachmentType[i.type||"region"],n=new u.RegionAttachment;return n.name=e,r==u.AttachmentType.region&&(n.x=(i.x||0)*this.scale,n.y=(i.y||0)*this.scale,n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1,n.rotation=i.rotation||0,n.width=(i.width||32)*this.scale,n.height=(i.height||32)*this.scale,n.updateOffset()),n},readAnimation:function(t,e,i){var r=[],n=0,a=e.bones;for(var s in a)if(a.hasOwnProperty(s)){var o=i.findBoneIndex(s);if(-1==o)throw"Bone not found: "+s;var h=a[s];for(var l in h)if(h.hasOwnProperty(l)){var c=h[l];if("rotate"==l){var d=new u.RotateTimeline(c.length);d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p,v.time,v.angle),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[2*d.getFrameCount()-2])}else{if("translate"!=l&&"scale"!=l)throw"Invalid timeline type for a bone: "+l+" ("+s+")";var d,m=1;"scale"==l?d=new u.ScaleTimeline(c.length):(d=new u.TranslateTimeline(c.length),m=this.scale),d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],x=(v.x||0)*m,b=(v.y||0)*m;d.setFrame(p,v.time,x,b),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[3*d.getFrameCount()-3])}}}var y=e.slots;for(var T in y)if(y.hasOwnProperty(T)){var A=y[T],w=i.findSlotIndex(T);for(var l in A)if(A.hasOwnProperty(l)){var c=A[l];if("color"==l){var d=new u.ColorTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],_=v.color,R=u.SkeletonJson.toColor(_,0),S=u.SkeletonJson.toColor(_,1),C=u.SkeletonJson.toColor(_,2),L=u.SkeletonJson.toColor(_,3);d.setFrame(p,v.time,R,S,C,L),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[5*d.getFrameCount()-5])}else{if("attachment"!=l)throw"Invalid timeline type for a slot: "+l+" ("+T+")";var d=new u.AttachmentTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p++,v.time,v.name)}r.push(d),n=Math.max(n,d.frames[Math.floor(d.getFrameCount())-1])}}}i.animations.push(new u.Animation(t,r,n))}},u.SkeletonJson.readCurve=function(t,e,i){var r=i.curve;r&&("stepped"==r?t.curves.setStepped(e):r instanceof Array&&t.curves.setCurve(e,r[0],r[1],r[2],r[3]))},u.SkeletonJson.toColor=function(t,e){if(8!=t.length)throw"Color hexidecimal length must be 8, recieved: "+t;return parseInt(t.substring(2*e,2),16)/255},u.Atlas=function(t,e){this.textureLoader=e,this.pages=[],this.regions=[];var i=new u.AtlasReader(t),r=[];r.length=4;for(var n=null;;){var a=i.readLine();if(null==a)break;if(a=i.trim(a),0==a.length)n=null;else if(n){var s=new u.AtlasRegion;s.name=a,s.page=n,s.rotate="true"==i.readValue(),i.readTuple(r);var o=parseInt(r[0]),h=parseInt(r[1]);i.readTuple(r);var l=parseInt(r[0]),c=parseInt(r[1]);s.u=o/n.width,s.v=h/n.height,s.rotate?(s.u2=(o+c)/n.width,s.v2=(h+l)/n.height):(s.u2=(o+l)/n.width,s.v2=(h+c)/n.height),s.x=o,s.y=h,s.width=Math.abs(l),s.height=Math.abs(c),4==i.readTuple(r)&&(s.splits=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],4==i.readTuple(r)&&(s.pads=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],i.readTuple(r))),s.originalWidth=parseInt(r[0]),s.originalHeight=parseInt(r[1]),i.readTuple(r),s.offsetX=parseInt(r[0]),s.offsetY=parseInt(r[1]),s.index=parseInt(i.readValue()),this.regions.push(s)}else{n=new u.AtlasPage,n.name=a,n.format=u.Atlas.Format[i.readValue()],i.readTuple(r),n.minFilter=u.Atlas.TextureFilter[r[0]],n.magFilter=u.Atlas.TextureFilter[r[1]];var d=i.readValue();n.uWrap=u.Atlas.TextureWrap.clampToEdge,n.vWrap=u.Atlas.TextureWrap.clampToEdge,"x"==d?n.uWrap=u.Atlas.TextureWrap.repeat:"y"==d?n.vWrap=u.Atlas.TextureWrap.repeat:"xy"==d&&(n.uWrap=n.vWrap=u.Atlas.TextureWrap.repeat),e.load(n,a),this.pages.push(n)}}},u.Atlas.prototype={findRegion:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},dispose:function(){for(var t=this.pages,e=0,i=t.length;i>e;e++)this.textureLoader.unload(t[e].rendererObject)},updateUVs:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++){var n=e[i];n.page==t&&(n.u=n.x/t.width,n.v=n.y/t.height,n.rotate?(n.u2=(n.x+n.height)/t.width,n.v2=(n.y+n.width)/t.height):(n.u2=(n.x+n.width)/t.width,n.v2=(n.y+n.height)/t.height))}}},u.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},u.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},u.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},u.AtlasPage=function(){},u.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},u.AtlasRegion=function(){},u.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},u.AtlasReader=function(t){this.lines=t.split(/\r\n|\r|\n/)},u.AtlasReader.prototype={index:0,trim:function(t){return t.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw"Invalid line: "+t;return this.trim(t.substring(e+1))},readTuple:function(t){var e=this.readLine(),i=e.indexOf(":");if(-1==i)throw"Invalid line: "+e;for(var r=0,n=i+1;3>r;r++){var a=e.indexOf(",",n);if(-1==a){if(0==r)throw"Invalid line: "+e;break}t[r]=this.trim(e.substr(n,a-n)),n=a+1}return t[r]=this.trim(e.substring(n)),r+1}},u.AtlasAttachmentLoader=function(t){this.atlas=t},u.AtlasAttachmentLoader.prototype={newAttachment:function(t,e,i){switch(e){case u.AttachmentType.region:var r=this.atlas.findRegion(i);if(!r)throw"Region not found in atlas: "+i+" ("+e+")";var n=new u.RegionAttachment(i);return n.rendererObject=r,n.setUVs(r.u,r.v,r.u2,r.v2,r.rotate),n.regionOffsetX=r.offsetX,n.regionOffsetY=r.offsetY,n.regionWidth=r.width,n.regionHeight=r.height,n.regionOriginalWidth=r.originalWidth,n.regionOriginalHeight=r.originalHeight,n}throw"Unknown attachment type: "+e}},n.AnimCache={},u.Bone.yDown=!0,n.CustomRenderable=function(){n.DisplayObject.call(this)},n.CustomRenderable.constructor=n.CustomRenderable,n.CustomRenderable.prototype=Object.create(n.DisplayObject.prototype),n.CustomRenderable.prototype.renderCanvas=function(){},n.CustomRenderable.prototype.initWebGL=function(){},n.CustomRenderable.prototype.renderWebGL=function(){},n.BaseTextureCache={},n.texturesToUpdate=[],n.texturesToDestroy=[],n.BaseTexture=function(t){if(n.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,n.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);this._powerOf2=!1}},n.BaseTexture.constructor=n.BaseTexture,n.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,n.texturesToDestroy.push(this)},n.BaseTexture.fromImage=function(t,e){var i=n.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new n.BaseTexture(r),n.BaseTextureCache[t]=i}return i},n.TextureCache={},n.FrameCache={},n.Texture=function(t,e){if(n.EventTarget.call(this),e||(this.noFrame=!0,e=new n.Rectangle(0,0,1,1)),this.trim=new n.Point,t instanceof n.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new n.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},n.Texture.constructor=n.Texture,n.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new n.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},n.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},n.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,n.Texture.frameUpdates.push(this)},n.Texture.fromImage=function(t,e){var i=n.TextureCache[t];return i||(i=new n.Texture(n.BaseTexture.fromImage(t,e)),n.TextureCache[t]=i),i},n.Texture.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},n.Texture.fromCanvas=function(t){var e=new n.BaseTexture(t);return new n.Texture(e)},n.Texture.addTextureToCache=function(t,e){n.TextureCache[e]=t},n.Texture.removeTextureFromCache=function(t){var e=n.TextureCache[t];return n.TextureCache[t]=null,e},n.Texture.frameUpdates=[],n.RenderTexture=function(t,e){n.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=n.mat3.create(),this.frame=new n.Rectangle(0,0,this.width,this.height),n.gl?this.initWebGL():this.initCanvas()},n.RenderTexture.constructor=n.RenderTexture,n.RenderTexture.prototype=Object.create(n.Texture.prototype),n.RenderTexture.prototype.initWebGL=function(){var t=n.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new n.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new n.Point(this.width/2,this.height/2),this.projectionMatrix=n.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},n.RenderTexture.prototype.initCanvas=function(){this.renderer=new n.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new n.BaseTexture(this.renderer.view),this.frame=new n.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},n.RenderTexture.prototype.renderWebGL=function(t,e){var i=n.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=n.mat3.create(),t.worldTransform[4]=-1,t.worldTransform[5]=2*this.projection.y;for(var a=0,s=r.length;s>a;a++)r[a].updateTransform();var o=t.__renderGroup;o?t==o.root?o.render(this.projection):o.renderSpecific(t,this.projection):(this.renderGroup||(this.renderGroup=new n.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projection))},n.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=n.mat3.create();for(var r=0,a=i.length;a>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),n.texturesToUpdate.push(this.baseTexture)},n.AssetLoader=function(t){n.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:n.ImageLoader,jpeg:n.ImageLoader,png:n.ImageLoader,gif:n.ImageLoader,json:n.JsonLoader,anim:n.SpineLoader,xml:n.BitmapFontLoader,fnt:n.BitmapFontLoader}},n.AssetLoader.constructor=n.AssetLoader,n.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),n=this.loadersByType[r];if(!n)throw Error(r+" is an unsupported file type");var a=new n(i,this.crossorigin);a.addEventListener("loaded",function(){t.onAssetLoaded()}),a.load()}},n.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},n.JsonLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.crossorigin=e,this.loaded=!1},n.JsonLoader.constructor=n.JsonLoader,n.JsonLoader.prototype.load=function(){this.ajaxRequest=new l;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},n.JsonLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState)if(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))if(this.json=JSON.parse(this.ajaxRequest.responseText),this.json.frames){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0))}i.load()}else if(this.json.bones){var o=new u.SkeletonJson,h=o.readSkeletonData(this.json);n.AnimCache[this.url]=h,this.onLoaded()}else this.onLoaded();else this.onError()},n.JsonLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},n.JsonLoader.prototype.onError=function(){this.dispatchEvent({type:"error",content:this})},n.SpriteSheetLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},n.SpriteSheetLoader.constructor=n.SpriteSheetLoader,n.SpriteSheetLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpriteSheetLoader.prototype.onJSONLoaded=function(){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0)) }i.load()},n.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.ImageLoader=function(t,e){n.EventTarget.call(this),this.texture=n.Texture.fromImage(t,e)},n.ImageLoader.constructor=n.ImageLoader,n.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},n.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.BitmapFontLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},n.BitmapFontLoader.constructor=n.BitmapFontLoader,n.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},n.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new n.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],a=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(a.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var s=this.ajaxRequest.responseXML.getElementsByTagName("char"),o=0;s.length>o;o++){var h=parseInt(s[o].attributes.getNamedItem("id").nodeValue,10),l={x:parseInt(s[o].attributes.getNamedItem("x").nodeValue,10),y:parseInt(s[o].attributes.getNamedItem("y").nodeValue,10),width:parseInt(s[o].attributes.getNamedItem("width").nodeValue,10),height:parseInt(s[o].attributes.getNamedItem("height").nodeValue,10)};n.TextureCache[h]=new n.Texture(this.texture,l),i.chars[h]={xOffset:parseInt(s[o].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(s[o].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(s[o].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{},texture:new n.Texture(this.texture,l)}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(o=0;u.length>o;o++){var c=parseInt(u[o].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[o].attributes.getNamedItem("second").nodeValue,10),p=parseInt(u[o].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=p}n.BitmapText.fonts[i.font]=i;var f=this;e.addEventListener("loaded",function(){f.onLoaded()}),e.load()}},n.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.SpineLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.crossorigin=e,this.loaded=!1},n.SpineLoader.constructor=n.SpineLoader,n.SpineLoader.prototype.load=function(){new n.JsonLoader(this.url,this.crossorigin),jsonLoader.addEventListener("loaded",function(t){scope.json=t.content.json,scope.onJSONLoaded()}),jsonLoader.load()},n.SpineLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpineLoader.prototype.onJSONLoaded=function(){var t=new u.SkeletonJson,e=t.readSkeletonData(this.json);n.AnimCache[this.url]=e,this.onLoaded()},n.SpineLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports.PIXI=n):i.PIXI=n}).call(this); \ No newline at end of file diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index 25cca17..0391561 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index 25cca17..0391561 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 12 - Spine/pixi.js b/examples/example 12 - Spine/pixi.js index 25cca17..0391561 100644 --- a/examples/example 12 - Spine/pixi.js +++ b/examples/example 12 - Spine/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 13 - Graphics/index.html b/examples/example 13 - Graphics/index.html index e6996b7..d847ef2 100644 --- a/examples/example 13 - Graphics/index.html +++ b/examples/example 13 - Graphics/index.html @@ -80,17 +80,40 @@ stage.addChild(graphics); + // lets create moving shape + var thing = new PIXI.Graphics(); + stage.addChild(thing); + thing.position.x = 620/2; + thing.position.y = 380/2; + + var count = 0; + stage.click = stage.tap = function() { graphics.lineStyle(Math.random() * 30, Math.random() * 0xFFFFFF, 1); graphics.moveTo(Math.random() * 620,Math.random() * 380); graphics.lineTo(Math.random() * 620,Math.random() * 380); - } requestAnimFrame(animate); function animate() { + + thing.clear(); + + count += 0.1; + + thing.clear(); + thing.lineStyle(30, 0xff0000, 1); + thing.beginFill(0xffFF00, 0.5); + + thing.moveTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + thing.lineTo(120 + Math.cos(count) * 20, -100 + Math.sin(count)* 20); + thing.lineTo(120 + Math.sin(count) * 20, 100 + Math.cos(count)* 20); + thing.lineTo(-120 + Math.cos(count)* 20, 100 + Math.sin(count)* 20); + thing.lineTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + + thing.rotation = count * 0.1; renderer.render(stage); requestAnimFrame( animate ); } diff --git a/examples/example 13 - Graphics/pixi.js b/examples/example 13 - Graphics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 13 - Graphics/pixi.js +++ b/examples/example 13 - Graphics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index 25cca17..0391561 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index 25cca17..0391561 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 4 - Balls/pixi.js b/examples/example 4 - Balls/pixi.js index 25cca17..0391561 100644 --- a/examples/example 4 - Balls/pixi.js +++ b/examples/example 4 - Balls/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 5 - Morph/pixi.js b/examples/example 5 - Morph/pixi.js index 25cca17..0391561 100644 --- a/examples/example 5 - Morph/pixi.js +++ b/examples/example 5 - Morph/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 6 - Interactivity/pixi.js b/examples/example 6 - Interactivity/pixi.js index 25cca17..0391561 100644 --- a/examples/example 6 - Interactivity/pixi.js +++ b/examples/example 6 - Interactivity/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 7 - Transparent Background/pixi.js b/examples/example 7 - Transparent Background/pixi.js index 25cca17..0391561 100644 --- a/examples/example 7 - Transparent Background/pixi.js +++ b/examples/example 7 - Transparent Background/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 8 - Dragging/pixi.js b/examples/example 8 - Dragging/pixi.js index 25cca17..0391561 100644 --- a/examples/example 8 - Dragging/pixi.js +++ b/examples/example 8 - Dragging/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 9 - Tiling Texture/pixi.js b/examples/example 9 - Tiling Texture/pixi.js index 25cca17..0391561 100644 --- a/examples/example 9 - Tiling Texture/pixi.js +++ b/examples/example 9 - Tiling Texture/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 25cca17..0391561 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/bin/pixi.js b/bin/pixi.js index 51d6836..96307b0 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -9,7 +9,7 @@ * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; +(function(){function t(){return n.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,n.Matrix}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function e(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}var i=this,n=n||{};n.Point=function(t,e){this.x=t||0,this.y=e||0},n.Point.prototype.clone=function(){return new n.Point(this.x,this.y)},n.Point.constructor=n.Point,n.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},n.Rectangle.prototype.clone=function(){return new n.Rectangle(this.x,this.y,this.width,this.height)},n.Rectangle.constructor=n.Rectangle,n.Polygon=function(t){this.points=t},n.Polygon.clone=function(){for(var t=[],e=0;this.points.length>e;e++)t.push(this.points[e].clone());return new n.Polygon(t)},n.Polygon.constructor=n.Polygon,t(),n.mat3={},n.mat3.create=function(){var t=new n.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},n.mat4={},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=e[0],p=e[1],f=e[2],g=e[3],v=e[4],m=e[5],x=e[6],b=e[7],y=e[8];return i[0]=d*r+p*s+f*l,i[1]=d*n+p*o+f*u,i[2]=d*a+p*h+f*c,i[3]=g*r+v*s+m*l,i[4]=g*n+v*o+m*u,i[5]=g*a+v*h+m*c,i[6]=x*r+b*s+y*l,i[7]=x*n+b*o+y*u,i[8]=x*a+b*h+y*c,i},n.mat3.clone=function(t){var e=new n.Matrix(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},n.mat3.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=i,t[5]=t[7],t[6]=r,t[7]=n,t}return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],e},n.mat3.toMat4=function(t,e){return e||(e=n.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},n.mat4.create=function(){var t=new n.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},n.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],n=t[3],a=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=a,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},n.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],n=t[1],a=t[2],s=t[3],o=t[4],h=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],f=t[11],g=t[12],v=t[13],m=t[14],x=t[15],b=e[0],y=e[1],T=e[2],A=e[3];return i[0]=b*r+y*o+T*c+A*g,i[1]=b*n+y*h+T*d+A*v,i[2]=b*a+y*l+T*p+A*m,i[3]=b*s+y*u+T*f+A*x,b=e[4],y=e[5],T=e[6],A=e[7],i[4]=b*r+y*o+T*c+A*g,i[5]=b*n+y*h+T*d+A*v,i[6]=b*a+y*l+T*p+A*m,i[7]=b*s+y*u+T*f+A*x,b=e[8],y=e[9],T=e[10],A=e[11],i[8]=b*r+y*o+T*c+A*g,i[9]=b*n+y*h+T*d+A*v,i[10]=b*a+y*l+T*p+A*m,i[11]=b*s+y*u+T*f+A*x,b=e[12],y=e[13],T=e[14],A=e[15],i[12]=b*r+y*o+T*c+A*g,i[13]=b*n+y*h+T*d+A*v,i[14]=b*a+y*l+T*p+A*m,i[15]=b*s+y*u+T*f+A*x,i},n.DisplayObject=function(){this.position=new n.Point,this.scale=new n.Point(1,1),this.pivot=new n.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=n.mat3.create(),this.localTransform=n.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},n.DisplayObject.constructor=n.DisplayObject,n.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},n.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,n=this.pivot.y;t[2]=this.position.x-t[0]*r-n*t[1],t[5]=this.position.y-t[4]*n-r*t[3];var a=t[0],s=t[1],o=t[2],h=t[3],l=t[4],u=t[5],c=e[0],d=e[1],p=e[2],f=e[3],g=e[4],v=e[5];i[0]=c*a+d*h,i[1]=c*s+d*l,i[2]=c*o+d*u+p,i[3]=f*a+g*h,i[4]=f*s+g*l,i[5]=f*o+g*u+v,this.worldAlpha=this.alpha*this.parent.worldAlpha},n.DisplayObjectContainer=function(){n.DisplayObject.call(this),this.children=[],this.renderable=!1},n.DisplayObjectContainer.constructor=n.DisplayObjectContainer,n.DisplayObjectContainer.prototype=Object.create(n.DisplayObject.prototype),n.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},n.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},n.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},n.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},n.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){n.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},n.blendModes={},n.blendModes.NORMAL=0,n.blendModes.SCREEN=1,n.Sprite=function(t){n.DisplayObjectContainer.call(this),this.anchor=new n.Point,this.texture=t,this.blendMode=n.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Sprite.constructor=n.Sprite,n.Sprite.prototype=Object.create(n.DisplayObjectContainer.prototype),Object.defineProperty(n.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(n.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),n.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},n.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},n.Sprite.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new n.Sprite(e)},n.Sprite.fromImage=function(t){var e=n.Texture.fromImage(t);return new n.Sprite(e)},n.MovieClip=function(t){n.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},n.MovieClip.constructor=n.MovieClip,n.MovieClip.prototype=Object.create(n.Sprite.prototype),n.MovieClip.prototype.stop=function(){this.playing=!1},n.MovieClip.prototype.play=function(){this.playing=!0},n.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},n.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},n.MovieClip.prototype.updateTransform=function(){if(n.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},n.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),n.Sprite.call(this,n.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.Text.constructor=n.Text,n.Text.prototype=Object.create(n.Sprite.prototype),n.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.stroke=t.stroke||"black",t.strokeThickness=t.strokeThickness||0,t.wordWrap=t.wordWrap||!1,t.wordWrapWidth=t.wordWrapWidth||100,this.style=t,this.dirty=!0},n.Sprite.prototype.setText=function(t){this.text=""+t||" ",this.dirty=!0},n.Text.prototype.updateText=function(){this.context.font=this.style.font;var t=this.text;this.style.wordWrap&&(t=this.wordWrap(this.text));for(var e=t.split(/(?:\r\n|\r|\n)/),i=[],r=0,a=0;e.length>a;a++){var s=this.context.measureText(e[a]).width;i[a]=s,r=Math.max(r,s)}this.canvas.width=r+this.style.strokeThickness;var o=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=o*e.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",a=0;e.length>a;a++){var h=new n.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+a*o);"right"==this.style.align?h.x+=r-i[a]:"center"==this.style.align&&(h.x+=(r-i[a])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(e[a],h.x,h.y),this.style.fill&&this.context.fillText(e[a],h.x,h.y)}this.updateTexture()},n.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,n.texturesToUpdate.push(this.texture.baseTexture)},n.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),n.Sprite.prototype.updateTransform.call(this)},n.Text.prototype.determineFontHeight=function(t){var e=n.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),a=document.createTextNode("M");r.appendChild(a),r.setAttribute("style",t+";position:absolute;top:0;left:0"),i.appendChild(r),e=r.offsetHeight,n.Text.heightCache[t]=e,i.removeChild(r)}return e},n.Text.prototype.wordWrap=function(t){for(var e=function(t,e,i,r,n){var a=Math.floor((r-i)/2)+i;return a==i?1:n>=t.measureText(e.substring(0,a)).width?t.measureText(e.substring(0,a+1)).width>n?a:arguments.callee(t,e,a,r,n):arguments.callee(t,e,i,a,n)},i=function(t,i,r){if(r>=t.measureText(i).width||1>i.length)return i;var n=e(t,i,0,i.length,r);return i.substring(0,n)+"\n"+arguments.callee(t,i.substring(n),r)},r="",n=t.split("\n"),a=0;n.length>a;a++)r+=i(this.context,n[a],this.style.wordWrapWidth)+"\n";return r},n.Text.prototype.destroy=function(t){t&&this.texture.destroy()},n.Text.heightCache={},n.BitmapText=function(t,e){n.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},n.BitmapText.constructor=n.BitmapText,n.BitmapText.prototype=Object.create(n.DisplayObjectContainer.prototype),n.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},n.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):n.BitmapText.fonts[this.fontName].size,this.dirty=!0},n.BitmapText.prototype.updateText=function(){for(var t=n.BitmapText.fonts[this.fontName],e=new n.Point,i=null,r=[],a=0,s=[],o=0,h=this.fontSize/t.size,l=0;this.text.length>l;l++){var u=this.text.charCodeAt(l);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(l)))s.push(e.x),a=Math.max(a,e.x),o++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({texture:c.texture,line:o,charCode:u,position:new n.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}s.push(e.x),a=Math.max(a,e.x);var d=[];for(l=0;o>=l;l++){var p=0;"right"==this.style.align?p=a-s[l]:"center"==this.style.align&&(p=(a-s[l])/2),d.push(p)}for(l=0;r.length>l;l++){var f=new n.Sprite(r[l].texture);f.position.x=(r[l].position.x+d[r[l].line])*h,f.position.y=r[l].position.y*h,f.scale.x=f.scale.y=h,this.addChild(f)}this.width=e.x*h,this.height=(e.y+t.lineHeight)*h},n.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}n.DisplayObjectContainer.prototype.updateTransform.call(this)},n.BitmapText.fonts={},n.InteractionManager=function(t){this.stage=t,this.tempPoint=new n.Point,this.mouseoverEnabled=!0,this.mouse=new n.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},n.InteractionManager.constructor=n.InteractionManager,n.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,n=r-1;n>=0;n--){var a=i[n];a.visible&&(a.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(a),a.children.length>0&&this.collectInteractiveSprite(a,a)):(a.__iParent=null,a.children.length>0&&this.collectInteractiveSprite(a,e)))}},n.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},n.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1;for(var i=this.interactiveItems.length,r=0;i>r;r++)this.interactiveItems[r].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var n=this.interactiveItems.length;this.target.view.style.cursor="default";for(var r=0;n>r;r++){var a=this.interactiveItems[r];a.visible&&(a.mouseover||a.mouseout||a.buttonMode)&&(a.__hit=this.hitTest(a,this.mouse),a.__hit?(a.buttonMode&&(this.target.view.style.cursor="pointer"),a.__isOver||(a.mouseover&&a.mouseover(this.mouse),a.__isOver=!0)):a.__isOver&&(a.mouseout&&a.mouseout(this.mouse),a.__isOver=!1))}}}},n.InteractionManager.prototype.onMouseMove=function(t){var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var n=this.interactiveItems[r];n.mousemove&&n.mousemove(this.mouse)}},n.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},n.InteractionManager.prototype.onMouseUp=function(){this.mouse.global;for(var t=this.interactiveItems.length,e=!1,i=0;t>i;i++){var r=this.interactiveItems[i];(r.mouseup||r.mouseupoutside||r.click)&&(r.__hit=this.hitTest(r,this.mouse),r.__hit&&!e?(r.mouseup&&r.mouseup(this.mouse),r.__isDown&&r.click&&r.click(this.mouse),r.interactiveChildren||(e=!0)):r.__isDown&&r.mouseupoutside&&r.mouseupoutside(this.mouse),r.__isDown=!1)}},n.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;var r=t instanceof n.Sprite,a=t.worldTransform,s=a[0],o=a[1],h=a[2],l=a[3],u=a[4],c=a[5],d=1/(s*u+o*-l),p=u*d*i.x+-o*d*i.y+(c*o-h*u)*d,f=s*d*i.y+-l*d*i.x+(-c*s+h*l)*d;if(t.hitArea){var g=t.hitArea;if(t.hitArea instanceof n.Polygon){for(var v=!1,m=0,x=t.hitArea.points.length-1;t.hitArea.points.length>m;x=m++){var b=t.hitArea.points[m].x,y=t.hitArea.points[m].y,T=t.hitArea.points[x].x,A=t.hitArea.points[x].y,w=y>f!=A>f&&(T-b)*(f-y)/(A-y)+b>p;w&&(v=!v)}if(v)return r&&(e.target=t),!0}else{var _=g.x;if(p>_&&_+g.width>p){var R=g.y;if(f>R&&R+g.height>f)return r&&(e.target=t),!0}}}else if(r){var R,S=t.texture.frame.width,C=t.texture.frame.height,_=-S*t.anchor.x;if(p>_&&_+S>p&&(R=-C*t.anchor.y,f>R&&R+C>f))return e.target=t,!0}for(var L=t.children.length,m=0;L>m;m++){var E=t.children[m],B=this.hitTest(E,e);if(B)return!0}return!1},n.InteractionManager.prototype.onTouchMove=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier];a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height)}for(var s=this.interactiveItems.length,r=0;s>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(a)}},n.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var a=i[r],s=this.pool.pop();s||(s=new n.InteractionData),this.touchs[a.identifier]=s,s.global.x=(a.clientX-e.left)*(this.target.width/e.width),s.global.y=(a.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h];if((l.touchstart||l.tap)&&(l.__hit=this.hitTest(l,s),l.__hit&&(l.touchstart&&l.touchstart(s),l.__isDown=!0,l.__touchData=s,!l.interactiveChildren)))break}}},n.InteractionManager.prototype.onTouchEnd=function(t){for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var n=i[r],a=this.touchs[n.identifier],s=!1;a.global.x=(n.clientX-e.left)*(this.target.width/e.width),a.global.y=(n.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var l=this.interactiveItems[h],u=l.__touchData;l.__hit=this.hitTest(l,a),u==a&&((l.touchend||l.tap)&&(l.__hit&&!s?(l.touchend&&l.touchend(a),l.__isDown&&l.tap&&l.tap(a),l.interactiveChildren||(s=!0)):l.__isDown&&l.touchendoutside&&l.touchendoutside(a),l.__isDown=!1),l.__touchData=null)}this.pool.push(a),this.touchs[n.identifier]=null}},n.InteractionData=function(){this.global=new n.Point,this.local=new n.Point,this.target},n.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],a=e[1],s=e[2],o=e[3],h=e[4],l=e[5],u=1/(r*h+a*-o);return new n.Point(h*u*i.x+-a*u*i.y+(l*a-s*h)*u,r*u*i.y+-o*u*i.x+(-l*r+s*o)*u)},n.InteractionData.constructor=n.InteractionData,n.Stage=function(t,e){n.DisplayObjectContainer.call(this),this.worldTransform=n.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new n.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new n.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0,this.stage.dirty=!0},n.Stage.constructor=n.Stage,n.Stage.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},n.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=e(this.backgroundColor);var i=this.backgroundColor.toString(16);i="000000".substr(0,6-i.length)+i,this.backgroundColorString="#"+i},n.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},n.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},n.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])};for(var s=0,o=["ms","moz","webkit","o"],h=0;o.length>h&&!window.requestAnimationFrame;++h)window.requestAnimationFrame=window[o[h]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[o[h]+"CancelAnimationFrame"]||window[o[h]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var e=(new Date).getTime(),i=Math.max(0,16-(e-s)),r=window.setTimeout(function(){t(e+i)},i);return s=e+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)}),window.requestAnimFrame=window.requestAnimationFrame,"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var a=n.concat(t.call(arguments));r.apply(this instanceof i?this:e,a)}var r=this,n=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function a(t){return t&&(a.prototype=t),this instanceof a?void 0:new a}(r.prototype),i}}());var l=n.AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};n.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},n.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var a=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return a?new n.WebGLRenderer(t,e,i,r):new n.CanvasRenderer(t,e,i,r)},n.PolyK={},n.PolyK.Triangulate=function(t){var e=!0,i=t.length>>1;if(3>i)return[];for(var r=[],a=[],s=0;i>s;s++)a.push(s);for(var s=0,o=i;o>3;){var h=a[(s+0)%o],l=a[(s+1)%o],u=a[(s+2)%o],c=t[2*h],d=t[2*h+1],p=t[2*l],f=t[2*l+1],g=t[2*u],v=t[2*u+1],m=!1;if(n.PolyK._convex(c,d,p,f,g,v,e)){m=!0;for(var x=0;o>x;x++){var b=a[x];if(b!=h&&b!=l&&b!=u&&n.PolyK._PointInTriangle(t[2*b],t[2*b+1],c,d,p,f,g,v)){m=!1;break}}}if(m)r.push(h,l,u),a.splice((s+1)%o,1),o--,s=0;else if(s++>3*o){if(!e)return console.log("PIXI Warning: shape too complex to fill"),[];var r=[];a=[];for(var s=0;i>s;s++)a.push(s);s=0,o=i,e=!1}}return r.push(a[0],a[1],a[2]),r},n.PolyK._PointInTriangle=function(t,e,i,r,n,a,s,o){var h=s-i,l=o-r,u=n-i,c=a-r,d=t-i,p=e-r,f=h*h+l*l,g=h*u+l*c,v=h*d+l*p,m=u*u+c*c,x=u*d+c*p,b=1/(f*m-g*g),y=(m*v-g*x)*b,T=(f*x-g*v)*b;return y>=0&&T>=0&&1>y+T},n.PolyK._convex=function(t,e,i,r,n,a,s){return(e-r)*(n-i)+(i-t)*(a-r)>=0==s},n.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],n.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],n.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],n.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],n.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],n.initPrimitiveShader=function(){var t=n.gl,e=n.compileProgram(n.primitiveShaderVertexSrc,n.primitiveShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),n.primitiveProgram=e},n.initDefaultShader=function(){var t=this.gl,e=n.compileProgram(n.shaderVertexSrc,n.shaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.mvMatrixUniform=t.getUniformLocation(e,"uMVMatrix"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.shaderProgram=e},n.initDefaultStripShader=function(){var t=this.gl,e=n.compileProgram(n.stripShaderVertexSrc,n.stripShaderFragmentSrc);t.useProgram(e),e.vertexPositionAttribute=t.getAttribLocation(e,"aVertexPosition"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.textureCoordAttribute=t.getAttribLocation(e,"aTextureCoord"),e.translationMatrix=t.getUniformLocation(e,"translationMatrix"),e.alpha=t.getUniformLocation(e,"alpha"),e.colorAttribute=t.getAttribLocation(e,"aColor"),e.projectionVector=t.getUniformLocation(e,"projectionVector"),e.samplerUniform=t.getUniformLocation(e,"uSampler"),n.stripShaderProgram=e},n.CompileVertexShader=function(t,e){return n._CompileShader(t,e,t.VERTEX_SHADER)},n.CompileFragmentShader=function(t,e){return n._CompileShader(t,e,t.FRAGMENT_SHADER)},n._CompileShader=function(t,e,i){var r=e.join("\n"),n=t.createShader(i);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)},n.activateDefaultShader=function(){var t=n.gl,e=n.shaderProgram;t.useProgram(e),t.enableVertexAttribArray(e.vertexPositionAttribute),t.enableVertexAttribArray(e.textureCoordAttribute),t.enableVertexAttribArray(e.colorAttribute)},n.compileProgram=function(t,e){var i=n.gl,r=n.CompileFragmentShader(i,e),a=n.CompileVertexShader(i,t),s=i.createProgram();return i.attachShader(s,a),i.attachShader(s,r),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||alert("Could not initialise shaders"),s},n.activatePrimitiveShader=function(){var t=n.gl;t.disableVertexAttribArray(n.shaderProgram.textureCoordAttribute),t.disableVertexAttribArray(n.shaderProgram.colorAttribute),t.useProgram(n.primitiveProgram),t.enableVertexAttribArray(n.primitiveProgram.vertexPositionAttribute),t.enableVertexAttribArray(n.primitiveProgram.colorAttribute)},n.WebGLGraphics=function(){},n.WebGLGraphics.renderGraphics=function(t,e){n.activatePrimitiveShader();var i=n.gl;t._webGL||(t._webGL={points:[],indices:[],lastIndex:0,buffer:i.createBuffer(),indexBuffer:i.createBuffer()}),t.dirty&&(t.dirty=!1,t.clearDirty&&(t.clearDirty=!1,t._webGL.lastIndex=0,t._webGL.points=[],t._webGL.indices=[]),n.WebGLGraphics.updateGraphics(t));var r=n.mat3.clone(t.worldTransform);n.mat3.transpose(r),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),i.uniformMatrix3fv(n.primitiveProgram.translationMatrix,!1,r),i.uniform2f(n.primitiveProgram.projectionVector,e.x,e.y),i.uniform1f(n.primitiveProgram.alpha,t.worldAlpha),i.bindBuffer(i.ARRAY_BUFFER,t._webGL.buffer),i.vertexAttribPointer(n.primitiveProgram.vertexPositionAttribute,2,i.FLOAT,!1,24,0),i.vertexAttribPointer(n.primitiveProgram.colorAttribute,4,i.FLOAT,!1,24,8),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),i.drawElements(i.TRIANGLE_STRIP,t._webGL.indices.length,i.UNSIGNED_SHORT,0),n.activateDefaultShader()},n.WebGLGraphics.updateGraphics=function(t){for(var e=t._webGL.lastIndex;t.graphicsData.length>e;e++){var i=t.graphicsData[e];i.type==n.Graphics.POLY?(i.fill&&i.points.length>3&&n.WebGLGraphics.buildPoly(i,t._webGL),i.lineWidth>0&&n.WebGLGraphics.buildLine(i,t._webGL)):i.type==n.Graphics.RECT?n.WebGLGraphics.buildRectangle(i,t._webGL):(i.type==n.Graphics.CIRC||i.type==n.Graphics.ELIP)&&n.WebGLGraphics.buildCircle(i,t._webGL)}t._webGL.lastIndex=t.graphicsData.length;var r=n.gl;t._webGL.glPoints=new Float32Array(t._webGL.points),r.bindBuffer(r.ARRAY_BUFFER,t._webGL.buffer),r.bufferData(r.ARRAY_BUFFER,t._webGL.glPoints,r.STATIC_DRAW),t._webGL.glIndicies=new Uint16Array(t._webGL.indices),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t._webGL.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t._webGL.glIndicies,r.STATIC_DRAW)},n.WebGLGraphics.buildRectangle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3];if(t.fill){var l=e(t.fillColor),u=t.fillAlpha,c=l[0]*u,d=l[1]*u,p=l[2]*u,f=i.points,g=i.indices,v=f.length/6;f.push(a,s),f.push(c,d,p,u),f.push(a+o,s),f.push(c,d,p,u),f.push(a,s+h),f.push(c,d,p,u),f.push(a+o,s+h),f.push(c,d,p,u),g.push(v,v,v+1,v+2,v+3,v+3)}t.lineWidth&&(t.points=[a,s,a+o,s,a+o,s+h,a,s+h,a,s],n.WebGLGraphics.buildLine(t,i))},n.WebGLGraphics.buildCircle=function(t,i){var r=t.points,a=r[0],s=r[1],o=r[2],h=r[3],l=40,u=2*Math.PI/l;if(t.fill){var c=e(t.fillColor),d=t.fillAlpha,p=c[0]*d,f=c[1]*d,g=c[2]*d,v=i.points,m=i.indices,x=v.length/6;m.push(x);for(var b=0;l+1>b;b++)v.push(a,s,p,f,g,d),v.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h,p,f,g,d),m.push(x++,x++);m.push(x-1)}if(t.lineWidth){t.points=[];for(var b=0;l+1>b;b++)t.points.push(a+Math.sin(u*b)*o,s+Math.cos(u*b)*h);n.WebGLGraphics.buildLine(t,i)}},n.WebGLGraphics.buildLine=function(t,i){var r=t.points; if(0!=r.length){var a=new n.Point(r[0],r[1]),s=new n.Point(r[r.length-2],r[r.length-1]);if(a.x==s.x&&a.y==s.y){r.pop(),r.pop(),s=new n.Point(r[r.length-2],r[r.length-1]);var o=s.x+.5*(a.x-s.x),h=s.y+.5*(a.y-s.y);r.unshift(o,h),r.push(o,h)}var l,u,c,d,p,f,g,v,m,x,b,y,T,A,w,_,R,S,C,L,E,B=i.points,F=i.indices,P=r.length/2,G=r.length,I=B.length/6,D=t.lineWidth/2,M=e(t.lineColor),O=t.lineAlpha,W=M[0]*O,U=M[1]*O,j=M[2]*O;l=r[0],u=r[1],c=r[2],d=r[3],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(l-g,u-v,W,U,j,O),B.push(l+g,u+v,W,U,j,O);for(var k=1;P-1>k;k++)l=r[2*(k-1)],u=r[2*(k-1)+1],c=r[2*k],d=r[2*k+1],p=r[2*(k+1)],f=r[2*(k+1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,m=-(d-f),x=c-p,E=Math.sqrt(m*m+x*x),m/=E,x/=E,m*=D,x*=D,T=-v+u-(-v+d),A=-g+c-(-g+l),w=(-g+l)*(-v+d)-(-g+c)*(-v+u),_=-x+f-(-x+d),R=-m+c-(-m+p),S=(-m+p)*(-x+d)-(-m+c)*(-x+f),C=T*R-_*A,0==C&&(C+=1),px=(A*S-R*w)/C,py=(_*w-T*S)/C,L=(px-c)*(px-c)+(py-d)+(py-d),L>19600?(b=g-m,y=v-x,E=Math.sqrt(b*b+y*y),b/=E,y/=E,b*=D,y*=D,B.push(c-b,d-y),B.push(W,U,j,O),B.push(c+b,d+y),B.push(W,U,j,O),B.push(c-b,d-y),B.push(W,U,j,O),G++):(B.push(px,py),B.push(W,U,j,O),B.push(c-(px-c),d-(py-d)),B.push(W,U,j,O));l=r[2*(P-2)],u=r[2*(P-2)+1],c=r[2*(P-1)],d=r[2*(P-1)+1],g=-(u-d),v=l-c,E=Math.sqrt(g*g+v*v),g/=E,v/=E,g*=D,v*=D,B.push(c-g,d-v),B.push(W,U,j,O),B.push(c+g,d+v),B.push(W,U,j,O),F.push(I);for(var k=0;G>k;k++)F.push(I++);F.push(I-1)}},n.WebGLGraphics.buildPoly=function(t,i){var r=t.points;if(!(6>r.length)){for(var a=i.points,s=i.indices,o=r.length/2,h=e(t.fillColor),l=t.fillAlpha,u=h[0]*l,c=h[1]*l,d=h[2]*l,p=n.PolyK.Triangulate(r),f=a.length/6,g=0;p.length>g;g+=3)s.push(p[g]+f),s.push(p[g]+f),s.push(p[g+1]+f),s.push(p[g+2]+f),s.push(p[g+2]+f);for(var g=0;o>g;g++)a.push(r[2*g],r[2*g+1],u,c,d,l)}},n._defaultFrame=new n.Rectangle(0,0,1,1),n.gl,n.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var a=this;this.view.addEventListener("webglcontextlost",function(t){a.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){a.handleContextRestored(t)},!1),this.batchs=[];try{n.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!0,premultipliedAlpha:!1})}catch(s){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}n.initPrimitiveShader(),n.initDefaultShader(),n.initDefaultStripShader(),n.activateDefaultShader();var o=this.gl;n.WebGLRenderer.gl=o,this.batch=new n.WebGLBatch(o),o.disable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.enable(o.BLEND),o.colorMask(!0,!0,!0,this.transparent),n.projection=new n.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new n.WebGLRenderGroup(this.gl)},n.WebGLRenderer.constructor=n.WebGLRenderer,n.WebGLRenderer.getBatch=function(){return 0==n._batchs.length?new n.WebGLBatch(n.WebGLRenderer.gl):n._batchs.pop()},n.WebGLRenderer.returnBatch=function(t){t.clean(),n._batchs.push(t)},n.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),n.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],!this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(n.projection),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0){for(var i=0;n.Texture.frameUpdates.length>i;i++)n.Texture.frameUpdates[i].updateFrame=!1;n.Texture.frameUpdates=[]}}},n.WebGLRenderer.updateTextures=function(){for(var t=0;n.texturesToUpdate.length>t;t++)this.updateTexture(n.texturesToUpdate[t]);for(var t=0;n.texturesToDestroy.length>t;t++)this.destroyTexture(n.texturesToDestroy[t]);n.texturesToUpdate=[],n.texturesToDestroy=[]},n.WebGLRenderer.updateTexture=function(t){var e=n.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},n.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},n.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height),n.projection.x=this.width/2,n.projection.y=this.height/2},n.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},n.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;n.TextureCache.length>t;t++)this.updateTexture(n.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;n._restoreBatchs(this.gl),this.contextLost=!1},n._batchs=[],n._getBatch=function(t){return 0==n._batchs.length?new n.WebGLBatch(t):n._batchs.pop()},n._returnBatch=function(t){t.clean(),n._batchs.push(t)},n._restoreBatchs=function(t){for(var e=0;n._batchs.length>e;e++)n._batchs[e].restoreLostContext(t)},n.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=n.blendModes.NORMAL,this.dynamicSize=1},n.WebGLBatch.constructor=n.WebGLBatch,n.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},n.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},n.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},n.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},n.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},n.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},n.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new n.WebGLBatch(this.gl);e.init(t),e.texture=this.texture,e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},n.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},n.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,n=4*i;this.indices[r+0]=n+0,this.indices[r+1]=n+1,this.indices[r+2]=n+2,this.indices[r+3]=n+0,this.indices[r+4]=n+2,this.indices[r+5]=n+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},n.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof n.WebGLBatch?this.batchs[r].render():i instanceof n.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof n.Strip?i.visible&&this.renderStrip(i,t):i instanceof n.Graphics&&i.visible&&n.WebGLGraphics.renderGraphics(i,t)},n.WebGLRenderGroup.prototype.renderSpecific=function(t,e){n.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniform2f(n.shaderProgram.projectionVector,e.x,e.y);var r,a,s,o,h=t.renderable?t:this.getNextRenderable(t),l=h.batch;if(h instanceof n.Sprite){l=h.batch;var u=l.head;if(u==h)r=0;else for(r=1;u.__next!=h;)r++,u=u.__next}else l=h;for(var c,d=t,p=t;p.children.length>0;)p=p.children[p.children.length-1],p.renderable&&(d=p);if(d instanceof n.Sprite){c=d.batch;var u=c.head;if(u==d)s=0;else for(s=1;u.__next!=d;)s++,u=u.__next}else c=d;if(l==c)return l instanceof n.WebGLBatch?l.render(r,s+1):this.renderSpecial(l),void 0;a=this.batchs.indexOf(l),o=this.batchs.indexOf(c),l instanceof n.WebGLBatch?l.render(r):this.renderSpecial(l);for(var f=a+1;o>f;f++)renderable=this.batchs[f],renderable instanceof n.WebGLBatch?this.batchs[f].render():this.renderSpecial(renderable);c instanceof n.WebGLBatch?c.render(0,s+1):this.renderSpecial(c)},n.WebGLRenderGroup.prototype.renderSpecial=function(t){t instanceof n.TilingSprite?t.visible&&this.renderTilingSprite(t,projectionMatrix):t instanceof n.Strip?t.visible&&this.renderStrip(t,projectionMatrix):t instanceof n.CustomRenderable?t.visible&&t.renderWebGL(this,projectionMatrix):t instanceof n.Graphics&&t.visible&&n.WebGLGraphics.renderGraphics(t)},n.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var n=i[r];n.worldVisible=n.visible&&e,n.textureChange&&(n.textureChange=!1,n.worldVisible&&(this.removeDisplayObject(n),this.addDisplayObject(n))),n.children.length>0&&this.checkVisibility(n,n.worldVisible)}},n.WebGLRenderGroup.prototype.updateTexture=function(t){if(1==t.batch.length)return t.batch.texture=t.texture.baseTexture,void 0;if(t.batch.texture!=t.texture.baseTexture)if(t.batch.head==t){var e=t.batch,i=this.batchs.indexOf(e),r=this.batchs[i-1];if(e.remove(t),r)if(r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)r.insertAfter(t,r.tail);else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i-1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(0,0,a)}}else if(t.batch.tail==t){var e=t.batch,i=this.batchs.indexOf(e),s=this.batchs[i+1];if(e.remove(t),s){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,s.head),void 0;var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.splice(i+1,0,a)}else{var a=n.WebGLRenderer.getBatch();a.init(t),this.batchs.push(a)}}else{var e=t.batch,o=e.split(t);o.remove(t);var a=n.WebGLRenderer.getBatch(),i=this.batchs.indexOf(e);a.init(t),this.batchs.splice(i+1,0,a,o)}},n.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof n.Sprite){var r,a;if(e instanceof n.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof n.Sprite){if(a=i.batch){if(a.texture==t.texture.baseTexture&&a.blendMode==t.blendMode)return a.insertBefore(t,i),void 0;if(a==r){var s=r.split(i),o=n.WebGLRenderer.getBatch(),h=this.batchs.indexOf(r);return o.init(t),this.batchs.splice(h+1,0,o,s),void 0}}}else a=i;var o=n.WebGLRenderer.getBatch();if(o.init(t),r){var h=this.batchs.indexOf(r);this.batchs.splice(h+1,0,o)}else this.batchs.push(o)}else t instanceof n.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof n.Strip?(this.initStrip(t),this.batchs.push(t)):t instanceof n.Graphics&&this.batchs.push(t);this.batchUpdate=!0}},n.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},n.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof n.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof n.WebGLBatch&&this.batchs[r+1]instanceof n.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e),n.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof n.WebGLBatch&&n.WebGLRenderer.returnBatch(e)}}},n.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},n.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},n.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},n.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=n.shaderProgram;i.useProgram(n.stripShaderProgram);var a=n.mat3.clone(t.worldTransform);n.mat3.transpose(a),i.uniformMatrix3fv(n.stripShaderProgram.translationMatrix,!1,a),i.uniform2f(n.stripShaderProgram.projectionVector,e.x,e.y),i.uniform1f(n.stripShaderProgram.alpha,t.worldAlpha),t.blendMode==n.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.useProgram(n.shaderProgram)},n.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;n.shaderProgram;var r=t.tilePosition,a=t.tileScale,s=r.x/t.texture.baseTexture.width,o=r.y/t.texture.baseTexture.height,h=t.width/t.texture.baseTexture.width/a.x,l=t.height/t.texture.baseTexture.height/a.y;t.uvs[0]=0-s,t.uvs[1]=0-o,t.uvs[2]=1*h-s,t.uvs[3]=0-o,t.uvs[4]=1*h-s,t.uvs[5]=1*l-o,t.uvs[6]=0-s,t.uvs[7]=1*l-o,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},n.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},n.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},n.CanvasRenderer.constructor=n.CanvasRenderer,n.CanvasRenderer.prototype.render=function(t){n.texturesToUpdate=[],n.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),n.Texture.frameUpdates.length>0&&(n.Texture.frameUpdates=[])},n.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},n.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof n.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof n.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof n.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof n.CustomRenderable?t.renderCanvas(this):t instanceof n.Graphics&&(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),n.CanvasGraphics.renderGraphics(t,i));if(t.children)for(var a=0;t.children.length>a;a++)this.renderDisplayObject(t.children[a]);this.context.setTransform(1,0,0,1,0,0)}},n.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var n=1;r-2>n;n++){var a=2*n,s=i[a],o=i[a+2],h=i[a+4],l=i[a+1],u=i[a+3],c=i[a+5];e.moveTo(s,l),e.lineTo(o,u),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},n.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;e.globalAlpha=t.worldAlpha,t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},n.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,n=i.length/2;this.count++;for(var a=1;n-2>a;a++){var s=2*a,o=i[s],h=i[s+2],l=i[s+4],u=i[s+1],c=i[s+3],d=i[s+5],p=r[s]*t.texture.width,f=r[s+2]*t.texture.width,g=r[s+4]*t.texture.width,v=r[s+1]*t.texture.height,m=r[s+3]*t.texture.height,x=r[s+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,u),e.lineTo(h,c),e.lineTo(l,d),e.closePath(),e.clip();var b=p*m+v*g+f*x-m*g-v*f-p*x,y=o*m+v*l+h*x-m*l-v*h-o*x,T=p*h+o*g+f*l-h*g-o*f-p*l,A=p*m*l+v*h*g+o*f*x-o*m*g-v*f*l-p*h*x,w=u*m+v*d+c*x-m*d-v*c-u*x,_=p*c+u*g+f*d-c*g-u*f-p*d,R=p*m*d+v*c*g+u*f*x-u*m*g-v*f*d-p*c*x;e.transform(y/b,w/b,T/b,_/b,A/b,R/b),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},n.CanvasGraphics=function(){},n.CanvasGraphics.renderGraphics=function(t,e){for(var i=t.worldAlpha,r=0;t.graphicsData.length>r;r++){var a=t.graphicsData[r],s=a.points;if(e.strokeStyle=color="#"+("00000"+(0|a.lineColor).toString(16)).substr(-6),e.lineWidth=a.lineWidth,a.type==n.Graphics.POLY){e.beginPath(),e.moveTo(s[0],s[1]);for(var o=1;s.length/2>o;o++)e.lineTo(s[2*o],s[2*o+1]);s[0]==s[s.length-2]&&s[1]==s[s.length-1]&&e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}else if(a.type==n.Graphics.RECT)a.fillColor&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fillRect(s[0],s[1],s[2],s[3])),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.strokeRect(s[0],s[1],s[2],s[3]));else if(a.type==n.Graphics.CIRC)e.beginPath(),e.arc(s[0],s[1],s[2],0,2*Math.PI),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke());else if(a.type==n.Graphics.ELIP){var h=a.points,l=2*h[2],u=2*h[3],c=h[0]-l/2,d=h[1]-u/2;e.beginPath();var p=.5522848,f=l/2*p,g=u/2*p,v=c+l,m=d+u,x=c+l/2,b=d+u/2;e.moveTo(c,b),e.bezierCurveTo(c,b-g,x-f,d,x,d),e.bezierCurveTo(x+f,d,v,b-g,v,b),e.bezierCurveTo(v,b+g,x+f,m,x,m),e.bezierCurveTo(x-f,m,c,b+g,c,b),e.closePath(),a.fill&&(e.globalAlpha=a.fillAlpha*i,e.fillStyle=color="#"+("00000"+(0|a.fillColor).toString(16)).substr(-6),e.fill()),a.lineWidth&&(e.globalAlpha=a.lineAlpha*i,e.stroke())}}},n.Graphics=function(){n.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=2,this.lineColor="#FF0000",this.graphicsData=[],this.currentPath={points:[]}},n.Graphics.constructor=n.Graphics,n.Graphics.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Graphics.prototype.lineStyle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.lineWidth=t||0,this.lineColor=e||0,this.lineAlpha=void 0==i?1:i,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.graphicsData.push(this.currentPath)},n.Graphics.prototype.moveTo=function(t,e){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:n.Graphics.POLY},this.currentPath.points.push(t,e),this.graphicsData.push(this.currentPath)},n.Graphics.prototype.lineTo=function(t,e){this.currentPath.points.push(t,e),this.dirty=!0},n.Graphics.prototype.beginFill=function(t,e){this.filling=!0,this.fillColor=t||0,this.fillAlpha=e||1},n.Graphics.prototype.endFill=function(){this.filling=!1,this.fillColor=null,this.fillAlpha=1},n.Graphics.prototype.drawRect=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawCircle=function(t,e,i){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,i],type:n.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.drawElipse=function(t,e,i,r){0==this.currentPath.points.length&&this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[t,e,i,r],type:n.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0},n.Graphics.prototype.clear=function(){this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[]},n.Graphics.POLY=0,n.Graphics.RECT=1,n.Graphics.CIRC=2,n.Graphics.ELIP=3,n.Strip=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=n.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},n.Strip.constructor=n.Strip,n.Strip.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},n.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Rope=function(t,e){n.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},n.Rope.constructor=n.Rope,n.Rope.prototype=Object.create(n.Strip.prototype),n.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,n=t[0],a=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var s=t.length,o=1;s>o;o++){var a=t[o],h=4*o,l=o/(s-1);o%2?(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1):(e[h]=l,e[h+1]=0,e[h+2]=l,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,n=a}}},n.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],a={x:0,y:0},s=t[0];this.count-=.2,i[0]=s.x+a.x,i[1]=s.y+a.y,i[2]=s.x-a.x,i[3]=s.y-a.y;for(var o=t.length,h=1;o>h;h++){var s=t[h],l=4*h;e=t.length-1>h?t[h+1]:s,a.y=-(e.x-r.x),a.x=e.y-r.y;var u=10*(1-h/(o-1));u>1&&(u=1);var c=Math.sqrt(a.x*a.x+a.y*a.y),d=this.texture.height/2;a.x/=c,a.y/=c,a.x*=d,a.y*=d,i[l]=s.x+a.x,i[l+1]=s.y+a.y,i[l+2]=s.x-a.x,i[l+3]=s.y-a.y,r=s}n.DisplayObjectContainer.prototype.updateTransform.call(this)}},n.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0 },n.TilingSprite=function(t,e,i){n.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new n.Point(1,1),this.tilePosition=new n.Point(0,0),this.blendMode=n.blendModes.NORMAL},n.TilingSprite.constructor=n.TilingSprite,n.TilingSprite.prototype=Object.create(n.DisplayObjectContainer.prototype),n.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},n.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},n.Spine=function(t){if(n.DisplayObjectContainer.call(this),this.spineData=n.AnimCache[t],!this.spineData)throw Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+t);this.count=0,this.sprites=[],this.skeleton=new u.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new u.AnimationStateData(this.spineData),this.state=new u.AnimationState(this.stateData);for(var e=0;this.skeleton.drawOrder.length>e;e++){var i=this.skeleton.drawOrder[e].data.attachmentName;n.TextureCache[i]||(i+=".png");var r=new n.Sprite(n.Texture.fromFrame(i));r.anchor.x=r.anchor.y=.5,this.addChild(r),this.sprites.push(r)}},n.Spine.constructor=n.Spine,n.Spine.prototype=Object.create(n.DisplayObjectContainer.prototype),n.Spine.prototype.updateTransform=function(){this.state.update(1/60),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var t=0;this.skeleton.drawOrder.length>t;t++){var e=this.skeleton.drawOrder[t],i=e.bone.worldX+e.attachment.x*e.bone.m00+e.attachment.y*e.bone.m01+.5*e.attachment.width,r=e.bone.worldY+e.attachment.x*e.bone.m10+e.attachment.y*e.bone.m11+.5*e.attachment.height;if(e.cacheName!=e.attachment.name){var a=e.attachment.name;n.TextureCache[a]||(a+=".png"),this.sprites[t].setTexture(n.TextureCache[a]),e.cacheName=e.attachment.name}i+=-(e.attachment.width*(e.bone.worldScaleX+e.attachment.scaleX-1)>>1),r+=-(e.attachment.height*(e.bone.worldScaleY+e.attachment.scaleY-1)>>1),this.sprites[t].position.x=i,this.sprites[t].position.y=r,this.sprites[t].rotation=-(e.bone.worldRotation+e.attachment.rotation)*(Math.PI/180)}n.DisplayObjectContainer.prototype.updateTransform.call(this)};var u={};u.BoneData=function(t,e){this.name=t,this.parent=e},u.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},u.SlotData=function(t,e){this.name=t,this.boneData=e},u.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},u.Bone=function(t,e){this.data=t,this.parent=e,this.setToSetupPose()},u.Bone.yDown=!1,u.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(t,e){var i=this.parent;null!=i?(this.worldX=this.x*i.m00+this.y*i.m01+i.worldX,this.worldY=this.x*i.m10+this.y*i.m11+i.worldY,this.worldScaleX=i.worldScaleX*this.scaleX,this.worldScaleY=i.worldScaleY*this.scaleY,this.worldRotation=i.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var r=this.worldRotation*Math.PI/180,n=Math.cos(r),a=Math.sin(r);this.m00=n*this.worldScaleX,this.m10=a*this.worldScaleX,this.m01=-a*this.worldScaleY,this.m11=n*this.worldScaleY,t&&(this.m00=-this.m00,this.m01=-this.m01),e&&(this.m10=-this.m10,this.m11=-this.m11),u.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY}},u.Slot=function(t,e,i){this.data=t,this.skeleton=e,this.bone=i,this.setToSetupPose()},u.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(t){this.attachment=t,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(t){this._attachmentTime=this.skeleton.time-t},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var t=this.data;this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a;for(var e=this.skeleton.data.slots,i=0,r=e.length;r>i;i++)if(e[i]==t){this.setAttachment(t.attachmentName?this.skeleton.getAttachmentBySlotIndex(i,t.attachmentName):null);break}}},u.Skin=function(t){this.name=t,this.attachments={}},u.Skin.prototype={addAttachment:function(t,e,i){this.attachments[t+":"+e]=i},getAttachment:function(t,e){return this.attachments[t+":"+e]},_attachAll:function(t,e){for(var i in e.attachments){var r=i.indexOf(":"),n=parseInt(i.substring(0,r)),a=i.substring(r+1),s=t.slots[n];if(s.attachment&&s.attachment.name==a){var o=this.getAttachment(n,a);o&&s.setAttachment(o)}}}},u.Animation=function(t,e,i){this.name=t,this.timelines=e,this.duration=i},u.Animation.prototype={apply:function(t,e,i){i&&0!=this.duration&&(e%=this.duration);for(var r=this.timelines,n=0,a=r.length;a>n;n++)r[n].apply(t,e,1)},mix:function(t,e,i,r){i&&0!=this.duration&&(e%=this.duration);for(var n=this.timelines,a=0,s=n.length;s>a;a++)n[a].apply(t,e,r)}},u.binarySearch=function(t,e,i){var r=0,n=Math.floor(t.length/i)-2;if(0==n)return i;for(var a=n>>>1;;){if(e>=t[(a+1)*i]?r=a+1:n=a,r==n)return(r+1)*i;a=r+n>>>1}},u.linearSearch=function(t,e,i){for(var r=0,n=t.length-i;n>=r;r+=i)if(t[r]>e)return r;return-1},u.Curves=function(t){this.curves=[],this.curves.length=6*(t-1)},u.Curves.prototype={setLinear:function(t){this.curves[6*t]=0},setStepped:function(t){this.curves[6*t]=-1},setCurve:function(t,e,i,r,n){var a=.1,s=a*a,o=s*a,h=3*a,l=3*s,u=6*s,c=6*o,d=2*-e+r,p=2*-i+n,f=3*(e-r)+1,g=3*(i-n)+1,v=6*t,m=this.curves;m[v]=e*h+d*l+f*o,m[v+1]=i*h+p*l+g*o,m[v+2]=d*u+f*c,m[v+3]=p*u+g*c,m[v+4]=f*c,m[v+5]=g*c},getCurvePercent:function(t,e){e=0>e?0:e>1?1:e;var i=6*t,r=this.curves,n=r[i];if(!n)return e;if(-1==n)return 0;for(var a=r[i+1],s=r[i+2],o=r[i+3],h=r[i+4],l=r[i+5],u=n,c=a,d=8;;){if(u>=e){var p=u-n,f=c-a;return f+(c-f)*(e-p)/(u-p)}if(0==d)break;d--,n+=s,a+=o,s+=h,o+=l,u+=n,c+=a}return c+(1-c)*(e-u)/(1-u)}},u.RotateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=2*t},u.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){t*=2,this.frames[t]=e,this.frames[t+1]=i},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-2]){for(var a=n.data.rotation+r[r.length-1]-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;return n.rotation+=a*i,void 0}var s=u.binarySearch(r,e,2),o=r[s-1],h=r[s],l=1-(e-h)/(r[s-2]-h);l=this.curves.getCurvePercent(s/2-1,l);for(var a=r[s+1]-o;a>180;)a-=360;for(;-180>a;)a+=360;for(a=n.data.rotation+(o+a*l)-n.rotation;a>180;)a-=360;for(;-180>a;)a+=360;n.rotation+=a*i}}},u.TranslateTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.x+=(n.data.x+r[r.length-2]-n.x)*i,n.y+=(n.data.y+r[r.length-1]-n.y)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.x+=(n.data.x+s+(r[a+1]-s)*l-n.x)*i,n.y+=(n.data.y+o+(r[a+2]-o)*l-n.y)*i}}},u.ScaleTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=3*t},u.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(t,e,i,r){t*=3,this.frames[t]=e,this.frames[t+1]=i,this.frames[t+2]=r},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.bones[this.boneIndex];if(e>=r[r.length-3])return n.scaleX+=(n.data.scaleX-1+r[r.length-2]-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+r[r.length-1]-n.scaleY)*i,void 0;var a=u.binarySearch(r,e,3),s=r[a-2],o=r[a-1],h=r[a],l=1-(e-h)/(r[a+-3]-h);l=this.curves.getCurvePercent(a/3-1,l),n.scaleX+=(n.data.scaleX-1+s+(r[a+1]-s)*l-n.scaleX)*i,n.scaleY+=(n.data.scaleY-1+o+(r[a+2]-o)*l-n.scaleY)*i}}},u.ColorTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=5*t},u.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e){t*=5,this.frames[t]=e,this.frames[t+1]=r,this.frames[t+2]=g,this.frames[t+3]=b,this.frames[t+4]=a},apply:function(t,e,i){var r=this.frames;if(!(r[0]>e)){var n=t.slots[this.slotIndex];if(e>=r[r.length-5]){var a=r.length-1;return n.r=r[a-3],n.g=r[a-2],n.b=r[a-1],n.a=r[a],void 0}var s=u.binarySearch(r,e,5),o=r[s-4],h=r[s-3],l=r[s-2],c=r[s-1],d=r[s],p=1-(e-d)/(r[s-5]-d);p=this.curves.getCurvePercent(s/5-1,p);var f=o+(r[s+1]-o)*p,g=h+(r[s+2]-h)*p,v=l+(r[s+3]-l)*p,m=c+(r[s+4]-c)*p;1>i?(n.r+=(f-n.r)*i,n.g+=(g-n.g)*i,n.b+=(v-n.b)*i,n.a+=(m-n.a)*i):(n.r=f,n.g=g,n.b=v,n.a=m)}}},u.AttachmentTimeline=function(t){this.curves=new u.Curves(t),this.frames=[],this.frames.length=t,this.attachmentNames=[],this.attachmentNames.length=t},u.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(t,e,i){this.frames[t]=e,this.attachmentNames[t]=i},apply:function(t,e){var i=this.frames;if(!(i[0]>e)){var r;r=e>=i[i.length-1]?i.length-1:u.binarySearch(i,e,1)-1;var n=this.attachmentNames[r];t.slots[this.slotIndex].setAttachment(n?t.getAttachmentBySlotIndex(this.slotIndex,n):null)}}},u.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},u.SkeletonData.prototype={defaultSkin:null,findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return slot[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].name==t)return i;return-1},findSkin:function(t){for(var e=this.skins,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},findAnimation:function(t){for(var e=this.animations,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null}},u.Skeleton=function(t){this.data=t,this.bones=[];for(var e=0,i=t.bones.length;i>e;e++){var r=t.bones[e],n=r.parent?this.bones[t.bones.indexOf(r.parent)]:null;this.bones.push(new u.Bone(r,n))}this.slots=[],this.drawOrder=[];for(var e=0,i=t.slots.length;i>e;e++){var a=t.slots[e],s=this.bones[t.bones.indexOf(a.boneData)],o=new u.Slot(a,this,s);this.slots.push(o),this.drawOrder.push(o)}},u.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var t=this.flipX,e=this.flipY,i=this.bones,r=0,n=i.length;n>r;r++)i[r].updateWorldTransform(t,e)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var t=this.bones,e=0,i=t.length;i>e;e++)t[e].setToSetupPose()},setSlotsToSetupPose:function(){for(var t=this.slots,e=0,i=t.length;i>e;e++)t[e].setToSetupPose(e)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findBoneIndex:function(t){for(var e=this.bones,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},findSlot:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return e[i];return null},findSlotIndex:function(t){for(var e=this.slots,i=0,r=e.length;r>i;i++)if(e[i].data.name==t)return i;return-1},setSkinByName:function(t){var e=this.data.findSkin(t);if(!e)throw"Skin not found: "+t;this.setSkin(e)},setSkin:function(t){this.skin&&t&&t._attachAll(this,this.skin),this.skin=t},getAttachmentBySlotName:function(t,e){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(t),e)},getAttachmentBySlotIndex:function(t,e){if(this.skin){var i=this.skin.getAttachment(t,e);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},setAttachment:function(t,e){for(var i=this.slots,r=0,n=i.size;n>r;r++){var a=i[r];if(a.data.name==t){var s=null;if(e&&(s=this.getAttachment(r,e),null==s))throw"Attachment not found: "+e+", for slot: "+t;return a.setAttachment(s),void 0}}throw"Slot not found: "+t},update:function(t){time+=t}},u.AttachmentType={region:0},u.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},u.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(t,e,i,r,n){var a=this.uvs;n?(a[2]=t,a[3]=r,a[4]=t,a[5]=e,a[6]=i,a[7]=e,a[0]=i,a[1]=r):(a[0]=t,a[1]=r,a[2]=t,a[3]=e,a[4]=i,a[5]=e,a[6]=i,a[7]=r)},updateOffset:function(){var t=this.width/this.regionOriginalWidth*this.scaleX,e=this.height/this.regionOriginalHeight*this.scaleY,i=-this.width/2*this.scaleX+this.regionOffsetX*t,r=-this.height/2*this.scaleY+this.regionOffsetY*e,n=i+this.regionWidth*t,a=r+this.regionHeight*e,s=this.rotation*Math.PI/180,o=Math.cos(s),h=Math.sin(s),l=i*o+this.x,u=i*h,c=r*o+this.y,d=r*h,p=n*o+this.x,f=n*h,g=a*o+this.y,v=a*h,m=this.offset;m[0]=l-d,m[1]=c+u,m[2]=l-v,m[3]=g+u,m[4]=p-v,m[5]=g+f,m[6]=p-d,m[7]=c+f},computeVertices:function(t,e,i,r){t+=i.worldX,e+=i.worldY;var n=i.m00,a=i.m01,s=i.m10,o=i.m11,h=this.offset;r[0]=h[0]*n+h[1]*a+t,r[1]=h[0]*s+h[1]*o+e,r[2]=h[2]*n+h[3]*a+t,r[3]=h[2]*s+h[3]*o+e,r[4]=h[4]*n+h[5]*a+t,r[5]=h[4]*s+h[5]*o+e,r[6]=h[6]*n+h[7]*a+t,r[7]=h[6]*s+h[7]*o+e}},u.AnimationStateData=function(t){this.skeletonData=t,this.animationToMixTime={}},u.AnimationStateData.prototype={setMixByName:function(t,e,i){var r=this.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;var n=this.skeletonData.findAnimation(e);if(!n)throw"Animation not found: "+e;this.setMix(r,n,i)},setMix:function(t,e,i){this.animationToMixTime[t.name+":"+e.name]=i},getMix:function(t,e){var i=this.animationToMixTime[t.name+":"+e.name];return i?i:0}},u.AnimationState=function(t){this.data=t,this.queue=[]},u.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(t){if(this.currentTime+=t,this.previousTime+=t,this.mixTime+=t,this.queue.length>0){var e=this.queue[0];this.currentTime>=e.delay&&(this._setAnimation(e.animation,e.loop),this.queue.shift())}},apply:function(t){if(this.current)if(this.previous){this.previous.apply(t,this.previousTime,this.previousLoop);var e=this.mixTime/this.mixDuration;e>=1&&(e=1,this.previous=null),this.current.mix(t,this.currentTime,this.currentLoop,e)}else this.current.apply(t,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(t,e){this.previous=null,t&&this.current&&(this.mixDuration=this.data.getMix(this.current,t),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=t,this.currentLoop=e,this.currentTime=0},setAnimationByName:function(t,e){var i=this.data.skeletonData.findAnimation(t);if(!i)throw"Animation not found: "+t;this.setAnimation(i,e)},setAnimation:function(t,e){this.queue.length=0,this._setAnimation(t,e)},addAnimationByName:function(t,e,i){var r=this.data.skeletonData.findAnimation(t);if(!r)throw"Animation not found: "+t;this.addAnimation(r,e,i)},addAnimation:function(t,e,i){var r={};if(r.animation=t,r.loop=e,!i||0>=i){var n=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;i=null!=n?n.duration-this.data.getMix(n,t)+(i||0):0}r.delay=i,this.queue.push(r)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},u.SkeletonJson=function(t){this.attachmentLoader=t},u.SkeletonJson.prototype={scale:1,readSkeletonData:function(t){for(var e=new u.SkeletonData,i=t.bones,r=0,n=i.length;n>r;r++){var a=i[r],s=null;if(a.parent&&(s=e.findBone(a.parent),!s))throw"Parent bone not found: "+a.parent;var o=new u.BoneData(a.name,s);o.length=(a.length||0)*this.scale,o.x=(a.x||0)*this.scale,o.y=(a.y||0)*this.scale,o.rotation=a.rotation||0,o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1,e.bones.push(o)}for(var h=t.slots,r=0,n=h.length;n>r;r++){var l=h[r],o=e.findBone(l.bone);if(!o)throw"Slot bone not found: "+l.bone;var c=new u.SlotData(l.name,o),d=l.color;d&&(c.r=u.SkeletonJson.toColor(d,0),c.g=u.SkeletonJson.toColor(d,1),c.b=u.SkeletonJson.toColor(d,2),c.a=u.SkeletonJson.toColor(d,3)),c.attachmentName=l.attachment,e.slots.push(c)}var p=t.skins;for(var f in p)if(p.hasOwnProperty(f)){var g=p[f],v=new u.Skin(f);for(var m in g)if(g.hasOwnProperty(m)){var x=e.findSlotIndex(m),b=g[m];for(var y in b)if(b.hasOwnProperty(y)){var T=this.readAttachment(v,y,b[y]);null!=T&&v.addAttachment(x,y,T)}}e.skins.push(v),"default"==v.name&&(e.defaultSkin=v)}var A=t.animations;for(var w in A)A.hasOwnProperty(w)&&this.readAnimation(w,A[w],e);return e},readAttachment:function(t,e,i){e=i.name||e;var r=u.AttachmentType[i.type||"region"],n=new u.RegionAttachment;return n.name=e,r==u.AttachmentType.region&&(n.x=(i.x||0)*this.scale,n.y=(i.y||0)*this.scale,n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1,n.rotation=i.rotation||0,n.width=(i.width||32)*this.scale,n.height=(i.height||32)*this.scale,n.updateOffset()),n},readAnimation:function(t,e,i){var r=[],n=0,a=e.bones;for(var s in a)if(a.hasOwnProperty(s)){var o=i.findBoneIndex(s);if(-1==o)throw"Bone not found: "+s;var h=a[s];for(var l in h)if(h.hasOwnProperty(l)){var c=h[l];if("rotate"==l){var d=new u.RotateTimeline(c.length);d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p,v.time,v.angle),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[2*d.getFrameCount()-2])}else{if("translate"!=l&&"scale"!=l)throw"Invalid timeline type for a bone: "+l+" ("+s+")";var d,m=1;"scale"==l?d=new u.ScaleTimeline(c.length):(d=new u.TranslateTimeline(c.length),m=this.scale),d.boneIndex=o;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],x=(v.x||0)*m,b=(v.y||0)*m;d.setFrame(p,v.time,x,b),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[3*d.getFrameCount()-3])}}}var y=e.slots;for(var T in y)if(y.hasOwnProperty(T)){var A=y[T],w=i.findSlotIndex(T);for(var l in A)if(A.hasOwnProperty(l)){var c=A[l];if("color"==l){var d=new u.ColorTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f],_=v.color,R=u.SkeletonJson.toColor(_,0),S=u.SkeletonJson.toColor(_,1),C=u.SkeletonJson.toColor(_,2),L=u.SkeletonJson.toColor(_,3);d.setFrame(p,v.time,R,S,C,L),u.SkeletonJson.readCurve(d,p,v),p++}r.push(d),n=Math.max(n,d.frames[5*d.getFrameCount()-5])}else{if("attachment"!=l)throw"Invalid timeline type for a slot: "+l+" ("+T+")";var d=new u.AttachmentTimeline(c.length);d.slotIndex=w;for(var p=0,f=0,g=c.length;g>f;f++){var v=c[f];d.setFrame(p++,v.time,v.name)}r.push(d),n=Math.max(n,d.frames[Math.floor(d.getFrameCount())-1])}}}i.animations.push(new u.Animation(t,r,n))}},u.SkeletonJson.readCurve=function(t,e,i){var r=i.curve;r&&("stepped"==r?t.curves.setStepped(e):r instanceof Array&&t.curves.setCurve(e,r[0],r[1],r[2],r[3]))},u.SkeletonJson.toColor=function(t,e){if(8!=t.length)throw"Color hexidecimal length must be 8, recieved: "+t;return parseInt(t.substring(2*e,2),16)/255},u.Atlas=function(t,e){this.textureLoader=e,this.pages=[],this.regions=[];var i=new u.AtlasReader(t),r=[];r.length=4;for(var n=null;;){var a=i.readLine();if(null==a)break;if(a=i.trim(a),0==a.length)n=null;else if(n){var s=new u.AtlasRegion;s.name=a,s.page=n,s.rotate="true"==i.readValue(),i.readTuple(r);var o=parseInt(r[0]),h=parseInt(r[1]);i.readTuple(r);var l=parseInt(r[0]),c=parseInt(r[1]);s.u=o/n.width,s.v=h/n.height,s.rotate?(s.u2=(o+c)/n.width,s.v2=(h+l)/n.height):(s.u2=(o+l)/n.width,s.v2=(h+c)/n.height),s.x=o,s.y=h,s.width=Math.abs(l),s.height=Math.abs(c),4==i.readTuple(r)&&(s.splits=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],4==i.readTuple(r)&&(s.pads=[parseInt(r[0]),parseInt(r[1]),parseInt(r[2]),parseInt(r[3])],i.readTuple(r))),s.originalWidth=parseInt(r[0]),s.originalHeight=parseInt(r[1]),i.readTuple(r),s.offsetX=parseInt(r[0]),s.offsetY=parseInt(r[1]),s.index=parseInt(i.readValue()),this.regions.push(s)}else{n=new u.AtlasPage,n.name=a,n.format=u.Atlas.Format[i.readValue()],i.readTuple(r),n.minFilter=u.Atlas.TextureFilter[r[0]],n.magFilter=u.Atlas.TextureFilter[r[1]];var d=i.readValue();n.uWrap=u.Atlas.TextureWrap.clampToEdge,n.vWrap=u.Atlas.TextureWrap.clampToEdge,"x"==d?n.uWrap=u.Atlas.TextureWrap.repeat:"y"==d?n.vWrap=u.Atlas.TextureWrap.repeat:"xy"==d&&(n.uWrap=n.vWrap=u.Atlas.TextureWrap.repeat),e.load(n,a),this.pages.push(n)}}},u.Atlas.prototype={findRegion:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++)if(e[i].name==t)return e[i];return null},dispose:function(){for(var t=this.pages,e=0,i=t.length;i>e;e++)this.textureLoader.unload(t[e].rendererObject)},updateUVs:function(t){for(var e=this.regions,i=0,r=e.length;r>i;i++){var n=e[i];n.page==t&&(n.u=n.x/t.width,n.v=n.y/t.height,n.rotate?(n.u2=(n.x+n.height)/t.width,n.v2=(n.y+n.width)/t.height):(n.u2=(n.x+n.width)/t.width,n.v2=(n.y+n.height)/t.height))}}},u.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},u.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},u.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},u.AtlasPage=function(){},u.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},u.AtlasRegion=function(){},u.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},u.AtlasReader=function(t){this.lines=t.split(/\r\n|\r|\n/)},u.AtlasReader.prototype={index:0,trim:function(t){return t.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw"Invalid line: "+t;return this.trim(t.substring(e+1))},readTuple:function(t){var e=this.readLine(),i=e.indexOf(":");if(-1==i)throw"Invalid line: "+e;for(var r=0,n=i+1;3>r;r++){var a=e.indexOf(",",n);if(-1==a){if(0==r)throw"Invalid line: "+e;break}t[r]=this.trim(e.substr(n,a-n)),n=a+1}return t[r]=this.trim(e.substring(n)),r+1}},u.AtlasAttachmentLoader=function(t){this.atlas=t},u.AtlasAttachmentLoader.prototype={newAttachment:function(t,e,i){switch(e){case u.AttachmentType.region:var r=this.atlas.findRegion(i);if(!r)throw"Region not found in atlas: "+i+" ("+e+")";var n=new u.RegionAttachment(i);return n.rendererObject=r,n.setUVs(r.u,r.v,r.u2,r.v2,r.rotate),n.regionOffsetX=r.offsetX,n.regionOffsetY=r.offsetY,n.regionWidth=r.width,n.regionHeight=r.height,n.regionOriginalWidth=r.originalWidth,n.regionOriginalHeight=r.originalHeight,n}throw"Unknown attachment type: "+e}},n.AnimCache={},u.Bone.yDown=!0,n.CustomRenderable=function(){n.DisplayObject.call(this)},n.CustomRenderable.constructor=n.CustomRenderable,n.CustomRenderable.prototype=Object.create(n.DisplayObject.prototype),n.CustomRenderable.prototype.renderCanvas=function(){},n.CustomRenderable.prototype.initWebGL=function(){},n.CustomRenderable.prototype.renderWebGL=function(){},n.BaseTextureCache={},n.texturesToUpdate=[],n.texturesToDestroy=[],n.BaseTexture=function(t){if(n.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,n.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,n.texturesToUpdate.push(this);this._powerOf2=!1}},n.BaseTexture.constructor=n.BaseTexture,n.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,n.texturesToDestroy.push(this)},n.BaseTexture.fromImage=function(t,e){var i=n.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new n.BaseTexture(r),n.BaseTextureCache[t]=i}return i},n.TextureCache={},n.FrameCache={},n.Texture=function(t,e){if(n.EventTarget.call(this),e||(this.noFrame=!0,e=new n.Rectangle(0,0,1,1)),this.trim=new n.Point,t instanceof n.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new n.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},n.Texture.constructor=n.Texture,n.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new n.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},n.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},n.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,n.Texture.frameUpdates.push(this)},n.Texture.fromImage=function(t,e){var i=n.TextureCache[t];return i||(i=new n.Texture(n.BaseTexture.fromImage(t,e)),n.TextureCache[t]=i),i},n.Texture.fromFrame=function(t){var e=n.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},n.Texture.fromCanvas=function(t){var e=new n.BaseTexture(t);return new n.Texture(e)},n.Texture.addTextureToCache=function(t,e){n.TextureCache[e]=t},n.Texture.removeTextureFromCache=function(t){var e=n.TextureCache[t];return n.TextureCache[t]=null,e},n.Texture.frameUpdates=[],n.RenderTexture=function(t,e){n.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=n.mat3.create(),this.frame=new n.Rectangle(0,0,this.width,this.height),n.gl?this.initWebGL():this.initCanvas()},n.RenderTexture.constructor=n.RenderTexture,n.RenderTexture.prototype=Object.create(n.Texture.prototype),n.RenderTexture.prototype.initWebGL=function(){var t=n.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new n.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new n.Point(this.width/2,this.height/2),this.projectionMatrix=n.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},n.RenderTexture.prototype.initCanvas=function(){this.renderer=new n.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new n.BaseTexture(this.renderer.view),this.frame=new n.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},n.RenderTexture.prototype.renderWebGL=function(t,e){var i=n.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=n.mat3.create(),t.worldTransform[4]=-1,t.worldTransform[5]=2*this.projection.y;for(var a=0,s=r.length;s>a;a++)r[a].updateTransform();var o=t.__renderGroup;o?t==o.root?o.render(this.projection):o.renderSpecific(t,this.projection):(this.renderGroup||(this.renderGroup=new n.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projection))},n.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=n.mat3.create();for(var r=0,a=i.length;a>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),n.texturesToUpdate.push(this.baseTexture)},n.AssetLoader=function(t){n.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:n.ImageLoader,jpeg:n.ImageLoader,png:n.ImageLoader,gif:n.ImageLoader,json:n.JsonLoader,anim:n.SpineLoader,xml:n.BitmapFontLoader,fnt:n.BitmapFontLoader}},n.AssetLoader.constructor=n.AssetLoader,n.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),n=this.loadersByType[r];if(!n)throw Error(r+" is an unsupported file type");var a=new n(i,this.crossorigin);a.addEventListener("loaded",function(){t.onAssetLoaded()}),a.load()}},n.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},n.JsonLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.crossorigin=e,this.loaded=!1},n.JsonLoader.constructor=n.JsonLoader,n.JsonLoader.prototype.load=function(){this.ajaxRequest=new l;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},n.JsonLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState)if(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))if(this.json=JSON.parse(this.ajaxRequest.responseText),this.json.frames){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0))}i.load()}else if(this.json.bones){var o=new u.SkeletonJson,h=o.readSkeletonData(this.json);n.AnimCache[this.url]=h,this.onLoaded()}else this.onLoaded();else this.onError()},n.JsonLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},n.JsonLoader.prototype.onError=function(){this.dispatchEvent({type:"error",content:this})},n.SpriteSheetLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},n.SpriteSheetLoader.constructor=n.SpriteSheetLoader,n.SpriteSheetLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpriteSheetLoader.prototype.onJSONLoaded=function(){var t=this,e=this.baseUrl+this.json.meta.image,i=new n.ImageLoader(e,this.crossorigin),r=this.json.frames;this.texture=i.texture.baseTexture,i.addEventListener("loaded",function(){t.onLoaded()});for(var a in r){var s=r[a].frame;s&&(n.TextureCache[a]=new n.Texture(this.texture,{x:s.x,y:s.y,width:s.w,height:s.h}),r[a].trimmed&&(n.TextureCache[a].realSize=r[a].spriteSourceSize,n.TextureCache[a].trim.x=0)) }i.load()},n.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.ImageLoader=function(t,e){n.EventTarget.call(this),this.texture=n.Texture.fromImage(t,e)},n.ImageLoader.constructor=n.ImageLoader,n.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},n.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.BitmapFontLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},n.BitmapFontLoader.constructor=n.BitmapFontLoader,n.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},n.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new n.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],a=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(a.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var s=this.ajaxRequest.responseXML.getElementsByTagName("char"),o=0;s.length>o;o++){var h=parseInt(s[o].attributes.getNamedItem("id").nodeValue,10),l={x:parseInt(s[o].attributes.getNamedItem("x").nodeValue,10),y:parseInt(s[o].attributes.getNamedItem("y").nodeValue,10),width:parseInt(s[o].attributes.getNamedItem("width").nodeValue,10),height:parseInt(s[o].attributes.getNamedItem("height").nodeValue,10)};n.TextureCache[h]=new n.Texture(this.texture,l),i.chars[h]={xOffset:parseInt(s[o].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(s[o].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(s[o].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{},texture:new n.Texture(this.texture,l)}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(o=0;u.length>o;o++){var c=parseInt(u[o].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[o].attributes.getNamedItem("second").nodeValue,10),p=parseInt(u[o].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=p}n.BitmapText.fonts[i.font]=i;var f=this;e.addEventListener("loaded",function(){f.onLoaded()}),e.load()}},n.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},n.SpineLoader=function(t,e){n.EventTarget.call(this),this.url=t,this.crossorigin=e,this.loaded=!1},n.SpineLoader.constructor=n.SpineLoader,n.SpineLoader.prototype.load=function(){new n.JsonLoader(this.url,this.crossorigin),jsonLoader.addEventListener("loaded",function(t){scope.json=t.content.json,scope.onJSONLoaded()}),jsonLoader.load()},n.SpineLoader.prototype.load=function(){var t=this,e=new n.JsonLoader(this.url,this.crossorigin);e.addEventListener("loaded",function(e){t.json=e.content.json,t.onJSONLoaded()}),e.load()},n.SpineLoader.prototype.onJSONLoaded=function(){var t=new u.SkeletonJson,e=t.readSkeletonData(this.json);n.AnimCache[this.url]=e,this.onLoaded()},n.SpineLoader.prototype.onLoaded=function(){this.loaded=!0,this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=n),exports.PIXI=n):i.PIXI=n}).call(this); \ No newline at end of file diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index 25cca17..0391561 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index 25cca17..0391561 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 12 - Spine/pixi.js b/examples/example 12 - Spine/pixi.js index 25cca17..0391561 100644 --- a/examples/example 12 - Spine/pixi.js +++ b/examples/example 12 - Spine/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 13 - Graphics/index.html b/examples/example 13 - Graphics/index.html index e6996b7..d847ef2 100644 --- a/examples/example 13 - Graphics/index.html +++ b/examples/example 13 - Graphics/index.html @@ -80,17 +80,40 @@ stage.addChild(graphics); + // lets create moving shape + var thing = new PIXI.Graphics(); + stage.addChild(thing); + thing.position.x = 620/2; + thing.position.y = 380/2; + + var count = 0; + stage.click = stage.tap = function() { graphics.lineStyle(Math.random() * 30, Math.random() * 0xFFFFFF, 1); graphics.moveTo(Math.random() * 620,Math.random() * 380); graphics.lineTo(Math.random() * 620,Math.random() * 380); - } requestAnimFrame(animate); function animate() { + + thing.clear(); + + count += 0.1; + + thing.clear(); + thing.lineStyle(30, 0xff0000, 1); + thing.beginFill(0xffFF00, 0.5); + + thing.moveTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + thing.lineTo(120 + Math.cos(count) * 20, -100 + Math.sin(count)* 20); + thing.lineTo(120 + Math.sin(count) * 20, 100 + Math.cos(count)* 20); + thing.lineTo(-120 + Math.cos(count)* 20, 100 + Math.sin(count)* 20); + thing.lineTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20); + + thing.rotation = count * 0.1; renderer.render(stage); requestAnimFrame( animate ); } diff --git a/examples/example 13 - Graphics/pixi.js b/examples/example 13 - Graphics/pixi.js index 25cca17..0391561 100644 --- a/examples/example 13 - Graphics/pixi.js +++ b/examples/example 13 - Graphics/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index 25cca17..0391561 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index 25cca17..0391561 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 4 - Balls/pixi.js b/examples/example 4 - Balls/pixi.js index 25cca17..0391561 100644 --- a/examples/example 4 - Balls/pixi.js +++ b/examples/example 4 - Balls/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 5 - Morph/pixi.js b/examples/example 5 - Morph/pixi.js index 25cca17..0391561 100644 --- a/examples/example 5 - Morph/pixi.js +++ b/examples/example 5 - Morph/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 6 - Interactivity/pixi.js b/examples/example 6 - Interactivity/pixi.js index 25cca17..0391561 100644 --- a/examples/example 6 - Interactivity/pixi.js +++ b/examples/example 6 - Interactivity/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 7 - Transparent Background/pixi.js b/examples/example 7 - Transparent Background/pixi.js index 25cca17..0391561 100644 --- a/examples/example 7 - Transparent Background/pixi.js +++ b/examples/example 7 - Transparent Background/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 8 - Dragging/pixi.js b/examples/example 8 - Dragging/pixi.js index 25cca17..0391561 100644 --- a/examples/example 8 - Dragging/pixi.js +++ b/examples/example 8 - Dragging/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/examples/example 9 - Tiling Texture/pixi.js b/examples/example 9 - Tiling Texture/pixi.js index 25cca17..0391561 100644 --- a/examples/example 9 - Tiling Texture/pixi.js +++ b/examples/example 9 - Tiling Texture/pixi.js @@ -2894,6 +2894,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics); diff --git a/src/pixi/renderers/webgl/WebGLGraphics.js b/src/pixi/renderers/webgl/WebGLGraphics.js index d84e407..872b798 100644 --- a/src/pixi/renderers/webgl/WebGLGraphics.js +++ b/src/pixi/renderers/webgl/WebGLGraphics.js @@ -32,6 +32,8 @@ graphics._webGL.lastIndex = 0; graphics._webGL.points = []; + graphics._webGL.indices = []; + } PIXI.WebGLGraphics.updateGraphics(graphics);