From e8863976573070fe72087a485b8431da6d012555 Mon Sep 17 00:00:00 2001 From: tw31120071857 <93863760+tw31120071857@users.noreply.github.com> Date: Tue, 30 May 2023 10:02:40 +1000 Subject: [PATCH] 1 1 --- angry-birds/.gitattributes | 17 + angry-birds/.gitignore | 47 + angry-birds/Licence.md | 21 + angry-birds/README.md | 13 + angry-birds/index.html | 21 + angry-birds/js/b2.js | 269 ++++++ angry-birds/js/box2d.js | 442 ++++++++++ angry-birds/js/cocos2d.js | 23 + angry-birds/js/cocos2dx.min.js | 1075 +++++++++++++++++++++++ angry-birds/js/game.js | 424 +++++++++ angry-birds/js/main.js | 31 + angry-birds/js/resources.js | 13 + angry-birds/sprites/CURSORS_SHEET_1.png | Bin 0 -> 5204 bytes angry-birds/sprites/bg.png | Bin 0 -> 32665 bytes angry-birds/sprites/bird.png | Bin 0 -> 5301 bytes angry-birds/sprites/enemy.png | Bin 0 -> 9417 bytes angry-birds/sprites/ground.png | Bin 0 -> 2951 bytes angry-birds/sprites/menu_back.png | Bin 0 -> 6358 bytes angry-birds/sprites/menu_refresh.png | Bin 0 -> 7928 bytes angry-birds/sprites/platform.png | Bin 0 -> 3335 bytes angry-birds/sprites/sling1.png | Bin 0 -> 8241 bytes angry-birds/sprites/sling2.png | Bin 0 -> 6642 bytes angry-birds/sprites/sling3.png | Bin 0 -> 2799 bytes angry-birds/sprites/smoke.png | Bin 0 -> 3082 bytes angry-birds/sprites/wood1.png | Bin 0 -> 5494 bytes angry-birds/sprites/wood2.png | Bin 0 -> 4236 bytes 26 files changed, 2396 insertions(+) create mode 100644 angry-birds/.gitattributes create mode 100644 angry-birds/.gitignore create mode 100644 angry-birds/Licence.md create mode 100644 angry-birds/README.md create mode 100644 angry-birds/index.html create mode 100644 angry-birds/js/b2.js create mode 100644 angry-birds/js/box2d.js create mode 100644 angry-birds/js/cocos2d.js create mode 100644 angry-birds/js/cocos2dx.min.js create mode 100644 angry-birds/js/game.js create mode 100644 angry-birds/js/main.js create mode 100644 angry-birds/js/resources.js create mode 100644 angry-birds/sprites/CURSORS_SHEET_1.png create mode 100644 angry-birds/sprites/bg.png create mode 100644 angry-birds/sprites/bird.png create mode 100644 angry-birds/sprites/enemy.png create mode 100644 angry-birds/sprites/ground.png create mode 100644 angry-birds/sprites/menu_back.png create mode 100644 angry-birds/sprites/menu_refresh.png create mode 100644 angry-birds/sprites/platform.png create mode 100644 angry-birds/sprites/sling1.png create mode 100644 angry-birds/sprites/sling2.png create mode 100644 angry-birds/sprites/sling3.png create mode 100644 angry-birds/sprites/smoke.png create mode 100644 angry-birds/sprites/wood1.png create mode 100644 angry-birds/sprites/wood2.png diff --git a/angry-birds/.gitattributes b/angry-birds/.gitattributes new file mode 100644 index 000000000..bdb0cabc8 --- /dev/null +++ b/angry-birds/.gitattributes @@ -0,0 +1,17 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/angry-birds/.gitignore b/angry-birds/.gitignore new file mode 100644 index 000000000..cd2946ad7 --- /dev/null +++ b/angry-birds/.gitignore @@ -0,0 +1,47 @@ +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# ========================= +# Operating System Files +# ========================= + +# OSX +# ========================= + +.DS_Store +.AppleDouble +.LSOverride + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk diff --git a/angry-birds/Licence.md b/angry-birds/Licence.md new file mode 100644 index 000000000..f7ba9dafb --- /dev/null +++ b/angry-birds/Licence.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 tonikolaba + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/angry-birds/README.md b/angry-birds/README.md new file mode 100644 index 000000000..a01780b2f --- /dev/null +++ b/angry-birds/README.md @@ -0,0 +1,13 @@ +# AngryBirds +------------------------------------------------- +Angry Birds :anger: :bird: Game using JavaScript. + +# Contributors + +#### Authors: + +* ![Mahdi7s](https://github.com/Mahdi7s) + +* ![tonikolaba](https://github.com/tonikolaba) + +![Alt text](https://github.com/tonikolaba/download/blob/master/info/artofsoullogoVOG.png?raw=true"ArtofSoul") diff --git a/angry-birds/index.html b/angry-birds/index.html new file mode 100644 index 000000000..cc9dc739e --- /dev/null +++ b/angry-birds/index.html @@ -0,0 +1,21 @@ + + + + + + Simple Angry Birds + + + + + + +

Use a better browser !

+
+ + diff --git a/angry-birds/js/b2.js b/angry-birds/js/b2.js new file mode 100644 index 000000000..7b32d1ea7 --- /dev/null +++ b/angry-birds/js/b2.js @@ -0,0 +1,269 @@ +// Author: www.mahdi7s.com + +var MathH = { + clamp: function (num, min, max) { + return Math.min(max, Math.max(num, min)); + } +}; + +var BodyUserData = function (objectRoll, fullHealth) { + var self = this, + currentHealth = fullHealth; + + this.isDead = false; + this.isContacted = false; + this.getObjectRoll = function () { + return objectRoll; + }; + this.getFullHealth = function () { + return fullHealth; + }; + this.getHealth = function () { + return self.currentHealth; + }; + this.damage = function (impulse) { + this.isDead = ((currentHealth -= impulse) <= 0); + }; +} + +var GameObjectRoll = { + Enemy: "ENEMY!", + Wood: "Wood!", + Bird: "BIRD!" +}; +Object.freeze(GameObjectRoll); // So it's like an enum + +var b2Body = Box2D.Dynamics.b2Body, + b2BodyDef = Box2D.Dynamics.b2BodyDef, + b2FixtureDef = Box2D.Dynamics.b2FixtureDef, + b2CircleShape = Box2D.Collision.Shapes.b2CircleShape, + b2EdgeChainDef = Box2D.Collision.Shapes.b2EdgeChainDef, + b2EdgeShape = Box2D.Collision.Shapes.b2EdgeShape, + b2MassData = Box2D.Collision.Shapes.b2MassData, + b2PolygonShape = Box2D.Collision.Shapes.b2PolygonShape, + b2Shape = Box2D.Collision.Shapes.b2Shape, + b2Color = Box2D.Common.b2Color, + b2internal = Box2D.Common.b2internal, + b2Settings = Box2D.Common.b2Settings, + b2Mat22 = Box2D.Common.Math.b2Mat22, + b2Mat33 = Box2D.Common.Math.b2Mat33, + b2Math = Box2D.Common.Math.b2Math, + b2Sweep = Box2D.Common.Math.b2Sweep, + b2Transform = Box2D.Common.Math.b2Transform, + b2Vec2 = Box2D.Common.Math.b2Vec2, + b2Vec3 = Box2D.Common.Math.b2Vec3, + b2AABB = Box2D.Collision.b2AABB, + b2Bound = Box2D.Collision.b2Bound, + b2BoundValues = Box2D.Collision.b2BoundValues, + b2Collision = Box2D.Collision.b2Collision, + b2ContactID = Box2D.Collision.b2ContactID, + b2ContactPoint = Box2D.Collision.b2ContactPoint, + b2ContactListener = Box2D.Dynamics.b2ContactListener, + b2Distance = Box2D.Collision.b2Distance, + b2DistanceInput = Box2D.Collision.b2DistanceInput, + b2DistanceOutput = Box2D.Collision.b2DistanceOutput, + b2DistanceProxy = Box2D.Collision.b2DistanceProxy, + b2DynamicTree = Box2D.Collision.b2DynamicTree, + b2DynamicTreeBroadPhase = Box2D.Collision.b2DynamicTreeBroadPhase, + b2DynamicTreeNode = Box2D.Collision.b2DynamicTreeNode, + b2DynamicTreePair = Box2D.Collision.b2DynamicTreePair, + b2DebugDraw = Box2D.Dynamics.b2DebugDraw, + b2Manifold = Box2D.Collision.b2Manifold, + b2ManifoldPoint = Box2D.Collision.b2ManifoldPoint, + b2Point = Box2D.Collision.b2Point, + b2RayCastInput = Box2D.Collision.b2RayCastInput, + b2RayCastOutput = Box2D.Collision.b2RayCastOutput, + b2Segment = Box2D.Collision.b2Segment, + b2SeparationFunction = Box2D.Collision.b2SeparationFunction, + b2Simplex = Box2D.Collision.b2Simplex, + b2SimplexCache = Box2D.Collision.b2SimplexCache, + b2SimplexVertex = Box2D.Collision.b2SimplexVertex, + b2TimeOfImpact = Box2D.Collision.b2TimeOfImpact, + b2TOIInput = Box2D.Collision.b2TOIInput, + b2World = Box2D.Dynamics.b2World, + b2WorldManifold = Box2D.Collision.b2WorldManifold, + ClipVertex = Box2D.Collision.ClipVertex, + Features = Box2D.Collision.Features, + IBroadPhase = Box2D.Collision.IBroadPhase; + +var b2 = (function () { + var self = this, + deadsCount = 0, + userScore = 0, + world, + enableDebugDraw = false, + bodies = [], + PTMRatio = 30.0, + toWorld = function (n) { + return n / PTMRatio; + }, + toScreen = function (n) { + return n * PTMRatio; + }, + b2AngleToCCRotation = function (n) { + return (-1 * cc.RADIANS_TO_DEGREES(n)); + }, + CCRotationToB2Angle = function (n) { + return cc.DEGREES_TO_RADIANS(-1 * n); + }; + + var contactListener = new b2ContactListener(); + contactListener.BeginContact = function (contact) { + var bodyA = contact.GetFixtureA() + .GetBody(), + bodyB = contact.GetFixtureB() + .GetBody(), + bAData = bodyA.GetUserData(), + bBData = bodyB.GetUserData(); + + var setContacted = function (data) { + data && (data.isContacted = true); + }; + + setContacted(bAData); + setContacted(bBData); + }; + contactListener.EndContact = function (contact) {}; + contactListener.PreSolve = function (contact, oldManifold) {}; + contactListener.PostSolve = function (contact, impulse) { + var bodyA = contact.GetFixtureA() + .GetBody(), + bodyB = contact.GetFixtureB() + .GetBody(), + bAData = bodyA.GetUserData(), + bBData = bodyB.GetUserData(); + + var imp0 = impulse.normalImpulses[0]; + if (imp0 <= 2) return; // prevent little impulses + + var damage = function (bodyData) { + if (!bodyData || (bodyData.getHealth() == bodyData.getFullHealth() && imp0 < 12)) return; + + var objRoll = bodyData.getObjectRoll(); + if (objRoll === GameObjectRoll.Enemy || objRoll === GameObjectRoll.Wood /**/ ) { + bodyData.damage(imp0); + } + }; + + damage(bAData); + damage(bBData); + }; + + return { + toWorld: function (n) { + return toWorld(n); + }, + toScreen: function (n) { + return toScreen(n); + }, + initWorld: function () { + deadsCount = userScore = 0; + world = new b2World(new b2Vec2(0, - 10), true); + world.SetContinuousPhysics(true); + world.SetContactListener(contactListener); + bodies = []; + }, + getUserScore: function () { + return userScore; + }, + enablePhysicsFor: function (desc) { + var bodyDef = new b2BodyDef(), + scale = { + x: desc.sprite.getScaleX(), + y: desc.sprite.getScaleY() + }, + anch = desc.sprite.getAnchorPointInPoints(), + anchPoint = cc.p(anch.x * scale.x, anch.y * scale.y), + position = desc.sprite.getPosition(), + contentSize = desc.sprite.getContentSize(), + size = { + width: contentSize.width * scale.x, + height: contentSize.height * scale.y + }, + center = cc.p(position.x - anchPoint.x + size.width / 2, position.y - anchPoint.y + size.height / 2); + + bodyDef.type = desc.type === "static" ? b2Body.b2_staticBody : desc.type === "dynamic" ? b2Body.b2_dynamicBody : b2Body.b2_kinematicBody; + + bodyDef.position.Set(toWorld(center.x), toWorld(center.y)); + bodyDef.angle = CCRotationToB2Angle(desc.sprite.getRotation()); + + var fixDef = new b2FixtureDef(); + switch (desc.shape) { + case "circle": + fixDef.shape = new b2CircleShape(toWorld(desc.radius || (size.height / 2))); + break; + case "box": + fixDef.shape = new b2PolygonShape(); + fixDef.shape.SetAsBox(toWorld(size.width) / 2, toWorld(size.height) / 2); + break; + } + + fixDef.density = desc.density || 1; + fixDef.friction = desc.friction || 0.5; + fixDef.restitution = desc.restitution || 0.1; + + var body = world.CreateBody(bodyDef); + body.CreateFixture(fixDef); + + desc.userData && body.SetUserData(desc.userData); + + body.sprite = desc.sprite; + desc.sprite.body = body; + + bodies.push(body); + }, + simulate: function () { + world.Step(1 / 60, // fixed time step + 10, // velocity iterations + 10); // position iterations + + enableDebugDraw && world.DrawDebugData(); + + for (var i = 0; i < bodies.length; i++) { + var body = bodies[i], + bodyData = body.GetUserData(), + bPos = body.GetPosition(), + bAngle = body.GetAngle(); + + if (bodyData && bodyData.isDead) { + world.DestroyBody(body); + + userScore = (++deadsCount) * 1000; + body.sprite.runAction(cc.FadeOut.create(0.5)); + body.SetUserData(null); + + continue; + } + + var scale = { + x: body.sprite.getScaleX(), + y: body.sprite.getScaleY() + }, + anch = body.sprite.getAnchorPointInPoints(), + anchPoint = cc.p(anch.x * scale.x, anch.y * scale.y), + position = body.sprite.getPosition(), + contentSize = body.sprite.getContentSize(), + size = { + width: contentSize.width * scale.x, + height: contentSize.height * scale.y + }; + + body.sprite.setPosition(cc.p(toScreen(bPos.x) + anchPoint.x - size.width / 2, toScreen(bPos.y) + anchPoint.y - size.height / 2)); + body.sprite.setRotation(b2AngleToCCRotation(bAngle)); + } + + world.ClearForces(); + }, + debugDraw: function (enable) { + if ((enableDebugDraw = enable)) { + var debugDraw = new b2DebugDraw(); + debugDraw.SetSprite(document.getElementsByTagName("canvas")[0].getContext("2d")); + debugDraw.SetDrawScale(PTMRatio); + debugDraw.SetFillAlpha(0.5); + debugDraw.SetLineThickness(1.0); + debugDraw.SetFlags(b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit); + world.SetDebugDraw(debugDraw); + } + } + }; +}()); \ No newline at end of file diff --git a/angry-birds/js/box2d.js b/angry-birds/js/box2d.js new file mode 100644 index 000000000..4adf24923 --- /dev/null +++ b/angry-birds/js/box2d.js @@ -0,0 +1,442 @@ +var Box2D={}; +(function(n,r){function p(){}!(Object.prototype.defineProperty instanceof Function)&&(Object.prototype.__defineGetter__ instanceof Function&&Object.prototype.__defineSetter__ instanceof Function)&&(Object.defineProperty=function(m,e,j){j.get instanceof Function&&m.__defineGetter__(e,j.get);j.set instanceof Function&&m.__defineSetter__(e,j.set)});n.inherit=function(m,e){p.prototype=e.prototype;m.prototype=new p;m.prototype.constructor=m};n.generateCallback=function(m,e){return function(){e.apply(m,arguments)}}; +n.NVector=function(m){m===r&&(m=0);for(var e=Array(m||0),j=0;jy&&(e=l,l=y,y=e,e=1),l>a&&(c.x=e,c.y=0,a=l),h=Math.min(h,y),a>h)return!1;if(uy&&(e=l,l=y,y=e,e=1),l>a&&(c.y=e,c.x=0,a=l),h=Math.min(h,y),a>h)return!1; +b.fraction=a;return!0};q.prototype.TestOverlap=function(b){var k=b.lowerBound.y-this.upperBound.y,a=this.lowerBound.y-b.upperBound.y;return 0=f&&b[v++].Set(k[0]);0>=g&&b[v++].Set(k[1]);0>f*g&&(a=f/(f-g),g=b[v],g=g.v,g.x=s.x+a*(d.x-s.x),g.y=s.y+a*(d.y-s.y),g=b[v],g.id=(0c&&(c=f,u=l);s=w.EdgeSeparation(k,a,u,h,g);f=parseInt(0<=u-1?u-1:v-1); +d=w.EdgeSeparation(k,a,f,h,g);var y=parseInt(u+1s&&d>c)m=-1,l=f,e=d;else if(c>s)m=1,l=y,e=c;else return b[0]=u,s;for(;;)if(u=-1==m?0<=l-1?l-1:v-1:l+1e)l=u,e=s;else break;b[0]=l;return e};w.FindIncidentEdge=function(b,k,a,h,g,v){void 0===h&&(h=0);parseInt(k.m_vertexCount);var s=k.m_normals,f=parseInt(g.m_vertexCount),k=g.m_vertices,g=g.m_normals,d;d=a.R;var a=s[h],s=d.col1.x*a.x+d.col2.x*a.y,u=d.col1.y* +a.x+d.col2.y*a.y;d=v.R;a=d.col1.x*s+d.col1.y*u;u=d.col2.x*s+d.col2.y*u;s=a;d=0;for(var y=Number.MAX_VALUE,c=0;cs)){var d;w.s_edgeBO[0]=0;var u=w.FindMaxSeparation(w.s_edgeBO,h,g,a,k);d=w.s_edgeBO[0];if(!(u>s)){var y=0,c=0;u>0.98*f+0.0010?(f=h,h=a,a=g,y=d,b.m_type= +B.e_faceB,c=1):(f=a,a=k,k=g,y=v,b.m_type=B.e_faceA,c=0);v=w.s_incidentEdge;w.FindIncidentEdge(v,f,a,y,h,k);d=parseInt(f.m_vertexCount);var g=f.m_vertices,f=g[y],l;l=y+1j)&&(j=w.ClipSegmentToLine(f,l,u,d),!(2>j))){b.m_localPlaneNormal.SetV(g);b.m_localPoint.SetV(h);for(h=g=0;hv*v||(b.m_type= +B.e_circles,b.m_localPoint.SetV(a.m_p),b.m_localPlaneNormal.SetZero(),b.m_pointCount=1,b.m_points[0].m_localPoint.SetV(g.m_p),b.m_points[0].m_id.key=0)};w.CollidePolygonAndCircle=function(b,a,k,h,g){var v=b.m_pointCount=0,d=0,f,s;s=g.R;f=h.m_p;var u=g.position.y+(s.col1.y*f.x+s.col2.y*f.y),v=g.position.x+(s.col1.x*f.x+s.col2.x*f.y)-k.position.x,d=u-k.position.y;s=k.R;k=v*s.col1.x+d*s.col1.y;s=v*s.col2.x+d*s.col2.y;for(var y=0,u=-Number.MAX_VALUE,g=a.m_radius+h.m_radius,c=parseInt(a.m_vertexCount), +l=a.m_vertices,a=a.m_normals,e=0;eg)return;v>u&&(u=v,y=e)}v=parseInt(y);d=parseInt(v+1=(k-f.x)*(l.x-f.x)+(s-f.y)*(l.y-f.y)?(k-f.x)*(k-f.x)+(s-f.y)*(s-f.y)>g*g||(b.m_pointCount= +1,b.m_type=B.e_faceA,b.m_localPlaneNormal.x=k-f.x,b.m_localPlaneNormal.y=s-f.y,b.m_localPlaneNormal.Normalize(),b.m_localPoint.SetV(f),b.m_points[0].m_localPoint.SetV(h.m_p),b.m_points[0].m_id.key=0):0>=u?(k-l.x)*(k-l.x)+(s-l.y)*(s-l.y)>g*g||(b.m_pointCount=1,b.m_type=B.e_faceA,b.m_localPlaneNormal.x=k-l.x,b.m_localPlaneNormal.y=s-l.y,b.m_localPlaneNormal.Normalize(),b.m_localPoint.SetV(l),b.m_points[0].m_localPoint.SetV(h.m_p),b.m_points[0].m_id.key=0):(y=0.5*(f.x+l.x),f=0.5*(f.y+l.y),u=(k-y)*a[v].x+ +(s-f)*a[v].y,u>g||(b.m_pointCount=1,b.m_type=B.e_faceA,b.m_localPlaneNormal.x=a[v].x,b.m_localPlaneNormal.y=a[v].y,b.m_localPlaneNormal.Normalize(),b.m_localPoint.Set(y,f),b.m_points[0].m_localPoint.SetV(h.m_p),b.m_points[0].m_id.key=0)))};w.TestOverlap=function(b,a){var k=a.lowerBound,g=b.upperBound,h=k.x-g.x,v=k.y-g.y,k=b.lowerBound,g=a.upperBound,f=k.y-g.y;return 0>8&255;this.features._incidentVertex=(this._key&16711680)>>16&255;this.features._flip=(this._key&4278190080)>>24&255}});t.b2ContactPoint=function(){this.position=new c;this.velocity=new c;this.normal=new c;this.id=new A};J.b2Distance=function(){};J.Distance=function(b,k,a){++J.b2_gjkCalls;var g=a.proxyA,h=a.proxyB,v=a.transformA, +f=a.transformB,d=J.s_simplex;d.ReadCache(k,g,v,h,f);var s=d.m_vertices,u=J.s_saveA,y=J.s_saveB,l=0;d.GetClosestPoint().LengthSquared();for(var z=0,j,q=0;20>q;){l=d.m_count;for(z=0;zk+h&&b.distance> +Number.MIN_VALUE?(b.distance-=k+h,a=e.SubtractVV(b.pointB,b.pointA),a.Normalize(),b.pointA.x+=k*a.x,b.pointA.y+=k*a.y,b.pointB.x-=h*a.x,b.pointB.y-=h*a.y):(j=new c,j.x=0.5*(b.pointA.x+b.pointB.x),j.y=0.5*(b.pointA.y+b.pointB.y),b.pointA.x=b.pointB.x=j.x,b.pointA.y=b.pointB.y=j.y,b.distance=0))};Box2D.postDefs.push(function(){Box2D.Collision.b2Distance.s_simplex=new h;Box2D.Collision.b2Distance.s_saveA=new Vector_a2j_Number(3);Box2D.Collision.b2Distance.s_saveB=new Vector_a2j_Number(3)});L.b2DistanceInput= +function(){};d.b2DistanceOutput=function(){this.pointA=new c;this.pointB=new c};z.b2DistanceProxy=function(){};z.prototype.Set=function(b){switch(b.GetType()){case p.e_circleShape:b=b instanceof n?b:null;this.m_vertices=new Vector(1,!0);this.m_vertices[0]=b.m_p;this.m_count=1;this.m_radius=b.m_radius;break;case p.e_polygonShape:b=b instanceof r?b:null;this.m_vertices=b.m_vertices;this.m_count=b.m_vertexCount;this.m_radius=b.m_radius;break;default:m.b2Assert(!1)}};z.prototype.GetSupport=function(b){for(var a= +0,k=this.m_vertices[0].x*b.x+this.m_vertices[0].y*b.y,g=1;gk&&(a=g,k=h)}return a};z.prototype.GetSupportVertex=function(b){for(var a=0,k=this.m_vertices[0].x*b.x+this.m_vertices[0].y*b.y,g=1;gk&&(a=g,k=h)}return this.m_vertices[a]};z.prototype.GetVertexCount=function(){return this.m_count};z.prototype.GetVertex=function(b){void 0===b&&(b=0);m.b2Assert(0<= +b&&b>g&1?k.child2:k.child1,g=g+1&31;++this.m_path;this.RemoveLeaf(k);this.InsertLeaf(k)}};l.prototype.GetFatAABB=function(b){return b.aabb};l.prototype.GetUserData=function(b){return b.userData};l.prototype.Query=function(b,k){if(null!=this.m_root){var a=new Vector,g=0;for(a[g++]=this.m_root;0=g?b:g;++k.m_pairCount;return!0},h)}for(a=k.m_moveBuffer.length=0;as){var y=h.x-this.p1.x,c=h.y-this.p1.y,h=y*a+c*d;if(0<=h&&h<=g*u&&(g=-v*c+f*y,-s*u<=g&&g<=u*(1+s)))return h/=u,g=Math.sqrt(a*a+d*d),b[0]=h,k.Set(a/g,d/g),!0}return!1};I.prototype.Extend=function(b){this.ExtendForward(b);this.ExtendBackward(b)};I.prototype.ExtendForward=function(b){var k=this.p2.x- +this.p1.x,a=this.p2.y-this.p1.y,b=Math.min(0k?(b.lowerBound.x-this.p1.x)/k:Number.POSITIVE_INFINITY,0a?(b.lowerBound.y-this.p1.y)/a:Number.POSITIVE_INFINITY);this.p2.x=this.p1.x+k*b;this.p2.y=this.p1.y+a*b};I.prototype.ExtendBackward=function(b){var k=-this.p2.x+this.p1.x,a=-this.p2.y+this.p1.y,b=Math.min(0k?(b.lowerBound.x-this.p2.x)/k:Number.POSITIVE_INFINITY,0 +a?(b.lowerBound.y-this.p2.y)/a:Number.POSITIVE_INFINITY);this.p1.x=this.p2.x+k*b;this.p1.y=this.p2.y+a*b};a.b2SeparationFunction=function(){this.m_localPoint=new c;this.m_axis=new c};a.prototype.Initialize=function(b,k,g,h,v){this.m_proxyA=k;this.m_proxyB=h;var f=parseInt(b.count);m.b2Assert(0f);var d,s,u,y,l=y=u=h=k=0,z=0,l=0;1==f?(this.m_type=a.e_points,d=this.m_proxyA.GetVertex(b.indexA[0]),s=this.m_proxyB.GetVertex(b.indexB[0]),f=d,b=g.R,k=g.position.x+(b.col1.x*f.x+b.col2.x*f.y),h=g.position.y+ +(b.col1.y*f.x+b.col2.y*f.y),f=s,b=v.R,u=v.position.x+(b.col1.x*f.x+b.col2.x*f.y),y=v.position.y+(b.col1.y*f.x+b.col2.y*f.y),this.m_axis.x=u-k,this.m_axis.y=y-h,this.m_axis.Normalize()):(b.indexB[0]==b.indexB[1]?(this.m_type=a.e_faceA,k=this.m_proxyA.GetVertex(b.indexA[0]),h=this.m_proxyA.GetVertex(b.indexA[1]),s=this.m_proxyB.GetVertex(b.indexB[0]),this.m_localPoint.x=0.5*(k.x+h.x),this.m_localPoint.y=0.5*(k.y+h.y),this.m_axis=e.CrossVF(e.SubtractVV(h,k),1),this.m_axis.Normalize(),f=this.m_axis,b= +g.R,l=b.col1.x*f.x+b.col2.x*f.y,z=b.col1.y*f.x+b.col2.y*f.y,f=this.m_localPoint,b=g.R,k=g.position.x+(b.col1.x*f.x+b.col2.x*f.y),h=g.position.y+(b.col1.y*f.x+b.col2.y*f.y),f=s,b=v.R,u=v.position.x+(b.col1.x*f.x+b.col2.x*f.y),y=v.position.y+(b.col1.y*f.x+b.col2.y*f.y),l=(u-k)*l+(y-h)*z):b.indexA[0]==b.indexA[0]?(this.m_type=a.e_faceB,u=this.m_proxyB.GetVertex(b.indexB[0]),y=this.m_proxyB.GetVertex(b.indexB[1]),d=this.m_proxyA.GetVertex(b.indexA[0]),this.m_localPoint.x=0.5*(u.x+y.x),this.m_localPoint.y= +0.5*(u.y+y.y),this.m_axis=e.CrossVF(e.SubtractVV(y,u),1),this.m_axis.Normalize(),f=this.m_axis,b=v.R,l=b.col1.x*f.x+b.col2.x*f.y,z=b.col1.y*f.x+b.col2.y*f.y,f=this.m_localPoint,b=v.R,u=v.position.x+(b.col1.x*f.x+b.col2.x*f.y),y=v.position.y+(b.col1.y*f.x+b.col2.y*f.y),f=d,b=g.R,k=g.position.x+(b.col1.x*f.x+b.col2.x*f.y),h=g.position.y+(b.col1.y*f.x+b.col2.y*f.y),l=(k-u)*l+(h-y)*z):(k=this.m_proxyA.GetVertex(b.indexA[0]),h=this.m_proxyA.GetVertex(b.indexA[1]),u=this.m_proxyB.GetVertex(b.indexB[0]), +y=this.m_proxyB.GetVertex(b.indexB[1]),e.MulX(g,d),d=e.MulMV(g.R,e.SubtractVV(h,k)),e.MulX(v,s),l=e.MulMV(v.R,e.SubtractVV(y,u)),v=d.x*d.x+d.y*d.y,s=l.x*l.x+l.y*l.y,b=e.SubtractVV(l,d),g=d.x*b.x+d.y*b.y,b=l.x*b.x+l.y*b.y,d=d.x*l.x+d.y*l.y,z=v*s-d*d,l=0,0!=z&&(l=e.Clamp((d*b-g*s)/z,0,1)),0>(d*l+b)/s&&(l=e.Clamp((d-g)/v,0,1)),d=new c,d.x=k.x+l*(h.x-k.x),d.y=k.y+l*(h.y-k.y),s=new c,s.x=u.x+l*(y.x-u.x),s.y=u.y+l*(y.y-u.y),0==l||1==l?(this.m_type=a.e_faceB,this.m_axis=e.CrossVF(e.SubtractVV(y,u),1),this.m_axis.Normalize(), +this.m_localPoint=s):(this.m_type=a.e_faceA,this.m_axis=e.CrossVF(e.SubtractVV(h,k),1),this.m_localPoint=d)),0>l&&this.m_axis.NegativeSelf())};a.prototype.Evaluate=function(b,k){var g,h,v=0;switch(this.m_type){case a.e_points:return g=e.MulTMV(b.R,this.m_axis),h=e.MulTMV(k.R,this.m_axis.GetNegative()),g=this.m_proxyA.GetSupportVertex(g),h=this.m_proxyB.GetSupportVertex(h),g=e.MulX(b,g),h=e.MulX(k,h),v=(h.x-g.x)*this.m_axis.x+(h.y-g.y)*this.m_axis.y;case a.e_faceA:return v=e.MulMV(b.R,this.m_axis), +g=e.MulX(b,this.m_localPoint),h=e.MulTMV(k.R,v.GetNegative()),h=this.m_proxyB.GetSupportVertex(h),h=e.MulX(k,h),v=(h.x-g.x)*v.x+(h.y-g.y)*v.y;case a.e_faceB:return v=e.MulMV(k.R,this.m_axis),h=e.MulX(k,this.m_localPoint),g=e.MulTMV(b.R,v.GetNegative()),g=this.m_proxyA.GetSupportVertex(g),g=e.MulX(b,g),v=(g.x-h.x)*v.x+(g.y-h.y)*v.y;default:return m.b2Assert(!1),0}};Box2D.postDefs.push(function(){Box2D.Collision.b2SeparationFunction.e_points=1;Box2D.Collision.b2SeparationFunction.e_faceA=2;Box2D.Collision.b2SeparationFunction.e_faceB= +4});h.b2Simplex=function(){this.m_v1=new g;this.m_v2=new g;this.m_v3=new g;this.m_vertices=new Vector(3)};h.prototype.b2Simplex=function(){this.m_vertices[0]=this.m_v1;this.m_vertices[1]=this.m_v2;this.m_vertices[2]=this.m_v3};h.prototype.ReadCache=function(b,k,a,g,h){m.b2Assert(0<=b.count&&3>=b.count);var v,f;this.m_count=b.count;for(var d=this.m_vertices,s=0;s=b?this.m_count=this.m_v1.a=1:(k=k.x*a.x+k.y*a.y,0>=k?(this.m_count=this.m_v2.a=1,this.m_v1.Set(this.m_v2)):(a=1/(k+b),this.m_v1.a=k*a,this.m_v2.a=b*a,this.m_count=2))};h.prototype.Solve3=function(){var b=this.m_v1.w,k=this.m_v2.w,a=this.m_v3.w,g=e.SubtractVV(k,b),h=e.Dot(b,g),v=e.Dot(k,g),h=-h,f=e.SubtractVV(a,b),d=e.Dot(b,f),s=e.Dot(a,f),d=-d,u=e.SubtractVV(a,k),y=e.Dot(k,u),u=e.Dot(a,u),y=-y,f=e.CrossVV(g,f), +g=f*e.CrossVV(k,a),a=f*e.CrossVV(a,b),b=f*e.CrossVV(b,k);0>=h&&0>=d?this.m_count=this.m_v1.a=1:0=b?(s=1/(v+h),this.m_v1.a=v*s,this.m_v2.a=h*s,this.m_count=2):0=a?(v=1/(s+d),this.m_v1.a=s*v,this.m_v3.a=d*v,this.m_count=2,this.m_v2.Set(this.m_v3)):0>=v&&0>=y?(this.m_count=this.m_v2.a=1,this.m_v1.Set(this.m_v2)):0>=s&&0>=u?(this.m_count=this.m_v3.a=1,this.m_v1.Set(this.m_v3)):0=g?(v=1/(u+y),this.m_v2.a=u*v,this.m_v3.a=y*v,this.m_count=2,this.m_v1.Set(this.m_v3)):(v=1/ +(g+a+b),this.m_v1.a=g*v,this.m_v2.a=a*v,this.m_v3.a=b*v,this.m_count=3)};s.b2SimplexCache=function(){this.indexA=new Vector_a2j_Number(3);this.indexB=new Vector_a2j_Number(3)};g.b2SimplexVertex=function(){};g.prototype.Set=function(b){this.wA.SetV(b.wA);this.wB.SetV(b.wB);this.w.SetV(b.w);this.a=b.a;this.indexA=b.indexA;this.indexB=b.indexB};u.b2TimeOfImpact=function(){};u.TimeOfImpact=function(b){++u.b2_toiCalls;var k=b.proxyA,a=b.proxyB,g=b.sweepA,h=b.sweepB;m.b2Assert(g.t0==h.t0);m.b2Assert(1- +g.t0>Number.MIN_VALUE);var v=k.m_radius+a.m_radius,b=b.tolerance,f=0,d=0,s=0;u.s_cache.count=0;for(u.s_distanceInput.useRadii=!1;;){g.GetTransform(u.s_xfA,f);h.GetTransform(u.s_xfB,f);u.s_distanceInput.proxyA=k;u.s_distanceInput.proxyB=a;u.s_distanceInput.transformA=u.s_xfA;u.s_distanceInput.transformB=u.s_xfB;J.Distance(u.s_distanceOutput,u.s_cache,u.s_distanceInput);if(0>=u.s_distanceOutput.distance){f=1;break}u.s_fcn.Initialize(u.s_cache,k,u.s_xfA,a,u.s_xfB);var y=u.s_fcn.Evaluate(u.s_xfA,u.s_xfB); +if(0>=y){f=1;break}0==d&&(s=y>v?e.Max(v-b,0.75*v):e.Max(y-b,0.02*v));if(y-s<0.5*b){if(0==d){f=1;break}break}var c=f,l=f,z=1;g.GetTransform(u.s_xfA,z);h.GetTransform(u.s_xfB,z);var j=u.s_fcn.Evaluate(u.s_xfA,u.s_xfB);if(j>=s){f=1;break}for(var q=0;;){var C=0,C=q&1?l+(s-y)*(z-l)/(j-y):0.5*(l+z);g.GetTransform(u.s_xfA,C);h.GetTransform(u.s_xfB,C);var B=u.s_fcn.Evaluate(u.s_xfA,u.s_xfB);if(e.Abs(B-s)<0.025*b){c=C;break}B>s?(l=C,y=B):(z=C,j=B);++q;++u.b2_toiRootIters;if(50==q)break}u.b2_toiMaxRootIters= +e.Max(u.b2_toiMaxRootIters,q);if(c<(1+100*Number.MIN_VALUE)*f)break;f=c;d++;++u.b2_toiIters;if(1E3==d)break}u.b2_toiMaxIters=e.Max(u.b2_toiMaxIters,d);return f};Box2D.postDefs.push(function(){Box2D.Collision.b2TimeOfImpact.b2_toiCalls=0;Box2D.Collision.b2TimeOfImpact.b2_toiIters=0;Box2D.Collision.b2TimeOfImpact.b2_toiMaxIters=0;Box2D.Collision.b2TimeOfImpact.b2_toiRootIters=0;Box2D.Collision.b2TimeOfImpact.b2_toiMaxRootIters=0;Box2D.Collision.b2TimeOfImpact.s_cache=new s;Box2D.Collision.b2TimeOfImpact.s_distanceInput= +new L;Box2D.Collision.b2TimeOfImpact.s_xfA=new x;Box2D.Collision.b2TimeOfImpact.s_xfB=new x;Box2D.Collision.b2TimeOfImpact.s_fcn=new a;Box2D.Collision.b2TimeOfImpact.s_distanceOutput=new d});y.b2TOIInput=function(){this.proxyA=new z;this.proxyB=new z;this.sweepA=new j;this.sweepB=new j};f.b2WorldManifold=function(){this.m_normal=new c};f.prototype.b2WorldManifold=function(){this.m_points=new Vector(m.b2_maxManifoldPoints);for(var b=0;bNumber.MIN_VALUE*Number.MIN_VALUE?(s=Math.sqrt(s),this.m_normal.x=f/s,this.m_normal.y=d/s):(this.m_normal.x= +1,this.m_normal.y=0);f=k+a*this.m_normal.y;g-=h*this.m_normal.y;this.m_points[0].x=0.5*(v+a*this.m_normal.x+(b-h*this.m_normal.x));this.m_points[0].y=0.5*(f+g);break;case B.e_faceA:d=k.R;f=b.m_localPlaneNormal;s=d.col1.x*f.x+d.col2.x*f.y;u=d.col1.y*f.x+d.col2.y*f.y;d=k.R;f=b.m_localPoint;y=k.position.x+d.col1.x*f.x+d.col2.x*f.y;c=k.position.y+d.col1.y*f.x+d.col2.y*f.y;this.m_normal.x=s;this.m_normal.y=u;for(v=0;vt||nthis.m_radius)return e.SetV(l),Math.PI*this.m_radius*this.m_radius;var c=this.m_radius*this.m_radius,m=j*j,j=c*(Math.asin(j/this.m_radius)+Math.PI/2)+j*Math.sqrt(c-m),c=-2/3*Math.pow(c-m,1.5)/j;e.x=l.x+d.x*c;e.y=l.y+d.y*c;return j};r.prototype.GetLocalPosition=function(){return this.m_p}; +r.prototype.SetLocalPosition=function(d){this.m_p.SetV(d)};r.prototype.GetRadius=function(){return this.m_radius};r.prototype.SetRadius=function(d){void 0===d&&(d=0);this.m_radius=d};r.prototype.b2CircleShape=function(d){void 0===d&&(d=0);this.__super.b2Shape.call(this);this.m_type=x.e_circleShape;this.m_radius=d};p.b2EdgeChainDef=function(){};p.prototype.b2EdgeChainDef=function(){this.vertexCount=0;this.isALoop=!0;this.vertices=[]};Box2D.inherit(m,Box2D.Collision.Shapes.b2Shape);m.prototype.__super= +Box2D.Collision.Shapes.b2Shape.prototype;m.b2EdgeShape=function(){Box2D.Collision.Shapes.b2Shape.b2Shape.apply(this,arguments);this.s_supportVec=new D;this.m_v1=new D;this.m_v2=new D;this.m_coreV1=new D;this.m_coreV2=new D;this.m_normal=new D;this.m_direction=new D;this.m_cornerDir1=new D;this.m_cornerDir2=new D};m.prototype.TestPoint=function(){return!1};m.prototype.RayCast=function(d,c,l){var e,j=c.p2.x-c.p1.x,m=c.p2.y-c.p1.y;e=l.R;var q=l.position.x+(e.col1.x*this.m_v1.x+e.col2.x*this.m_v1.y), +n=l.position.y+(e.col1.y*this.m_v1.x+e.col2.y*this.m_v1.y),t=l.position.y+(e.col1.y*this.m_v2.x+e.col2.y*this.m_v2.y)-n,l=-(l.position.x+(e.col1.x*this.m_v2.x+e.col2.x*this.m_v2.y)-q);e=100*Number.MIN_VALUE;var r=-(j*t+m*l);if(r>e){var q=c.p1.x-q,p=c.p1.y-n,n=q*t+p*l;if(0<=n&&n<=c.maxFraction*r&&(c=-j*p+m*q,-e*r<=c&&c<=r*(1+e)))return d.fraction=n/r,c=Math.sqrt(t*t+l*l),d.normal.x=t/c,d.normal.y=l/c,!0}return!1};m.prototype.ComputeAABB=function(d,c){var l=c.R,e=c.position.x+(l.col1.x*this.m_v1.x+ +l.col2.x*this.m_v1.y),j=c.position.y+(l.col1.y*this.m_v1.x+l.col2.y*this.m_v1.y),q=c.position.x+(l.col1.x*this.m_v2.x+l.col2.x*this.m_v2.y),l=c.position.y+(l.col1.y*this.m_v2.x+l.col2.y*this.m_v2.y);eq*c+d*l?(this.s_supportVec.x=j,this.s_supportVec.y=m):(this.s_supportVec.x=q,this.s_supportVec.y=d);return this.s_supportVec};m.prototype.b2EdgeShape=function(d,c){this.__super.b2Shape.call(this);this.m_type=x.e_edgeShape;this.m_nextEdge=this.m_prevEdge=null;this.m_v1=d;this.m_v2=c;this.m_direction.Set(this.m_v2.x-this.m_v1.x,this.m_v2.y-this.m_v1.y);this.m_length= +this.m_direction.Normalize();this.m_normal.Set(this.m_direction.y,-this.m_direction.x);this.m_coreV1.Set(-n.b2_toiSlop*(this.m_normal.x-this.m_direction.x)+this.m_v1.x,-n.b2_toiSlop*(this.m_normal.y-this.m_direction.y)+this.m_v1.y);this.m_coreV2.Set(-n.b2_toiSlop*(this.m_normal.x+this.m_direction.x)+this.m_v2.x,-n.b2_toiSlop*(this.m_normal.y+this.m_direction.y)+this.m_v2.y);this.m_cornerDir1=this.m_normal;this.m_cornerDir2.Set(-this.m_normal.x,-this.m_normal.y)};m.prototype.SetPrevEdge=function(d, +c,l,e){this.m_prevEdge=d;this.m_coreV1=c;this.m_cornerDir1=l;this.m_cornerConvex1=e};m.prototype.SetNextEdge=function(d,c,l,e){this.m_nextEdge=d;this.m_coreV2=c;this.m_cornerDir2=l;this.m_cornerConvex2=e};e.b2MassData=function(){this.mass=0;this.center=new D(0,0);this.I=0};Box2D.inherit(j,Box2D.Collision.Shapes.b2Shape);j.prototype.__super=Box2D.Collision.Shapes.b2Shape.prototype;j.b2PolygonShape=function(){Box2D.Collision.Shapes.b2Shape.b2Shape.apply(this,arguments)};j.prototype.Copy=function(){var d= +new j;d.Set(this);return d};j.prototype.Set=function(d){this.__super.Set.call(this,d);if(Box2D.is(d,j)){d=d instanceof j?d:null;this.m_centroid.SetV(d.m_centroid);this.m_vertexCount=d.m_vertexCount;this.Reserve(this.m_vertexCount);for(var c=0;cNumber.MIN_VALUE);this.m_normals[l].SetV(q.CrossVF(e, +1));this.m_normals[l].Normalize()}this.m_centroid=j.ComputeCentroid(this.m_vertices,this.m_vertexCount)};j.AsVector=function(d,c){void 0===c&&(c=0);var l=new j;l.SetAsVector(d,c);return l};j.prototype.SetAsBox=function(d,c){void 0===d&&(d=0);void 0===c&&(c=0);this.m_vertexCount=4;this.Reserve(4);this.m_vertices[0].Set(-d,-c);this.m_vertices[1].Set(d,-c);this.m_vertices[2].Set(d,c);this.m_vertices[3].Set(-d,c);this.m_normals[0].Set(0,-1);this.m_normals[1].Set(1,0);this.m_normals[2].Set(0,1);this.m_normals[3].Set(-1, +0);this.m_centroid.SetZero()};j.AsBox=function(d,c){void 0===d&&(d=0);void 0===c&&(c=0);var l=new j;l.SetAsBox(d,c);return l};j.prototype.SetAsOrientedBox=function(d,c,l,e){void 0===d&&(d=0);void 0===c&&(c=0);void 0===l&&(l=null);void 0===e&&(e=0);this.m_vertexCount=4;this.Reserve(4);this.m_vertices[0].Set(-d,-c);this.m_vertices[1].Set(d,-c);this.m_vertices[2].Set(d,c);this.m_vertices[3].Set(-d,c);this.m_normals[0].Set(0,-1);this.m_normals[1].Set(1,0);this.m_normals[2].Set(0,1);this.m_normals[3].Set(-1, +0);this.m_centroid=l;d=new K;d.position=l;d.R.Set(e);for(l=0;lm)return!1}else 0>q&&mr?q:r,n=n>e?n:e;d.lowerBound.x=j-this.m_radius; +d.lowerBound.y=m-this.m_radius;d.upperBound.x=q+this.m_radius;d.upperBound.y=n+this.m_radius};j.prototype.ComputeMass=function(d,c){void 0===c&&(c=0);if(2==this.m_vertexCount)d.center.x=0.5*(this.m_vertices[0].x+this.m_vertices[1].x),d.center.y=0.5*(this.m_vertices[0].y+this.m_vertices[1].y),d.mass=0,d.I=0;else{for(var e=0,j=0,m=0,q=0,n=1/3,t=0;te&&(c=j,e=m)}return c};j.prototype.GetSupportVertex=function(d){for(var c=0,e=this.m_vertices[0].x*d.x+this.m_vertices[0].y*d.y,j=1;je&&(c=j,e=m)}return this.m_vertices[c]};j.prototype.Validate=function(){return!1};j.prototype.b2PolygonShape=function(){this.__super.b2Shape.call(this);this.m_type=x.e_polygonShape;this.m_centroid=new D;this.m_vertices=new Vector;this.m_normals= +new Vector};j.prototype.Reserve=function(d){void 0===d&&(d=0);for(var c=parseInt(this.m_vertices.length);ca&&(a=y);g>h&&(h=g)}s=(a-r)*(h-w);s<0.95*c&&(c=s,d.R.col1.x=n,d.R.col1.y=t,d.R.col2.x=p,d.R.col2.y=A,n=0.5*(r+a),t=0.5*(w+h),p=d.R,d.center.x=q.x+(p.col1.x*n+p.col2.x*t),d.center.y=q.y+(p.col1.y*n+p.col2.y* +t),d.extents.x=0.5*(a-r),d.extents.y=0.5*(h-w))}};Box2D.postDefs.push(function(){Box2D.Collision.Shapes.b2PolygonShape.s_mat=new c});x.b2Shape=function(){};x.prototype.Copy=function(){return null};x.prototype.Set=function(d){this.m_radius=d.m_radius};x.prototype.GetType=function(){return this.m_type};x.prototype.TestPoint=function(){return!1};x.prototype.RayCast=function(){return!1};x.prototype.ComputeAABB=function(){};x.prototype.ComputeMass=function(){};x.prototype.ComputeSubmergedArea=function(){return 0}; +x.TestOverlap=function(d,c,e,j){var m=new A;m.proxyA=new J;m.proxyA.Set(d);m.proxyB=new J;m.proxyB.Set(e);m.transformA=c;m.transformB=j;m.useRadii=!0;d=new L;d.count=0;c=new t;w.Distance(c,d,m);return c.distance<10*Number.MIN_VALUE};x.prototype.b2Shape=function(){this.m_type=x.e_unknownShape;this.m_radius=n.b2_linearSlop};Box2D.postDefs.push(function(){Box2D.Collision.Shapes.b2Shape.e_unknownShape=-1;Box2D.Collision.Shapes.b2Shape.e_circleShape=0;Box2D.Collision.Shapes.b2Shape.e_polygonShape=1;Box2D.Collision.Shapes.b2Shape.e_edgeShape= +2;Box2D.Collision.Shapes.b2Shape.e_shapeTypeCount=3;Box2D.Collision.Shapes.b2Shape.e_hitCollide=1;Box2D.Collision.Shapes.b2Shape.e_missCollide=0;Box2D.Collision.Shapes.b2Shape.e_startsInsideCollide=-1})})(); +(function(){var n=Box2D.Common.b2Color,r=Box2D.Common.b2Settings,p=Box2D.Common.Math.b2Math;n.b2Color=function(){this._b=this._g=this._r=0};n.prototype.b2Color=function(m,e,j){void 0===m&&(m=0);void 0===e&&(e=0);void 0===j&&(j=0);this._r=Box2D.parseUInt(255*p.Clamp(m,0,1));this._g=Box2D.parseUInt(255*p.Clamp(e,0,1));this._b=Box2D.parseUInt(255*p.Clamp(j,0,1))};n.prototype.Set=function(m,e,j){void 0===m&&(m=0);void 0===e&&(e=0);void 0===j&&(j=0);this._r=Box2D.parseUInt(255*p.Clamp(m,0,1));this._g= +Box2D.parseUInt(255*p.Clamp(e,0,1));this._b=Box2D.parseUInt(255*p.Clamp(j,0,1))};Object.defineProperty(n.prototype,"r",{enumerable:!1,configurable:!0,set:function(m){void 0===m&&(m=0);this._r=Box2D.parseUInt(255*p.Clamp(m,0,1))}});Object.defineProperty(n.prototype,"g",{enumerable:!1,configurable:!0,set:function(m){void 0===m&&(m=0);this._g=Box2D.parseUInt(255*p.Clamp(m,0,1))}});Object.defineProperty(n.prototype,"b",{enumerable:!1,configurable:!0,set:function(m){void 0===m&&(m=0);this._b=Box2D.parseUInt(255* +p.Clamp(m,0,1))}});Object.defineProperty(n.prototype,"color",{enumerable:!1,configurable:!0,get:function(){return this._r<<16|this._g<<8|this._b}});r.b2Settings=function(){};r.b2MixFriction=function(m,e){void 0===m&&(m=0);void 0===e&&(e=0);return Math.sqrt(m*e)};r.b2MixRestitution=function(m,e){void 0===m&&(m=0);void 0===e&&(e=0);return m>e?m:e};r.b2Assert=function(m){if(!m)throw"Assertion Failed";};Box2D.postDefs.push(function(){Box2D.Common.b2Settings.VERSION="2.1alpha";Box2D.Common.b2Settings.USHRT_MAX= +65535;Box2D.Common.b2Settings.b2_pi=Math.PI;Box2D.Common.b2Settings.b2_maxManifoldPoints=2;Box2D.Common.b2Settings.b2_aabbExtension=0.1;Box2D.Common.b2Settings.b2_aabbMultiplier=2;Box2D.Common.b2Settings.b2_polygonRadius=2*r.b2_linearSlop;Box2D.Common.b2Settings.b2_linearSlop=0.0050;Box2D.Common.b2Settings.b2_angularSlop=2/180*r.b2_pi;Box2D.Common.b2Settings.b2_toiSlop=8*r.b2_linearSlop;Box2D.Common.b2Settings.b2_maxTOIContactsPerIsland=32;Box2D.Common.b2Settings.b2_maxTOIJointsPerIsland=32;Box2D.Common.b2Settings.b2_velocityThreshold= +1;Box2D.Common.b2Settings.b2_maxLinearCorrection=0.2;Box2D.Common.b2Settings.b2_maxAngularCorrection=8/180*r.b2_pi;Box2D.Common.b2Settings.b2_maxTranslation=2;Box2D.Common.b2Settings.b2_maxTranslationSquared=r.b2_maxTranslation*r.b2_maxTranslation;Box2D.Common.b2Settings.b2_maxRotation=0.5*r.b2_pi;Box2D.Common.b2Settings.b2_maxRotationSquared=r.b2_maxRotation*r.b2_maxRotation;Box2D.Common.b2Settings.b2_contactBaumgarte=0.2;Box2D.Common.b2Settings.b2_timeToSleep=0.5;Box2D.Common.b2Settings.b2_linearSleepTolerance= +0.01;Box2D.Common.b2Settings.b2_angularSleepTolerance=2/180*r.b2_pi})})(); +(function(){var n=Box2D.Common.Math.b2Mat22,r=Box2D.Common.Math.b2Mat33,p=Box2D.Common.Math.b2Math,m=Box2D.Common.Math.b2Sweep,e=Box2D.Common.Math.b2Transform,j=Box2D.Common.Math.b2Vec2,x=Box2D.Common.Math.b2Vec3;n.b2Mat22=function(){this.col1=new j;this.col2=new j};n.prototype.b2Mat22=function(){this.SetIdentity()};n.FromAngle=function(c){void 0===c&&(c=0);var e=new n;e.Set(c);return e};n.FromVV=function(c,e){var j=new n;j.SetVV(c,e);return j};n.prototype.Set=function(c){void 0===c&&(c=0);var e= +Math.cos(c),c=Math.sin(c);this.col1.x=e;this.col2.x=-c;this.col1.y=c;this.col2.y=e};n.prototype.SetVV=function(c,e){this.col1.SetV(c);this.col2.SetV(e)};n.prototype.Copy=function(){var c=new n;c.SetM(this);return c};n.prototype.SetM=function(c){this.col1.SetV(c.col1);this.col2.SetV(c.col2)};n.prototype.AddM=function(c){this.col1.x+=c.col1.x;this.col1.y+=c.col1.y;this.col2.x+=c.col2.x;this.col2.y+=c.col2.y};n.prototype.SetIdentity=function(){this.col1.x=1;this.col2.x=0;this.col1.y=0;this.col2.y=1}; +n.prototype.SetZero=function(){this.col1.x=0;this.col2.x=0;this.col1.y=0;this.col2.y=0};n.prototype.GetAngle=function(){return Math.atan2(this.col1.y,this.col1.x)};n.prototype.GetInverse=function(c){var e=this.col1.x,j=this.col2.x,m=this.col1.y,n=this.col2.y,r=e*n-j*m;0!=r&&(r=1/r);c.col1.x=r*n;c.col2.x=-r*j;c.col1.y=-r*m;c.col2.y=r*e;return c};n.prototype.Solve=function(c,e,j){void 0===e&&(e=0);void 0===j&&(j=0);var m=this.col1.x,n=this.col2.x,r=this.col1.y,t=this.col2.y,p=m*t-n*r;0!=p&&(p=1/p); +c.x=p*(t*e-n*j);c.y=p*(m*j-r*e);return c};n.prototype.Abs=function(){this.col1.Abs();this.col2.Abs()};r.b2Mat33=function(){this.col1=new x;this.col2=new x;this.col3=new x};r.prototype.b2Mat33=function(c,e,j){void 0===c&&(c=null);void 0===e&&(e=null);void 0===j&&(j=null);!c&&!e&&!j?(this.col1.SetZero(),this.col2.SetZero(),this.col3.SetZero()):(this.col1.SetV(c),this.col2.SetV(e),this.col3.SetV(j))};r.prototype.SetVVV=function(c,e,j){this.col1.SetV(c);this.col2.SetV(e);this.col3.SetV(j)};r.prototype.Copy= +function(){return new r(this.col1,this.col2,this.col3)};r.prototype.SetM=function(c){this.col1.SetV(c.col1);this.col2.SetV(c.col2);this.col3.SetV(c.col3)};r.prototype.AddM=function(c){this.col1.x+=c.col1.x;this.col1.y+=c.col1.y;this.col1.z+=c.col1.z;this.col2.x+=c.col2.x;this.col2.y+=c.col2.y;this.col2.z+=c.col2.z;this.col3.x+=c.col3.x;this.col3.y+=c.col3.y;this.col3.z+=c.col3.z};r.prototype.SetIdentity=function(){this.col1.x=1;this.col2.x=0;this.col3.x=0;this.col1.y=0;this.col2.y=1;this.col3.y=0; +this.col1.z=0;this.col2.z=0;this.col3.z=1};r.prototype.SetZero=function(){this.col1.x=0;this.col2.x=0;this.col3.x=0;this.col1.y=0;this.col2.y=0;this.col3.y=0;this.col1.z=0;this.col2.z=0;this.col3.z=0};r.prototype.Solve22=function(c,e,j){void 0===e&&(e=0);void 0===j&&(j=0);var m=this.col1.x,n=this.col2.x,r=this.col1.y,t=this.col2.y,p=m*t-n*r;0!=p&&(p=1/p);c.x=p*(t*e-n*j);c.y=p*(m*j-r*e);return c};r.prototype.Solve33=function(c,e,j,m){void 0===e&&(e=0);void 0===j&&(j=0);void 0===m&&(m=0);var n=this.col1.x, +r=this.col1.y,t=this.col1.z,p=this.col2.x,x=this.col2.y,d=this.col2.z,z=this.col3.x,l=this.col3.y,C=this.col3.z,F=n*(x*C-d*l)+r*(d*z-p*C)+t*(p*l-x*z);0!=F&&(F=1/F);c.x=F*(e*(x*C-d*l)+j*(d*z-p*C)+m*(p*l-x*z));c.y=F*(n*(j*C-m*l)+r*(m*z-e*C)+t*(e*l-j*z));c.z=F*(n*(x*m-d*j)+r*(d*e-p*m)+t*(p*j-x*e));return c};p.b2Math=function(){};p.IsValid=function(c){void 0===c&&(c=0);return isFinite(c)};p.Dot=function(c,e){return c.x*e.x+c.y*e.y};p.CrossVV=function(c,e){return c.x*e.y-c.y*e.x};p.CrossVF=function(c, +e){void 0===e&&(e=0);return new j(e*c.y,-e*c.x)};p.CrossFV=function(c,e){void 0===c&&(c=0);return new j(-c*e.y,c*e.x)};p.MulMV=function(c,e){return new j(c.col1.x*e.x+c.col2.x*e.y,c.col1.y*e.x+c.col2.y*e.y)};p.MulTMV=function(c,e){return new j(p.Dot(e,c.col1),p.Dot(e,c.col2))};p.MulX=function(c,e){var j=p.MulMV(c.R,e);j.x+=c.position.x;j.y+=c.position.y;return j};p.MulXT=function(c,e){var j=p.SubtractVV(e,c.position),m=j.x*c.R.col1.x+j.y*c.R.col1.y;j.y=j.x*c.R.col2.x+j.y*c.R.col2.y;j.x=m;return j}; +p.AddVV=function(c,e){return new j(c.x+e.x,c.y+e.y)};p.SubtractVV=function(c,e){return new j(c.x-e.x,c.y-e.y)};p.Distance=function(c,e){var j=c.x-e.x,m=c.y-e.y;return Math.sqrt(j*j+m*m)};p.DistanceSquared=function(c,e){var j=c.x-e.x,m=c.y-e.y;return j*j+m*m};p.MulFV=function(c,e){void 0===c&&(c=0);return new j(c*e.x,c*e.y)};p.AddMM=function(c,e){return n.FromVV(p.AddVV(c.col1,e.col1),p.AddVV(c.col2,e.col2))};p.MulMM=function(c,e){return n.FromVV(p.MulMV(c,e.col1),p.MulMV(c,e.col2))};p.MulTMM=function(c, +e){var m=new j(p.Dot(c.col1,e.col1),p.Dot(c.col2,e.col1)),r=new j(p.Dot(c.col1,e.col2),p.Dot(c.col2,e.col2));return n.FromVV(m,r)};p.Abs=function(c){void 0===c&&(c=0);return 0e?c:e};p.MaxV=function(c,e){return new j(p.Max(c.x,e.x),p.Max(c.y,e.y))};p.Clamp=function(c,e,j){void 0===c&&(c=0);void 0===e&&(e=0);void 0===j&&(j=0);return cj?j:c};p.ClampV=function(c,e,j){return p.MaxV(e,p.MinV(c,j))};p.Swap=function(c,e){var j=c[0];c[0]=e[0];e[0]=j};p.Random=function(){return 2*Math.random()-1};p.RandomRange=function(c,e){void 0===c&&(c=0);void 0===e&&(e=0);var j=Math.random();return(e-c)*j+c};p.NextPowerOfTwo=function(c){void 0===c&&(c=0);c|=c>>1&2147483647;c|= +c>>2&1073741823;c|=c>>4&268435455;c|=c>>8&16777215;return(c|c>>16&65535)+1};p.IsPowerOfTwo=function(c){void 0===c&&(c=0);return 0Number.MIN_VALUE){var e=(c-this.t0)/(1-this.t0);this.c0.x=(1-e)*this.c0.x+e*this.c.x;this.c0.y=(1-e)*this.c0.y+e*this.c.y;this.a0=(1-e)*this.a0+e*this.a;this.t0=c}};e.b2Transform=function(){this.position=new j;this.R=new n};e.prototype.b2Transform=function(c,e){void 0===c&&(c=null);void 0===e&&(e=null);c&&(this.position.SetV(c),this.R.SetM(e))};e.prototype.Initialize=function(c, +e){this.position.SetV(c);this.R.SetM(e)};e.prototype.SetIdentity=function(){this.position.SetZero();this.R.SetIdentity()};e.prototype.Set=function(c){this.position.SetV(c.position);this.R.SetM(c.R)};e.prototype.GetAngle=function(){return Math.atan2(this.R.col1.y,this.R.col1.x)};j.b2Vec2=function(){};j.prototype.b2Vec2=function(c,e){void 0===c&&(c=0);void 0===e&&(e=0);this.x=c;this.y=e};j.prototype.SetZero=function(){this.y=this.x=0};j.prototype.Set=function(c,e){void 0===c&&(c=0);void 0===e&&(e=0); +this.x=c;this.y=e};j.prototype.SetV=function(c){this.x=c.x;this.y=c.y};j.prototype.GetNegative=function(){return new j(-this.x,-this.y)};j.prototype.NegativeSelf=function(){this.x=-this.x;this.y=-this.y};j.Make=function(c,e){void 0===c&&(c=0);void 0===e&&(e=0);return new j(c,e)};j.prototype.Copy=function(){return new j(this.x,this.y)};j.prototype.Add=function(c){this.x+=c.x;this.y+=c.y};j.prototype.Subtract=function(c){this.x-=c.x;this.y-=c.y};j.prototype.Multiply=function(c){void 0===c&&(c=0);this.x*= +c;this.y*=c};j.prototype.MulM=function(c){var e=this.x;this.x=c.col1.x*e+c.col2.x*this.y;this.y=c.col1.y*e+c.col2.y*this.y};j.prototype.MulTM=function(c){var e=p.Dot(this,c.col1);this.y=p.Dot(this,c.col2);this.x=e};j.prototype.CrossVF=function(c){void 0===c&&(c=0);var e=this.x;this.x=c*this.y;this.y=-c*e};j.prototype.CrossFV=function(c){void 0===c&&(c=0);var e=this.x;this.x=-c*this.y;this.y=c*e};j.prototype.MinV=function(c){this.x=this.xc.x?this.x:c.x;this.y=this.y>c.y?this.y:c.y};j.prototype.Abs=function(){0>this.x&&(this.x=-this.x);0>this.y&&(this.y=-this.y)};j.prototype.Length=function(){return Math.sqrt(this.x*this.x+this.y*this.y)};j.prototype.LengthSquared=function(){return this.x*this.x+this.y*this.y};j.prototype.Normalize=function(){var c=Math.sqrt(this.x*this.x+this.y*this.y);if(c=this.m_mass&&(this.m_mass=1);this.m_invMass=1/this.m_mass;0j.b2_maxTranslationSquared&&(f.m_linearVelocity.Normalize(),f.m_linearVelocity.x*=j.b2_maxTranslation*b.inv_dt,f.m_linearVelocity.y*= +j.b2_maxTranslation*b.inv_dt);s=b.dt*f.m_angularVelocity;s*s>j.b2_maxRotationSquared&&(f.m_angularVelocity=0>f.m_angularVelocity?-j.b2_maxRotation*b.inv_dt:j.b2_maxRotation*b.inv_dt);f.m_sweep.c0.SetV(f.m_sweep.c);f.m_sweep.a0=f.m_sweep.a;f.m_sweep.c.x+=b.dt*f.m_linearVelocity.x;f.m_sweep.c.y+=b.dt*f.m_linearVelocity.y;f.m_sweep.a+=b.dt*f.m_angularVelocity;f.SynchronizeTransform()}for(h=0;hs||n.Dot(f.m_linearVelocity,f.m_linearVelocity)> +a?g=f.m_sleepTime=0:(f.m_sleepTime+=b.dt,g=n.Min(g,f.m_sleepTime)));if(g>=j.b2_timeToSleep)for(h=0;hj.b2_maxTranslationSquared&&(g.m_linearVelocity.Normalize(),g.m_linearVelocity.x*=j.b2_maxTranslation*b.inv_dt,g.m_linearVelocity.y*=j.b2_maxTranslation*b.inv_dt);f=b.dt*g.m_angularVelocity;f*f>j.b2_maxRotationSquared&&(g.m_angularVelocity=0>g.m_angularVelocity?-j.b2_maxRotation*b.inv_dt:j.b2_maxRotation*b.inv_dt);g.m_sweep.c0.SetV(g.m_sweep.c);g.m_sweep.a0= +g.m_sweep.a;g.m_sweep.c.x+=b.dt*g.m_linearVelocity.x;g.m_sweep.c.y+=b.dt*g.m_linearVelocity.y;g.m_sweep.a+=b.dt*g.m_angularVelocity;g.SynchronizeTransform()}for(a=0;a=a);0a&&(a=(1-a)*m+a,1-1.5*H.b2_linearSlop};Box2D.postDefs.push(function(){Box2D.Dynamics.Contacts.b2ContactSolver.s_worldManifold=new s;Box2D.Dynamics.Contacts.b2ContactSolver.s_psm=new l});Box2D.inherit(t,Box2D.Dynamics.Contacts.b2Contact);t.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;t.b2EdgeAndCircleContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};t.Create=function(){return new t};t.Destroy=function(){}; +t.prototype.Reset=function(a,h){this.__super.Reset.call(this,a,h)};t.prototype.Evaluate=function(){var a=this.m_fixtureA.GetBody(),h=this.m_fixtureB.GetBody();this.b2CollideEdgeAndCircle(this.m_manifold,this.m_fixtureA.GetShape()instanceof r?this.m_fixtureA.GetShape():null,a.m_xf,this.m_fixtureB.GetShape()instanceof n?this.m_fixtureB.GetShape():null,h.m_xf)};t.prototype.b2CollideEdgeAndCircle=function(){};Box2D.inherit(J,Box2D.Dynamics.Contacts.b2Contact);J.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype; +J.b2NullContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};J.prototype.b2NullContact=function(){this.__super.b2Contact.call(this)};J.prototype.Evaluate=function(){};Box2D.inherit(L,Box2D.Dynamics.Contacts.b2Contact);L.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;L.b2PolyAndCircleContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};L.Create=function(){return new L};L.Destroy=function(){};L.prototype.Reset=function(a, +h){this.__super.Reset.call(this,a,h);H.b2Assert(a.GetType()==m.e_polygonShape);H.b2Assert(h.GetType()==m.e_circleShape)};L.prototype.Evaluate=function(){var a=this.m_fixtureA.m_body,h=this.m_fixtureB.m_body;G.CollidePolygonAndCircle(this.m_manifold,this.m_fixtureA.GetShape()instanceof p?this.m_fixtureA.GetShape():null,a.m_xf,this.m_fixtureB.GetShape()instanceof n?this.m_fixtureB.GetShape():null,h.m_xf)};Box2D.inherit(d,Box2D.Dynamics.Contacts.b2Contact);d.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype; +d.b2PolyAndEdgeContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};d.Create=function(){return new d};d.Destroy=function(){};d.prototype.Reset=function(a,h){this.__super.Reset.call(this,a,h);H.b2Assert(a.GetType()==m.e_polygonShape);H.b2Assert(h.GetType()==m.e_edgeShape)};d.prototype.Evaluate=function(){var a=this.m_fixtureA.GetBody(),h=this.m_fixtureB.GetBody();this.b2CollidePolyAndEdge(this.m_manifold,this.m_fixtureA.GetShape()instanceof p?this.m_fixtureA.GetShape(): +null,a.m_xf,this.m_fixtureB.GetShape()instanceof r?this.m_fixtureB.GetShape():null,h.m_xf)};d.prototype.b2CollidePolyAndEdge=function(){};Box2D.inherit(z,Box2D.Dynamics.Contacts.b2Contact);z.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;z.b2PolygonContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};z.Create=function(){return new z};z.Destroy=function(){};z.prototype.Reset=function(a,h){this.__super.Reset.call(this,a,h)};z.prototype.Evaluate=function(){var a= +this.m_fixtureA.GetBody(),h=this.m_fixtureB.GetBody();G.CollidePolygons(this.m_manifold,this.m_fixtureA.GetShape()instanceof p?this.m_fixtureA.GetShape():null,a.m_xf,this.m_fixtureB.GetShape()instanceof p?this.m_fixtureB.GetShape():null,h.m_xf)};l.b2PositionSolverManifold=function(){};l.prototype.b2PositionSolverManifold=function(){this.m_normal=new E;this.m_separations=new Vector_a2j_Number(H.b2_maxManifoldPoints);this.m_points=new Vector(H.b2_maxManifoldPoints);for(var a=0;aNumber.MIN_VALUE*Number.MIN_VALUE?(e=Math.sqrt(e),this.m_normal.x= +f/e,this.m_normal.y=s/e):(this.m_normal.x=1,this.m_normal.y=0);this.m_points[0].x=0.5*(h+d);this.m_points[0].y=0.5*(c+b);this.m_separations[0]=f*this.m_normal.x+s*this.m_normal.y-a.radius;break;case I.e_faceA:b=a.bodyA.m_xf.R;f=a.localPlaneNormal;this.m_normal.x=b.col1.x*f.x+b.col2.x*f.y;this.m_normal.y=b.col1.y*f.x+b.col2.y*f.y;b=a.bodyA.m_xf.R;f=a.localPoint;d=a.bodyA.m_xf.position.x+(b.col1.x*f.x+b.col2.x*f.y);s=a.bodyA.m_xf.position.y+(b.col1.y*f.x+b.col2.y*f.y);b=a.bodyB.m_xf.R;for(h=0;hthis.maxTimestep&&0n.b2_linearSlop?this.m_u.Multiply(1/c):this.m_u.SetZero();h=d*this.m_u.y-f*this.m_u.x;var j=b*this.m_u.y-k*this.m_u.x;h=g.m_invMass+g.m_invI* +h*h+e.m_invMass+e.m_invI*j*j;this.m_mass=0!=h?1/h:0;if(0h*h&&(this.m_linearImpulse.Normalize(),this.m_linearImpulse.Multiply(h));h=m.SubtractVV(this.m_linearImpulse,c);j.x-=l*h.x;j.y-=l*h.y;f-=r*(t*h.y-q*h.x);b.x+=n*h.x;b.y+=n*h.y;k+=p*(x*h.y-w*h.x);g.m_angularVelocity=f;d.m_angularVelocity=k};q.prototype.SolvePositionConstraints=function(){return!0};Box2D.inherit(K,Box2D.Dynamics.Joints.b2JointDef);K.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;K.b2FrictionJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this, +arguments);this.localAnchorA=new e;this.localAnchorB=new e};K.prototype.b2FrictionJointDef=function(){this.__super.b2JointDef.call(this);this.type=t.e_frictionJoint;this.maxTorque=this.maxForce=0};K.prototype.Initialize=function(a,h,c){this.bodyA=a;this.bodyB=h;this.localAnchorA.SetV(this.bodyA.GetLocalPoint(c));this.localAnchorB.SetV(this.bodyB.GetLocalPoint(c))};Box2D.inherit(D,Box2D.Dynamics.Joints.b2Joint);D.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;D.b2GearJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this, +arguments);this.m_groundAnchor1=new e;this.m_groundAnchor2=new e;this.m_localAnchor1=new e;this.m_localAnchor2=new e;this.m_J=new A};D.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};D.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};D.prototype.GetReactionForce=function(a){void 0===a&&(a=0);return new e(a*this.m_impulse*this.m_J.linearB.x,a*this.m_impulse*this.m_J.linearB.y)};D.prototype.GetReactionTorque=function(a){void 0=== +a&&(a=0);var h=this.m_bodyB.m_xf.R,c=this.m_localAnchor1.x-this.m_bodyB.m_sweep.localCenter.x,g=this.m_localAnchor1.y-this.m_bodyB.m_sweep.localCenter.y,d=h.col1.x*c+h.col2.x*g,g=h.col1.y*c+h.col2.y*g;return a*(this.m_impulse*this.m_J.angularB-d*this.m_impulse*this.m_J.linearB.y+g*this.m_impulse*this.m_J.linearB.x)};D.prototype.GetRatio=function(){return this.m_ratio};D.prototype.SetRatio=function(a){void 0===a&&(a=0);this.m_ratio=a};D.prototype.b2GearJoint=function(a){this.__super.b2Joint.call(this, +a);var h=parseInt(a.joint1.m_type),c=parseInt(a.joint2.m_type);this.m_prismatic2=this.m_revolute2=this.m_prismatic1=this.m_revolute1=null;var g=0,d=0;this.m_ground1=a.joint1.GetBodyA();this.m_bodyA=a.joint1.GetBodyB();h==t.e_revoluteJoint?(this.m_revolute1=a.joint1 instanceof E?a.joint1:null,this.m_groundAnchor1.SetV(this.m_revolute1.m_localAnchor1),this.m_localAnchor1.SetV(this.m_revolute1.m_localAnchor2),g=this.m_revolute1.GetJointAngle()):(this.m_prismatic1=a.joint1 instanceof F?a.joint1:null, +this.m_groundAnchor1.SetV(this.m_prismatic1.m_localAnchor1),this.m_localAnchor1.SetV(this.m_prismatic1.m_localAnchor2),g=this.m_prismatic1.GetJointTranslation());this.m_ground2=a.joint2.GetBodyA();this.m_bodyB=a.joint2.GetBodyB();c==t.e_revoluteJoint?(this.m_revolute2=a.joint2 instanceof E?a.joint2:null,this.m_groundAnchor2.SetV(this.m_revolute2.m_localAnchor1),this.m_localAnchor2.SetV(this.m_revolute2.m_localAnchor2),d=this.m_revolute2.GetJointAngle()):(this.m_prismatic2=a.joint2 instanceof F?a.joint2: +null,this.m_groundAnchor2.SetV(this.m_prismatic2.m_localAnchor1),this.m_localAnchor2.SetV(this.m_prismatic2.m_localAnchor2),d=this.m_prismatic2.GetJointTranslation());this.m_ratio=a.ratio;this.m_constant=g+this.m_ratio*d;this.m_impulse=0};D.prototype.InitVelocityConstraints=function(a){var h=this.m_ground1,c=this.m_ground2,g=this.m_bodyA,d=this.m_bodyB,e=0,f=0,b=0,k=0,j=b=0,m=0;this.m_J.SetZero();this.m_revolute1?(this.m_J.angularA=-1,m+=g.m_invI):(h=h.m_xf.R,f=this.m_prismatic1.m_localXAxis1,e=h.col1.x* +f.x+h.col2.x*f.y,f=h.col1.y*f.x+h.col2.y*f.y,h=g.m_xf.R,b=this.m_localAnchor1.x-g.m_sweep.localCenter.x,k=this.m_localAnchor1.y-g.m_sweep.localCenter.y,j=h.col1.x*b+h.col2.x*k,k=h.col1.y*b+h.col2.y*k,b=j*f-k*e,this.m_J.linearA.Set(-e,-f),this.m_J.angularA=-b,m+=g.m_invMass+g.m_invI*b*b);this.m_revolute2?(this.m_J.angularB=-this.m_ratio,m+=this.m_ratio*this.m_ratio*d.m_invI):(h=c.m_xf.R,f=this.m_prismatic2.m_localXAxis1,e=h.col1.x*f.x+h.col2.x*f.y,f=h.col1.y*f.x+h.col2.y*f.y,h=d.m_xf.R,b=this.m_localAnchor2.x- +d.m_sweep.localCenter.x,k=this.m_localAnchor2.y-d.m_sweep.localCenter.y,j=h.col1.x*b+h.col2.x*k,k=h.col1.y*b+h.col2.y*k,b=j*f-k*e,this.m_J.linearB.Set(-this.m_ratio*e,-this.m_ratio*f),this.m_J.angularB=-this.m_ratio*b,m+=this.m_ratio*this.m_ratio*(d.m_invMass+d.m_invI*b*b));this.m_mass=0Number.MIN_VALUE?1/this.m_motorMass:0;this.m_perp.SetV(m.MulMV(j.R,this.m_localYAxis1));this.m_s1=(g+f)*this.m_perp.y-(e+b)*this.m_perp.x;this.m_s2=k*this.m_perp.y-l*this.m_perp.x;j=this.m_invMassA;f=this.m_invMassB;b=this.m_invIA;k=this.m_invIB;this.m_K.col1.x=j+f+b*this.m_s1* +this.m_s1+k*this.m_s2*this.m_s2;this.m_K.col1.y=b*this.m_s1*this.m_a1+k*this.m_s2*this.m_a2;this.m_K.col2.x=this.m_K.col1.y;this.m_K.col2.y=j+f+b*this.m_a1*this.m_a1+k*this.m_a2*this.m_a2;this.m_enableLimit?(g=this.m_axis.x*g+this.m_axis.y*e,m.Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*n.b2_linearSlop?this.m_limitState=t.e_equalLimits:g<=this.m_lowerTranslation?this.m_limitState!=t.e_atLowerLimit&&(this.m_limitState=t.e_atLowerLimit,this.m_impulse.y=0):g>=this.m_upperTranslation?this.m_limitState!= +t.e_atUpperLimit&&(this.m_limitState=t.e_atUpperLimit,this.m_impulse.y=0):(this.m_limitState=t.e_inactiveLimit,this.m_impulse.y=0)):this.m_limitState=t.e_inactiveLimit;!1==this.m_enableMotor&&(this.m_motorImpulse=0);a.warmStarting?(this.m_impulse.x*=a.dtRatio,this.m_impulse.y*=a.dtRatio,this.m_motorImpulse*=a.dtRatio,a=this.m_impulse.x*this.m_perp.x+(this.m_motorImpulse+this.m_impulse.y)*this.m_axis.x,g=this.m_impulse.x*this.m_perp.y+(this.m_motorImpulse+this.m_impulse.y)*this.m_axis.y,e=this.m_impulse.x* +this.m_s1+(this.m_motorImpulse+this.m_impulse.y)*this.m_a1,j=this.m_impulse.x*this.m_s2+(this.m_motorImpulse+this.m_impulse.y)*this.m_a2,c.m_linearVelocity.x-=this.m_invMassA*a,c.m_linearVelocity.y-=this.m_invMassA*g,c.m_angularVelocity-=this.m_invIA*e,d.m_linearVelocity.x+=this.m_invMassB*a,d.m_linearVelocity.y+=this.m_invMassB*g,d.m_angularVelocity+=this.m_invIB*j):(this.m_impulse.SetZero(),this.m_motorImpulse=0)};d.prototype.SolveVelocityConstraints=function(a){var c=this.m_bodyA,d=this.m_bodyB, +g=c.m_linearVelocity,j=c.m_angularVelocity,l=d.m_linearVelocity,f=d.m_angularVelocity,b=0,k=0,v=0,n=0;this.m_enableMotor&&this.m_limitState!=t.e_equalLimits&&(n=this.m_motorMass*(this.m_motorSpeed-(this.m_axis.x*(l.x-g.x)+this.m_axis.y*(l.y-g.y)+this.m_a2*f-this.m_a1*j)),b=this.m_motorImpulse,k=a.dt*this.m_maxMotorForce,this.m_motorImpulse=m.Clamp(this.m_motorImpulse+n,-k,k),n=this.m_motorImpulse-b,b=n*this.m_axis.x,k=n*this.m_axis.y,v=n*this.m_a1,n*=this.m_a2,g.x-=this.m_invMassA*b,g.y-=this.m_invMassA* +k,j-=this.m_invIA*v,l.x+=this.m_invMassB*b,l.y+=this.m_invMassB*k,f+=this.m_invIB*n);k=this.m_perp.x*(l.x-g.x)+this.m_perp.y*(l.y-g.y)+this.m_s2*f-this.m_s1*j;this.m_enableLimit&&this.m_limitState!=t.e_inactiveLimit?(v=this.m_axis.x*(l.x-g.x)+this.m_axis.y*(l.y-g.y)+this.m_a2*f-this.m_a1*j,b=this.m_impulse.Copy(),a=this.m_K.Solve(new e,-k,-v),this.m_impulse.Add(a),this.m_limitState==t.e_atLowerLimit?this.m_impulse.y=m.Max(this.m_impulse.y,0):this.m_limitState==t.e_atUpperLimit&&(this.m_impulse.y= +m.Min(this.m_impulse.y,0)),k=-k-(this.m_impulse.y-b.y)*this.m_K.col2.x,v=0,v=0!=this.m_K.col1.x?k/this.m_K.col1.x+b.x:b.x,this.m_impulse.x=v,a.x=this.m_impulse.x-b.x,a.y=this.m_impulse.y-b.y,b=a.x*this.m_perp.x+a.y*this.m_axis.x,k=a.x*this.m_perp.y+a.y*this.m_axis.y,v=a.x*this.m_s1+a.y*this.m_a1,n=a.x*this.m_s2+a.y*this.m_a2):(a=0,a=0!=this.m_K.col1.x?-k/this.m_K.col1.x:0,this.m_impulse.x+=a,b=a*this.m_perp.x,k=a*this.m_perp.y,v=a*this.m_s1,n=a*this.m_s2);g.x-=this.m_invMassA*b;g.y-=this.m_invMassA* +k;j-=this.m_invIA*v;l.x+=this.m_invMassB*b;l.y+=this.m_invMassB*k;f+=this.m_invIB*n;c.m_linearVelocity.SetV(g);c.m_angularVelocity=j;d.m_linearVelocity.SetV(l);d.m_angularVelocity=f};d.prototype.SolvePositionConstraints=function(){var a=this.m_bodyA,c=this.m_bodyB,d=a.m_sweep.c,g=a.m_sweep.a,j=c.m_sweep.c,l=c.m_sweep.a,f,b=0,k=0,v=0,p=0,t=f=0,q=0,k=!1,x=0,w=r.FromAngle(g),v=r.FromAngle(l);f=w;var q=this.m_localAnchor1.x-this.m_localCenterA.x,A=this.m_localAnchor1.y-this.m_localCenterA.y,b=f.col1.x* +q+f.col2.x*A,A=f.col1.y*q+f.col2.y*A,q=b;f=v;v=this.m_localAnchor2.x-this.m_localCenterB.x;p=this.m_localAnchor2.y-this.m_localCenterB.y;b=f.col1.x*v+f.col2.x*p;p=f.col1.y*v+f.col2.y*p;v=b;f=j.x+v-d.x-q;b=j.y+p-d.y-A;if(this.m_enableLimit){this.m_axis=m.MulMV(w,this.m_localXAxis1);this.m_a1=(f+q)*this.m_axis.y-(b+A)*this.m_axis.x;this.m_a2=v*this.m_axis.y-p*this.m_axis.x;var z=this.m_axis.x*f+this.m_axis.y*b;m.Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*n.b2_linearSlop?(x=m.Clamp(z,-n.b2_maxLinearCorrection, +n.b2_maxLinearCorrection),t=m.Abs(z),k=!0):z<=this.m_lowerTranslation?(x=m.Clamp(z-this.m_lowerTranslation+n.b2_linearSlop,-n.b2_maxLinearCorrection,0),t=this.m_lowerTranslation-z,k=!0):z>=this.m_upperTranslation&&(x=m.Clamp(z-this.m_upperTranslation+n.b2_linearSlop,0,n.b2_maxLinearCorrection),t=z-this.m_upperTranslation,k=!0)}this.m_perp=m.MulMV(w,this.m_localYAxis1);this.m_s1=(f+q)*this.m_perp.y-(b+A)*this.m_perp.x;this.m_s2=v*this.m_perp.y-p*this.m_perp.x;w=new e;A=this.m_perp.x*f+this.m_perp.y* +b;t=m.Max(t,m.Abs(A));q=0;k?(k=this.m_invMassA,v=this.m_invMassB,p=this.m_invIA,f=this.m_invIB,this.m_K.col1.x=k+v+p*this.m_s1*this.m_s1+f*this.m_s2*this.m_s2,this.m_K.col1.y=p*this.m_s1*this.m_a1+f*this.m_s2*this.m_a2,this.m_K.col2.x=this.m_K.col1.y,this.m_K.col2.y=k+v+p*this.m_a1*this.m_a1+f*this.m_a2*this.m_a2,this.m_K.Solve(w,-A,-x)):(k=this.m_invMassA,v=this.m_invMassB,p=this.m_invIA,f=this.m_invIB,x=k+v+p*this.m_s1*this.m_s1+f*this.m_s2*this.m_s2,w.x=0!=x?-A/x:0,w.y=0);x=w.x*this.m_perp.x+w.y* +this.m_axis.x;k=w.x*this.m_perp.y+w.y*this.m_axis.y;A=w.x*this.m_s1+w.y*this.m_a1;w=w.x*this.m_s2+w.y*this.m_a2;d.x-=this.m_invMassA*x;d.y-=this.m_invMassA*k;g-=this.m_invIA*A;j.x+=this.m_invMassB*x;j.y+=this.m_invMassB*k;l+=this.m_invIB*w;a.m_sweep.a=g;c.m_sweep.a=l;a.SynchronizeTransform();c.SynchronizeTransform();return t<=n.b2_linearSlop&&q<=n.b2_angularSlop};Box2D.inherit(z,Box2D.Dynamics.Joints.b2JointDef);z.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;z.b2LineJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this, +arguments);this.localAnchorA=new e;this.localAnchorB=new e;this.localAxisA=new e};z.prototype.b2LineJointDef=function(){this.__super.b2JointDef.call(this);this.type=t.e_lineJoint;this.localAxisA.Set(1,0);this.enableLimit=!1;this.upperTranslation=this.lowerTranslation=0;this.enableMotor=!1;this.motorSpeed=this.maxMotorForce=0};z.prototype.Initialize=function(a,c,d,g){this.bodyA=a;this.bodyB=c;this.localAnchorA=this.bodyA.GetLocalPoint(d);this.localAnchorB=this.bodyB.GetLocalPoint(d);this.localAxisA= +this.bodyA.GetLocalVector(g)};Box2D.inherit(l,Box2D.Dynamics.Joints.b2Joint);l.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;l.b2MouseJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.K=new r;this.K1=new r;this.K2=new r;this.m_localAnchor=new e;this.m_target=new e;this.m_impulse=new e;this.m_mass=new r;this.m_C=new e};l.prototype.GetAnchorA=function(){return this.m_target};l.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor)}; +l.prototype.GetReactionForce=function(a){void 0===a&&(a=0);return new e(a*this.m_impulse.x,a*this.m_impulse.y)};l.prototype.GetReactionTorque=function(){return 0};l.prototype.GetTarget=function(){return this.m_target};l.prototype.SetTarget=function(a){!1==this.m_bodyB.IsAwake()&&this.m_bodyB.SetAwake(!0);this.m_target=a};l.prototype.GetMaxForce=function(){return this.m_maxForce};l.prototype.SetMaxForce=function(a){void 0===a&&(a=0);this.m_maxForce=a};l.prototype.GetFrequency=function(){return this.m_frequencyHz}; +l.prototype.SetFrequency=function(a){void 0===a&&(a=0);this.m_frequencyHz=a};l.prototype.GetDampingRatio=function(){return this.m_dampingRatio};l.prototype.SetDampingRatio=function(a){void 0===a&&(a=0);this.m_dampingRatio=a};l.prototype.b2MouseJoint=function(a){this.__super.b2Joint.call(this,a);this.m_target.SetV(a.target);var c=this.m_target.x-this.m_bodyB.m_xf.position.x,d=this.m_target.y-this.m_bodyB.m_xf.position.y,g=this.m_bodyB.m_xf.R;this.m_localAnchor.x=c*g.col1.x+d*g.col1.y;this.m_localAnchor.y= +c*g.col2.x+d*g.col2.y;this.m_maxForce=a.maxForce;this.m_impulse.SetZero();this.m_frequencyHz=a.frequencyHz;this.m_dampingRatio=a.dampingRatio;this.m_gamma=this.m_beta=0};l.prototype.InitVelocityConstraints=function(a){var c=this.m_bodyB,d=c.GetMass(),g=2*Math.PI*this.m_frequencyHz,e=d*g*g;this.m_gamma=a.dt*(2*d*this.m_dampingRatio*g+a.dt*e);this.m_gamma=0!=this.m_gamma?1/this.m_gamma:0;this.m_beta=a.dt*e*this.m_gamma;var e=c.m_xf.R,d=this.m_localAnchor.x-c.m_sweep.localCenter.x,g=this.m_localAnchor.y- +c.m_sweep.localCenter.y,j=e.col1.x*d+e.col2.x*g,g=e.col1.y*d+e.col2.y*g,d=j,e=c.m_invMass,j=c.m_invI;this.K1.col1.x=e;this.K1.col2.x=0;this.K1.col1.y=0;this.K1.col2.y=e;this.K2.col1.x=j*g*g;this.K2.col2.x=-j*d*g;this.K2.col1.y=-j*d*g;this.K2.col2.y=j*d*d;this.K.SetM(this.K1);this.K.AddM(this.K2);this.K.col1.x+=this.m_gamma;this.K.col2.y+=this.m_gamma;this.K.GetInverse(this.m_mass);this.m_C.x=c.m_sweep.c.x+d-this.m_target.x;this.m_C.y=c.m_sweep.c.y+g-this.m_target.y;c.m_angularVelocity*=0.98;this.m_impulse.x*= +a.dtRatio;this.m_impulse.y*=a.dtRatio;c.m_linearVelocity.x+=e*this.m_impulse.x;c.m_linearVelocity.y+=e*this.m_impulse.y;c.m_angularVelocity+=j*(d*this.m_impulse.y-g*this.m_impulse.x)};l.prototype.SolveVelocityConstraints=function(a){var c=this.m_bodyB,d,g=0,e=0;d=c.m_xf.R;var j=this.m_localAnchor.x-c.m_sweep.localCenter.x,f=this.m_localAnchor.y-c.m_sweep.localCenter.y,g=d.col1.x*j+d.col2.x*f,f=d.col1.y*j+d.col2.y*f,j=g,g=c.m_linearVelocity.x+-c.m_angularVelocity*f,b=c.m_linearVelocity.y+c.m_angularVelocity* +j;d=this.m_mass;g=g+this.m_beta*this.m_C.x+this.m_gamma*this.m_impulse.x;e=b+this.m_beta*this.m_C.y+this.m_gamma*this.m_impulse.y;b=-(d.col1.x*g+d.col2.x*e);e=-(d.col1.y*g+d.col2.y*e);d=this.m_impulse.x;g=this.m_impulse.y;this.m_impulse.x+=b;this.m_impulse.y+=e;a=a.dt*this.m_maxForce;this.m_impulse.LengthSquared()>a*a&&this.m_impulse.Multiply(a/this.m_impulse.Length());b=this.m_impulse.x-d;e=this.m_impulse.y-g;c.m_linearVelocity.x+=c.m_invMass*b;c.m_linearVelocity.y+=c.m_invMass*e;c.m_angularVelocity+= +c.m_invI*(j*e-f*b)};l.prototype.SolvePositionConstraints=function(){return!0};Box2D.inherit(C,Box2D.Dynamics.Joints.b2JointDef);C.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;C.b2MouseJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.target=new e};C.prototype.b2MouseJointDef=function(){this.__super.b2JointDef.call(this);this.type=t.e_mouseJoint;this.maxForce=0;this.frequencyHz=5;this.dampingRatio=0.7};Box2D.inherit(F,Box2D.Dynamics.Joints.b2Joint); +F.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;F.b2PrismaticJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_localAnchor1=new e;this.m_localAnchor2=new e;this.m_localXAxis1=new e;this.m_localYAxis1=new e;this.m_axis=new e;this.m_perp=new e;this.m_K=new p;this.m_impulse=new j};F.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};F.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)}; +F.prototype.GetReactionForce=function(a){void 0===a&&(a=0);return new e(a*(this.m_impulse.x*this.m_perp.x+(this.m_motorImpulse+this.m_impulse.z)*this.m_axis.x),a*(this.m_impulse.x*this.m_perp.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_axis.y))};F.prototype.GetReactionTorque=function(a){void 0===a&&(a=0);return a*this.m_impulse.y};F.prototype.GetJointTranslation=function(){var a=this.m_bodyA,c=this.m_bodyB,d=a.GetWorldPoint(this.m_localAnchor1),g=c.GetWorldPoint(this.m_localAnchor2),c=g.x-d.x, +d=g.y-d.y,a=a.GetWorldVector(this.m_localXAxis1);return a.x*c+a.y*d};F.prototype.GetJointSpeed=function(){var a=this.m_bodyA,c=this.m_bodyB,d;d=a.m_xf.R;var g=this.m_localAnchor1.x-a.m_sweep.localCenter.x,e=this.m_localAnchor1.y-a.m_sweep.localCenter.y,j=d.col1.x*g+d.col2.x*e,e=d.col1.y*g+d.col2.y*e,g=j;d=c.m_xf.R;var f=this.m_localAnchor2.x-c.m_sweep.localCenter.x,b=this.m_localAnchor2.y-c.m_sweep.localCenter.y,j=d.col1.x*f+d.col2.x*b,b=d.col1.y*f+d.col2.y*b,f=j;d=c.m_sweep.c.x+f-(a.m_sweep.c.x+ +g);var j=c.m_sweep.c.y+b-(a.m_sweep.c.y+e),k=a.GetWorldVector(this.m_localXAxis1),m=a.m_linearVelocity,l=c.m_linearVelocity,a=a.m_angularVelocity,c=c.m_angularVelocity;return d*-a*k.y+j*a*k.x+(k.x*(l.x+-c*b-m.x- -a*e)+k.y*(l.y+c*f-m.y-a*g))};F.prototype.IsLimitEnabled=function(){return this.m_enableLimit};F.prototype.EnableLimit=function(a){this.m_bodyA.SetAwake(!0);this.m_bodyB.SetAwake(!0);this.m_enableLimit=a};F.prototype.GetLowerLimit=function(){return this.m_lowerTranslation};F.prototype.GetUpperLimit= +function(){return this.m_upperTranslation};F.prototype.SetLimits=function(a,c){void 0===a&&(a=0);void 0===c&&(c=0);this.m_bodyA.SetAwake(!0);this.m_bodyB.SetAwake(!0);this.m_lowerTranslation=a;this.m_upperTranslation=c};F.prototype.IsMotorEnabled=function(){return this.m_enableMotor};F.prototype.EnableMotor=function(a){this.m_bodyA.SetAwake(!0);this.m_bodyB.SetAwake(!0);this.m_enableMotor=a};F.prototype.SetMotorSpeed=function(a){void 0===a&&(a=0);this.m_bodyA.SetAwake(!0);this.m_bodyB.SetAwake(!0); +this.m_motorSpeed=a};F.prototype.GetMotorSpeed=function(){return this.m_motorSpeed};F.prototype.SetMaxMotorForce=function(a){void 0===a&&(a=0);this.m_bodyA.SetAwake(!0);this.m_bodyB.SetAwake(!0);this.m_maxMotorForce=a};F.prototype.GetMotorForce=function(){return this.m_motorImpulse};F.prototype.b2PrismaticJoint=function(a){this.__super.b2Joint.call(this,a);this.m_localAnchor1.SetV(a.localAnchorA);this.m_localAnchor2.SetV(a.localAnchorB);this.m_localXAxis1.SetV(a.localAxisA);this.m_localYAxis1.x=-this.m_localXAxis1.y; +this.m_localYAxis1.y=this.m_localXAxis1.x;this.m_refAngle=a.referenceAngle;this.m_impulse.SetZero();this.m_motorImpulse=this.m_motorMass=0;this.m_lowerTranslation=a.lowerTranslation;this.m_upperTranslation=a.upperTranslation;this.m_maxMotorForce=a.maxMotorForce;this.m_motorSpeed=a.motorSpeed;this.m_enableLimit=a.enableLimit;this.m_enableMotor=a.enableMotor;this.m_limitState=t.e_inactiveLimit;this.m_axis.SetZero();this.m_perp.SetZero()};F.prototype.InitVelocityConstraints=function(a){var c=this.m_bodyA, +d=this.m_bodyB,g,e=0;this.m_localCenterA.SetV(c.GetLocalCenter());this.m_localCenterB.SetV(d.GetLocalCenter());var j=c.GetTransform();d.GetTransform();g=c.m_xf.R;var f=this.m_localAnchor1.x-this.m_localCenterA.x,b=this.m_localAnchor1.y-this.m_localCenterA.y,e=g.col1.x*f+g.col2.x*b,b=g.col1.y*f+g.col2.y*b,f=e;g=d.m_xf.R;var k=this.m_localAnchor2.x-this.m_localCenterB.x,l=this.m_localAnchor2.y-this.m_localCenterB.y,e=g.col1.x*k+g.col2.x*l,l=g.col1.y*k+g.col2.y*l,k=e;g=d.m_sweep.c.x+k-c.m_sweep.c.x- +f;e=d.m_sweep.c.y+l-c.m_sweep.c.y-b;this.m_invMassA=c.m_invMass;this.m_invMassB=d.m_invMass;this.m_invIA=c.m_invI;this.m_invIB=d.m_invI;this.m_axis.SetV(m.MulMV(j.R,this.m_localXAxis1));this.m_a1=(g+f)*this.m_axis.y-(e+b)*this.m_axis.x;this.m_a2=k*this.m_axis.y-l*this.m_axis.x;this.m_motorMass=this.m_invMassA+this.m_invMassB+this.m_invIA*this.m_a1*this.m_a1+this.m_invIB*this.m_a2*this.m_a2;this.m_motorMass>Number.MIN_VALUE&&(this.m_motorMass=1/this.m_motorMass);this.m_perp.SetV(m.MulMV(j.R,this.m_localYAxis1)); +this.m_s1=(g+f)*this.m_perp.y-(e+b)*this.m_perp.x;this.m_s2=k*this.m_perp.y-l*this.m_perp.x;j=this.m_invMassA;f=this.m_invMassB;b=this.m_invIA;k=this.m_invIB;this.m_K.col1.x=j+f+b*this.m_s1*this.m_s1+k*this.m_s2*this.m_s2;this.m_K.col1.y=b*this.m_s1+k*this.m_s2;this.m_K.col1.z=b*this.m_s1*this.m_a1+k*this.m_s2*this.m_a2;this.m_K.col2.x=this.m_K.col1.y;this.m_K.col2.y=b+k;this.m_K.col2.z=b*this.m_a1+k*this.m_a2;this.m_K.col3.x=this.m_K.col1.z;this.m_K.col3.y=this.m_K.col2.z;this.m_K.col3.z=j+f+b*this.m_a1* +this.m_a1+k*this.m_a2*this.m_a2;this.m_enableLimit?(g=this.m_axis.x*g+this.m_axis.y*e,m.Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*n.b2_linearSlop?this.m_limitState=t.e_equalLimits:g<=this.m_lowerTranslation?this.m_limitState!=t.e_atLowerLimit&&(this.m_limitState=t.e_atLowerLimit,this.m_impulse.z=0):g>=this.m_upperTranslation?this.m_limitState!=t.e_atUpperLimit&&(this.m_limitState=t.e_atUpperLimit,this.m_impulse.z=0):(this.m_limitState=t.e_inactiveLimit,this.m_impulse.z=0)):this.m_limitState= +t.e_inactiveLimit;!1==this.m_enableMotor&&(this.m_motorImpulse=0);a.warmStarting?(this.m_impulse.x*=a.dtRatio,this.m_impulse.y*=a.dtRatio,this.m_motorImpulse*=a.dtRatio,a=this.m_impulse.x*this.m_perp.x+(this.m_motorImpulse+this.m_impulse.z)*this.m_axis.x,g=this.m_impulse.x*this.m_perp.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_axis.y,e=this.m_impulse.x*this.m_s1+this.m_impulse.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_a1,j=this.m_impulse.x*this.m_s2+this.m_impulse.y+(this.m_motorImpulse+ +this.m_impulse.z)*this.m_a2,c.m_linearVelocity.x-=this.m_invMassA*a,c.m_linearVelocity.y-=this.m_invMassA*g,c.m_angularVelocity-=this.m_invIA*e,d.m_linearVelocity.x+=this.m_invMassB*a,d.m_linearVelocity.y+=this.m_invMassB*g,d.m_angularVelocity+=this.m_invIB*j):(this.m_impulse.SetZero(),this.m_motorImpulse=0)};F.prototype.SolveVelocityConstraints=function(a){var c=this.m_bodyA,d=this.m_bodyB,g=c.m_linearVelocity,l=c.m_angularVelocity,n=d.m_linearVelocity,f=d.m_angularVelocity,b=0,k=0,v=0,r=0;this.m_enableMotor&& +this.m_limitState!=t.e_equalLimits&&(r=this.m_motorMass*(this.m_motorSpeed-(this.m_axis.x*(n.x-g.x)+this.m_axis.y*(n.y-g.y)+this.m_a2*f-this.m_a1*l)),b=this.m_motorImpulse,a=a.dt*this.m_maxMotorForce,this.m_motorImpulse=m.Clamp(this.m_motorImpulse+r,-a,a),r=this.m_motorImpulse-b,b=r*this.m_axis.x,k=r*this.m_axis.y,v=r*this.m_a1,r*=this.m_a2,g.x-=this.m_invMassA*b,g.y-=this.m_invMassA*k,l-=this.m_invIA*v,n.x+=this.m_invMassB*b,n.y+=this.m_invMassB*k,f+=this.m_invIB*r);v=this.m_perp.x*(n.x-g.x)+this.m_perp.y* +(n.y-g.y)+this.m_s2*f-this.m_s1*l;k=f-l;this.m_enableLimit&&this.m_limitState!=t.e_inactiveLimit?(a=this.m_axis.x*(n.x-g.x)+this.m_axis.y*(n.y-g.y)+this.m_a2*f-this.m_a1*l,b=this.m_impulse.Copy(),a=this.m_K.Solve33(new j,-v,-k,-a),this.m_impulse.Add(a),this.m_limitState==t.e_atLowerLimit?this.m_impulse.z=m.Max(this.m_impulse.z,0):this.m_limitState==t.e_atUpperLimit&&(this.m_impulse.z=m.Min(this.m_impulse.z,0)),v=-v-(this.m_impulse.z-b.z)*this.m_K.col3.x,k=-k-(this.m_impulse.z-b.z)*this.m_K.col3.y, +k=this.m_K.Solve22(new e,v,k),k.x+=b.x,k.y+=b.y,this.m_impulse.x=k.x,this.m_impulse.y=k.y,a.x=this.m_impulse.x-b.x,a.y=this.m_impulse.y-b.y,a.z=this.m_impulse.z-b.z,b=a.x*this.m_perp.x+a.z*this.m_axis.x,k=a.x*this.m_perp.y+a.z*this.m_axis.y,v=a.x*this.m_s1+a.y+a.z*this.m_a1,r=a.x*this.m_s2+a.y+a.z*this.m_a2):(a=this.m_K.Solve22(new e,-v,-k),this.m_impulse.x+=a.x,this.m_impulse.y+=a.y,b=a.x*this.m_perp.x,k=a.x*this.m_perp.y,v=a.x*this.m_s1+a.y,r=a.x*this.m_s2+a.y);g.x-=this.m_invMassA*b;g.y-=this.m_invMassA* +k;l-=this.m_invIA*v;n.x+=this.m_invMassB*b;n.y+=this.m_invMassB*k;f+=this.m_invIB*r;c.m_linearVelocity.SetV(g);c.m_angularVelocity=l;d.m_linearVelocity.SetV(n);d.m_angularVelocity=f};F.prototype.SolvePositionConstraints=function(){var a=this.m_bodyA,c=this.m_bodyB,d=a.m_sweep.c,g=a.m_sweep.a,l=c.m_sweep.c,p=c.m_sweep.a,f,b=0,k=0,v=0,t=b=f=0,q=0,k=!1,x=0,w=r.FromAngle(g),A=r.FromAngle(p);f=w;var q=this.m_localAnchor1.x-this.m_localCenterA.x,z=this.m_localAnchor1.y-this.m_localCenterA.y,b=f.col1.x* +q+f.col2.x*z,z=f.col1.y*q+f.col2.y*z,q=b;f=A;A=this.m_localAnchor2.x-this.m_localCenterB.x;v=this.m_localAnchor2.y-this.m_localCenterB.y;b=f.col1.x*A+f.col2.x*v;v=f.col1.y*A+f.col2.y*v;A=b;f=l.x+A-d.x-q;b=l.y+v-d.y-z;if(this.m_enableLimit){this.m_axis=m.MulMV(w,this.m_localXAxis1);this.m_a1=(f+q)*this.m_axis.y-(b+z)*this.m_axis.x;this.m_a2=A*this.m_axis.y-v*this.m_axis.x;var B=this.m_axis.x*f+this.m_axis.y*b;m.Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*n.b2_linearSlop?(x=m.Clamp(B,-n.b2_maxLinearCorrection, +n.b2_maxLinearCorrection),t=m.Abs(B),k=!0):B<=this.m_lowerTranslation?(x=m.Clamp(B-this.m_lowerTranslation+n.b2_linearSlop,-n.b2_maxLinearCorrection,0),t=this.m_lowerTranslation-B,k=!0):B>=this.m_upperTranslation&&(x=m.Clamp(B-this.m_upperTranslation+n.b2_linearSlop,0,n.b2_maxLinearCorrection),t=B-this.m_upperTranslation,k=!0)}this.m_perp=m.MulMV(w,this.m_localYAxis1);this.m_s1=(f+q)*this.m_perp.y-(b+z)*this.m_perp.x;this.m_s2=A*this.m_perp.y-v*this.m_perp.x;w=new j;z=this.m_perp.x*f+this.m_perp.y* +b;A=p-g-this.m_refAngle;t=m.Max(t,m.Abs(z));q=m.Abs(A);k?(k=this.m_invMassA,v=this.m_invMassB,f=this.m_invIA,b=this.m_invIB,this.m_K.col1.x=k+v+f*this.m_s1*this.m_s1+b*this.m_s2*this.m_s2,this.m_K.col1.y=f*this.m_s1+b*this.m_s2,this.m_K.col1.z=f*this.m_s1*this.m_a1+b*this.m_s2*this.m_a2,this.m_K.col2.x=this.m_K.col1.y,this.m_K.col2.y=f+b,this.m_K.col2.z=f*this.m_a1+b*this.m_a2,this.m_K.col3.x=this.m_K.col1.z,this.m_K.col3.y=this.m_K.col2.z,this.m_K.col3.z=k+v+f*this.m_a1*this.m_a1+b*this.m_a2*this.m_a2, +this.m_K.Solve33(w,-z,-A,-x)):(k=this.m_invMassA,v=this.m_invMassB,f=this.m_invIA,b=this.m_invIB,x=f*this.m_s1+b*this.m_s2,B=f+b,this.m_K.col1.Set(k+v+f*this.m_s1*this.m_s1+b*this.m_s2*this.m_s2,x,0),this.m_K.col2.Set(x,B,0),x=this.m_K.Solve22(new e,-z,-A),w.x=x.x,w.y=x.y,w.z=0);x=w.x*this.m_perp.x+w.z*this.m_axis.x;k=w.x*this.m_perp.y+w.z*this.m_axis.y;z=w.x*this.m_s1+w.y+w.z*this.m_a1;w=w.x*this.m_s2+w.y+w.z*this.m_a2;d.x-=this.m_invMassA*x;d.y-=this.m_invMassA*k;g-=this.m_invIA*z;l.x+=this.m_invMassB* +x;l.y+=this.m_invMassB*k;p+=this.m_invIB*w;a.m_sweep.a=g;c.m_sweep.a=p;a.SynchronizeTransform();c.SynchronizeTransform();return t<=n.b2_linearSlop&&q<=n.b2_angularSlop};Box2D.inherit(H,Box2D.Dynamics.Joints.b2JointDef);H.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;H.b2PrismaticJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=new e;this.localAnchorB=new e;this.localAxisA=new e};H.prototype.b2PrismaticJointDef=function(){this.__super.b2JointDef.call(this); +this.type=t.e_prismaticJoint;this.localAxisA.Set(1,0);this.referenceAngle=0;this.enableLimit=!1;this.upperTranslation=this.lowerTranslation=0;this.enableMotor=!1;this.motorSpeed=this.maxMotorForce=0};H.prototype.Initialize=function(a,c,d,e){this.bodyA=a;this.bodyB=c;this.localAnchorA=this.bodyA.GetLocalPoint(d);this.localAnchorB=this.bodyB.GetLocalPoint(d);this.localAxisA=this.bodyA.GetLocalVector(e);this.referenceAngle=this.bodyB.GetAngle()-this.bodyA.GetAngle()};Box2D.inherit(B,Box2D.Dynamics.Joints.b2Joint); +B.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;B.b2PulleyJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_groundAnchor1=new e;this.m_groundAnchor2=new e;this.m_localAnchor1=new e;this.m_localAnchor2=new e;this.m_u1=new e;this.m_u2=new e};B.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};B.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};B.prototype.GetReactionForce=function(a){void 0=== +a&&(a=0);return new e(a*this.m_impulse*this.m_u2.x,a*this.m_impulse*this.m_u2.y)};B.prototype.GetReactionTorque=function(){return 0};B.prototype.GetGroundAnchorA=function(){var a=this.m_ground.m_xf.position.Copy();a.Add(this.m_groundAnchor1);return a};B.prototype.GetGroundAnchorB=function(){var a=this.m_ground.m_xf.position.Copy();a.Add(this.m_groundAnchor2);return a};B.prototype.GetLength1=function(){var a=this.m_bodyA.GetWorldPoint(this.m_localAnchor1),c=a.x-(this.m_ground.m_xf.position.x+this.m_groundAnchor1.x), +a=a.y-(this.m_ground.m_xf.position.y+this.m_groundAnchor1.y);return Math.sqrt(c*c+a*a)};B.prototype.GetLength2=function(){var a=this.m_bodyB.GetWorldPoint(this.m_localAnchor2),c=a.x-(this.m_ground.m_xf.position.x+this.m_groundAnchor2.x),a=a.y-(this.m_ground.m_xf.position.y+this.m_groundAnchor2.y);return Math.sqrt(c*c+a*a)};B.prototype.GetRatio=function(){return this.m_ratio};B.prototype.b2PulleyJoint=function(a){this.__super.b2Joint.call(this,a);this.m_ground=this.m_bodyA.m_world.m_groundBody;this.m_groundAnchor1.x= +a.groundAnchorA.x-this.m_ground.m_xf.position.x;this.m_groundAnchor1.y=a.groundAnchorA.y-this.m_ground.m_xf.position.y;this.m_groundAnchor2.x=a.groundAnchorB.x-this.m_ground.m_xf.position.x;this.m_groundAnchor2.y=a.groundAnchorB.y-this.m_ground.m_xf.position.y;this.m_localAnchor1.SetV(a.localAnchorA);this.m_localAnchor2.SetV(a.localAnchorB);this.m_ratio=a.ratio;this.m_constant=a.lengthA+this.m_ratio*a.lengthB;this.m_maxLength1=m.Min(a.maxLengthA,this.m_constant-this.m_ratio*B.b2_minPulleyLength); +this.m_maxLength2=m.Min(a.maxLengthB,(this.m_constant-B.b2_minPulleyLength)/this.m_ratio);this.m_limitImpulse2=this.m_limitImpulse1=this.m_impulse=0};B.prototype.InitVelocityConstraints=function(a){var c=this.m_bodyA,d=this.m_bodyB,e;e=c.m_xf.R;var j=this.m_localAnchor1.x-c.m_sweep.localCenter.x,m=this.m_localAnchor1.y-c.m_sweep.localCenter.y,f=e.col1.x*j+e.col2.x*m,m=e.col1.y*j+e.col2.y*m,j=f;e=d.m_xf.R;var b=this.m_localAnchor2.x-d.m_sweep.localCenter.x,k=this.m_localAnchor2.y-d.m_sweep.localCenter.y, +f=e.col1.x*b+e.col2.x*k,k=e.col1.y*b+e.col2.y*k,b=f;e=d.m_sweep.c.x+b;var f=d.m_sweep.c.y+k,l=this.m_ground.m_xf.position.x+this.m_groundAnchor2.x,r=this.m_ground.m_xf.position.y+this.m_groundAnchor2.y;this.m_u1.Set(c.m_sweep.c.x+j-(this.m_ground.m_xf.position.x+this.m_groundAnchor1.x),c.m_sweep.c.y+m-(this.m_ground.m_xf.position.y+this.m_groundAnchor1.y));this.m_u2.Set(e-l,f-r);e=this.m_u1.Length();f=this.m_u2.Length();e>n.b2_linearSlop?this.m_u1.Multiply(1/e):this.m_u1.SetZero();f>n.b2_linearSlop? +this.m_u2.Multiply(1/f):this.m_u2.SetZero();0n.b2_linearSlop?this.m_u1.Multiply(1/d):this.m_u1.SetZero(),p>n.b2_linearSlop?this.m_u2.Multiply(1/p):this.m_u2.SetZero(),d=this.m_constant-d-this.m_ratio*p,x=m.Max(x,-d),d=m.Clamp(d+n.b2_linearSlop,-n.b2_maxLinearCorrection,0),w=-this.m_pulleyMass*d,d=-w*this.m_u1.x,p=-w*this.m_u1.y,q=-this.m_ratio*w*this.m_u2.x,w=-this.m_ratio*w*this.m_u2.y, +a.m_sweep.c.x+=a.m_invMass*d,a.m_sweep.c.y+=a.m_invMass*p,a.m_sweep.a+=a.m_invI*(b*p-k*d),c.m_sweep.c.x+=c.m_invMass*q,c.m_sweep.c.y+=c.m_invMass*w,c.m_sweep.a+=c.m_invI*(v*w-r*q),a.SynchronizeTransform(),c.SynchronizeTransform());this.m_limitState1==t.e_atUpperLimit&&(d=a.m_xf.R,b=this.m_localAnchor1.x-a.m_sweep.localCenter.x,k=this.m_localAnchor1.y-a.m_sweep.localCenter.y,p=d.col1.x*b+d.col2.x*k,k=d.col1.y*b+d.col2.y*k,b=p,d=a.m_sweep.c.x+b,p=a.m_sweep.c.y+k,this.m_u1.Set(d-e,p-j),d=this.m_u1.Length(), +d>n.b2_linearSlop?(this.m_u1.x*=1/d,this.m_u1.y*=1/d):this.m_u1.SetZero(),d=this.m_maxLength1-d,x=m.Max(x,-d),d=m.Clamp(d+n.b2_linearSlop,-n.b2_maxLinearCorrection,0),w=-this.m_limitMass1*d,d=-w*this.m_u1.x,p=-w*this.m_u1.y,a.m_sweep.c.x+=a.m_invMass*d,a.m_sweep.c.y+=a.m_invMass*p,a.m_sweep.a+=a.m_invI*(b*p-k*d),a.SynchronizeTransform());this.m_limitState2==t.e_atUpperLimit&&(d=c.m_xf.R,v=this.m_localAnchor2.x-c.m_sweep.localCenter.x,r=this.m_localAnchor2.y-c.m_sweep.localCenter.y,p=d.col1.x*v+d.col2.x* +r,r=d.col1.y*v+d.col2.y*r,v=p,q=c.m_sweep.c.x+v,w=c.m_sweep.c.y+r,this.m_u2.Set(q-l,w-f),p=this.m_u2.Length(),p>n.b2_linearSlop?(this.m_u2.x*=1/p,this.m_u2.y*=1/p):this.m_u2.SetZero(),d=this.m_maxLength2-p,x=m.Max(x,-d),d=m.Clamp(d+n.b2_linearSlop,-n.b2_maxLinearCorrection,0),w=-this.m_limitMass2*d,q=-w*this.m_u2.x,w=-w*this.m_u2.y,c.m_sweep.c.x+=c.m_invMass*q,c.m_sweep.c.y+=c.m_invMass*w,c.m_sweep.a+=c.m_invI*(v*w-r*q),c.SynchronizeTransform());return x=this.m_upperAngle?(this.m_limitState!= +t.e_atUpperLimit&&(this.m_impulse.z=0),this.m_limitState=t.e_atUpperLimit):(this.m_limitState=t.e_inactiveLimit,this.m_impulse.z=0)}else this.m_limitState=t.e_inactiveLimit;a.warmStarting?(this.m_impulse.x*=a.dtRatio,this.m_impulse.y*=a.dtRatio,this.m_motorImpulse*=a.dtRatio,a=this.m_impulse.x,q=this.m_impulse.y,c.m_linearVelocity.x-=e*a,c.m_linearVelocity.y-=e*q,c.m_angularVelocity-=r*(l*q-f*a+this.m_motorImpulse+this.m_impulse.z),d.m_linearVelocity.x+=j*a,d.m_linearVelocity.y+=j*q,d.m_angularVelocity+= +p*(b*q-k*a+this.m_motorImpulse+this.m_impulse.z)):(this.m_impulse.SetZero(),this.m_motorImpulse=0)};E.prototype.SolveVelocityConstraints=function(a){var c=this.m_bodyA,d=this.m_bodyB,e=0,j=e=0,l=0,f=0,b=0,k=c.m_linearVelocity,n=c.m_angularVelocity,r=d.m_linearVelocity,p=d.m_angularVelocity,q=c.m_invMass,w=d.m_invMass,x=c.m_invI,A=d.m_invI;this.m_enableMotor&&this.m_limitState!=t.e_equalLimits&&(j=this.m_motorMass*-(p-n-this.m_motorSpeed),l=this.m_motorImpulse,f=a.dt*this.m_maxMotorTorque,this.m_motorImpulse= +m.Clamp(this.m_motorImpulse+j,-f,f),j=this.m_motorImpulse-l,n-=x*j,p+=A*j);if(this.m_enableLimit&&this.m_limitState!=t.e_inactiveLimit){var a=c.m_xf.R,j=this.m_localAnchor1.x-c.m_sweep.localCenter.x,l=this.m_localAnchor1.y-c.m_sweep.localCenter.y,e=a.col1.x*j+a.col2.x*l,l=a.col1.y*j+a.col2.y*l,j=e,a=d.m_xf.R,f=this.m_localAnchor2.x-d.m_sweep.localCenter.x,b=this.m_localAnchor2.y-d.m_sweep.localCenter.y,e=a.col1.x*f+a.col2.x*b,b=a.col1.y*f+a.col2.y*b,f=e,a=r.x+-p*b-k.x- -n*l,z=r.y+p*f-k.y-n*j;this.m_mass.Solve33(this.impulse3, +-a,-z,-(p-n));this.m_limitState==t.e_equalLimits?this.m_impulse.Add(this.impulse3):this.m_limitState==t.e_atLowerLimit?(e=this.m_impulse.z+this.impulse3.z,0>e&&(this.m_mass.Solve22(this.reduced,-a,-z),this.impulse3.x=this.reduced.x,this.impulse3.y=this.reduced.y,this.impulse3.z=-this.m_impulse.z,this.m_impulse.x+=this.reduced.x,this.m_impulse.y+=this.reduced.y,this.m_impulse.z=0)):this.m_limitState==t.e_atUpperLimit&&(e=this.m_impulse.z+this.impulse3.z,0z*z&&(q=1/(l+w),f=q*-f,b=q*-b,d.m_sweep.c.x-=0.5*l*f,d.m_sweep.c.y-=0.5*l*b,e.m_sweep.c.x+=0.5*w*f,e.m_sweep.c.y+=0.5*w*b,f=e.m_sweep.c.x+r-d.m_sweep.c.x- +k,b=e.m_sweep.c.y+p-d.m_sweep.c.y-a);this.K1.col1.x=l+w;this.K1.col2.x=0;this.K1.col1.y=0;this.K1.col2.y=l+w;this.K2.col1.x=x*a*a;this.K2.col2.x=-x*k*a;this.K2.col1.y=-x*k*a;this.K2.col2.y=x*k*k;this.K3.col1.x=A*p*p;this.K3.col2.x=-A*r*p;this.K3.col1.y=-A*r*p;this.K3.col2.y=A*r*r;this.K.SetM(this.K1);this.K.AddM(this.K2);this.K.AddM(this.K3);this.K.Solve(E.tImpulse,-f,-b);f=E.tImpulse.x;b=E.tImpulse.y;d.m_sweep.c.x-=d.m_invMass*f;d.m_sweep.c.y-=d.m_invMass*b;d.m_sweep.a-=d.m_invI*(k*b-a*f);e.m_sweep.c.x+= +e.m_invMass*f;e.m_sweep.c.y+=e.m_invMass*b;e.m_sweep.a+=e.m_invI*(r*b-p*f);d.SynchronizeTransform();e.SynchronizeTransform();return c<=n.b2_linearSlop&&j<=n.b2_angularSlop};Box2D.postDefs.push(function(){Box2D.Dynamics.Joints.b2RevoluteJoint.tImpulse=new e});Box2D.inherit(G,Box2D.Dynamics.Joints.b2JointDef);G.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;G.b2RevoluteJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=new e;this.localAnchorB= +new e};G.prototype.b2RevoluteJointDef=function(){this.__super.b2JointDef.call(this);this.type=t.e_revoluteJoint;this.localAnchorA.Set(0,0);this.localAnchorB.Set(0,0);this.motorSpeed=this.maxMotorTorque=this.upperAngle=this.lowerAngle=this.referenceAngle=0;this.enableMotor=this.enableLimit=!1};G.prototype.Initialize=function(a,c,d){this.bodyA=a;this.bodyB=c;this.localAnchorA=this.bodyA.GetLocalPoint(d);this.localAnchorB=this.bodyB.GetLocalPoint(d);this.referenceAngle=this.bodyB.GetAngle()-this.bodyA.GetAngle()}; +Box2D.inherit(N,Box2D.Dynamics.Joints.b2Joint);N.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;N.b2WeldJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_localAnchorA=new e;this.m_localAnchorB=new e;this.m_impulse=new j;this.m_mass=new p};N.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA)};N.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB)};N.prototype.GetReactionForce=function(a){void 0=== +a&&(a=0);return new e(a*this.m_impulse.x,a*this.m_impulse.y)};N.prototype.GetReactionTorque=function(a){void 0===a&&(a=0);return a*this.m_impulse.z};N.prototype.b2WeldJoint=function(a){this.__super.b2Joint.call(this,a);this.m_localAnchorA.SetV(a.localAnchorA);this.m_localAnchorB.SetV(a.localAnchorB);this.m_referenceAngle=a.referenceAngle;this.m_impulse.SetZero();this.m_mass=new p};N.prototype.InitVelocityConstraints=function(a){var c,d=0,e=this.m_bodyA,j=this.m_bodyB;c=e.m_xf.R;var l=this.m_localAnchorA.x- +e.m_sweep.localCenter.x,f=this.m_localAnchorA.y-e.m_sweep.localCenter.y,d=c.col1.x*l+c.col2.x*f,f=c.col1.y*l+c.col2.y*f,l=d;c=j.m_xf.R;var b=this.m_localAnchorB.x-j.m_sweep.localCenter.x,k=this.m_localAnchorB.y-j.m_sweep.localCenter.y,d=c.col1.x*b+c.col2.x*k,k=c.col1.y*b+c.col2.y*k,b=d;c=e.m_invMass;var d=j.m_invMass,m=e.m_invI,n=j.m_invI;this.m_mass.col1.x=c+d+f*f*m+k*k*n;this.m_mass.col2.x=-f*l*m-k*b*n;this.m_mass.col3.x=-f*m-k*n;this.m_mass.col1.y=this.m_mass.col2.x;this.m_mass.col2.y=c+d+l*l* +m+b*b*n;this.m_mass.col3.y=l*m+b*n;this.m_mass.col1.z=this.m_mass.col3.x;this.m_mass.col2.z=this.m_mass.col3.y;this.m_mass.col3.z=m+n;a.warmStarting?(this.m_impulse.x*=a.dtRatio,this.m_impulse.y*=a.dtRatio,this.m_impulse.z*=a.dtRatio,e.m_linearVelocity.x-=c*this.m_impulse.x,e.m_linearVelocity.y-=c*this.m_impulse.y,e.m_angularVelocity-=m*(l*this.m_impulse.y-f*this.m_impulse.x+this.m_impulse.z),j.m_linearVelocity.x+=d*this.m_impulse.x,j.m_linearVelocity.y+=d*this.m_impulse.y,j.m_angularVelocity+=n* +(b*this.m_impulse.y-k*this.m_impulse.x+this.m_impulse.z)):this.m_impulse.SetZero()};N.prototype.SolveVelocityConstraints=function(){var a,c=0,d=this.m_bodyA,e=this.m_bodyB,l=d.m_linearVelocity,m=d.m_angularVelocity,f=e.m_linearVelocity,b=e.m_angularVelocity,k=d.m_invMass,n=e.m_invMass,r=d.m_invI,p=e.m_invI;a=d.m_xf.R;var q=this.m_localAnchorA.x-d.m_sweep.localCenter.x,t=this.m_localAnchorA.y-d.m_sweep.localCenter.y,c=a.col1.x*q+a.col2.x*t,t=a.col1.y*q+a.col2.y*t,q=c;a=e.m_xf.R;var w=this.m_localAnchorB.x- +e.m_sweep.localCenter.x,x=this.m_localAnchorB.y-e.m_sweep.localCenter.y,c=a.col1.x*w+a.col2.x*x,x=a.col1.y*w+a.col2.y*x,w=c;a=f.x-b*x-l.x+m*t;var c=f.y+b*w-l.y-m*q,A=b-m,z=new j;this.m_mass.Solve33(z,-a,-c,-A);this.m_impulse.Add(z);l.x-=k*z.x;l.y-=k*z.y;m-=r*(q*z.y-t*z.x+z.z);f.x+=n*z.x;f.y+=n*z.y;b+=p*(w*z.y-x*z.x+z.z);d.m_angularVelocity=m;e.m_angularVelocity=b};N.prototype.SolvePositionConstraints=function(){var a,c=0,d=this.m_bodyA,e=this.m_bodyB;a=d.m_xf.R;var l=this.m_localAnchorA.x-d.m_sweep.localCenter.x, +r=this.m_localAnchorA.y-d.m_sweep.localCenter.y,c=a.col1.x*l+a.col2.x*r,r=a.col1.y*l+a.col2.y*r,l=c;a=e.m_xf.R;var f=this.m_localAnchorB.x-e.m_sweep.localCenter.x,b=this.m_localAnchorB.y-e.m_sweep.localCenter.y,c=a.col1.x*f+a.col2.x*b,b=a.col1.y*f+a.col2.y*b,f=c;a=d.m_invMass;var c=e.m_invMass,k=d.m_invI,p=e.m_invI,q=e.m_sweep.c.x+f-d.m_sweep.c.x-l,t=e.m_sweep.c.y+b-d.m_sweep.c.y-r,w=e.m_sweep.a-d.m_sweep.a-this.m_referenceAngle,x=10*n.b2_linearSlop,z=Math.sqrt(q*q+t*t),A=m.Abs(w);z>x&&(k*=1,p*=1); +this.m_mass.col1.x=a+c+r*r*k+b*b*p;this.m_mass.col2.x=-r*l*k-b*f*p;this.m_mass.col3.x=-r*k-b*p;this.m_mass.col1.y=this.m_mass.col2.x;this.m_mass.col2.y=a+c+l*l*k+f*f*p;this.m_mass.col3.y=l*k+f*p;this.m_mass.col1.z=this.m_mass.col3.x;this.m_mass.col2.z=this.m_mass.col3.y;this.m_mass.col3.z=k+p;x=new j;this.m_mass.Solve33(x,-q,-t,-w);d.m_sweep.c.x-=a*x.x;d.m_sweep.c.y-=a*x.y;d.m_sweep.a-=k*(l*x.y-r*x.x+x.z);e.m_sweep.c.x+=c*x.x;e.m_sweep.c.y+=c*x.y;e.m_sweep.a+=p*(f*x.y-b*x.x+x.z);d.SynchronizeTransform(); +e.SynchronizeTransform();return z<=n.b2_linearSlop&&A<=n.b2_angularSlop};Box2D.inherit(I,Box2D.Dynamics.Joints.b2JointDef);I.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;I.b2WeldJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=new e;this.localAnchorB=new e};I.prototype.b2WeldJointDef=function(){this.__super.b2JointDef.call(this);this.type=t.e_weldJoint;this.referenceAngle=0};I.prototype.Initialize=function(a,c,d){this.bodyA=a; +this.bodyB=c;this.localAnchorA.SetV(this.bodyA.GetLocalPoint(d));this.localAnchorB.SetV(this.bodyB.GetLocalPoint(d));this.referenceAngle=this.bodyB.GetAngle()-this.bodyA.GetAngle()}})(); +(function(){var n=Box2D.Dynamics.b2DebugDraw;n.b2DebugDraw=function(){this.m_xformScale=this.m_fillAlpha=this.m_alpha=this.m_lineThickness=this.m_drawScale=1;var n=this;this.m_sprite={graphics:{clear:function(){n.m_ctx.clearRect(0,0,n.m_ctx.canvas.width,n.m_ctx.canvas.height)}}}};n.prototype._color=function(n,p){return"rgba("+((n&16711680)>>16)+","+((n&65280)>>8)+","+(n&255)+","+p+")"};n.prototype.b2DebugDraw=function(){this.m_drawFlags=0};n.prototype.SetFlags=function(n){void 0===n&&(n=0);this.m_drawFlags= +n};n.prototype.GetFlags=function(){return this.m_drawFlags};n.prototype.AppendFlags=function(n){void 0===n&&(n=0);this.m_drawFlags|=n};n.prototype.ClearFlags=function(n){void 0===n&&(n=0);this.m_drawFlags&=~n};n.prototype.SetSprite=function(n){this.m_ctx=n};n.prototype.GetSprite=function(){return this.m_ctx};n.prototype.SetDrawScale=function(n){void 0===n&&(n=0);this.m_drawScale=n};n.prototype.GetDrawScale=function(){return this.m_drawScale};n.prototype.SetLineThickness=function(n){void 0===n&&(n= +0);this.m_lineThickness=n;this.m_ctx.strokeWidth=n};n.prototype.GetLineThickness=function(){return this.m_lineThickness};n.prototype.SetAlpha=function(n){void 0===n&&(n=0);this.m_alpha=n};n.prototype.GetAlpha=function(){return this.m_alpha};n.prototype.SetFillAlpha=function(n){void 0===n&&(n=0);this.m_fillAlpha=n};n.prototype.GetFillAlpha=function(){return this.m_fillAlpha};n.prototype.SetXFormScale=function(n){void 0===n&&(n=0);this.m_xformScale=n};n.prototype.GetXFormScale=function(){return this.m_xformScale}; +n.prototype.DrawPolygon=function(n,p,m){if(p){var e=this.m_ctx,j=this.m_drawScale;e.beginPath();e.strokeStyle=this._color(m.color,this.m_alpha);e.moveTo(n[0].x*j,n[0].y*j);for(m=1;m>4,d=(d&15)<<4|f>>2,e=(f&3)<<6|g,b.push(String.fromCharCode(c)),64!=f&&b.push(String.fromCharCode(d)),64!=g&&b.push(String.fromCharCode(e));return b=b.join("")}; +cc.Codec.Base64.decodeAsArray=function(a,b){var c=this.decode(a),d=[],e,f,g;e=0;for(g=c.length/b;e>=1;0==this.bb&&(this.bb=this.readByte(),a=this.bb&1,this.bb=this.bb>>1|128);return a}; +cc.Codec.GZip.prototype.readBits=function(a){for(var b=0,c=a;c--;)b=b<<1|this.readBit();a&&(b=cc.Codec.GZip.bitReverse[b]>>8-a);return b};cc.Codec.GZip.prototype.flushBuffer=function(){this.bIdx=0};cc.Codec.GZip.prototype.addBuffer=function(a){this.buf32k[this.bIdx++]=a;this.outputArr.push(String.fromCharCode(a));32768==this.bIdx&&(this.bIdx=0)}; +cc.Codec.GZip.prototype.IsPat=function(){for(;;){if(this.fpos[this.len]>=this.fmax)return-1;if(this.flens[this.fpos[this.len]]==this.len)return this.fpos[this.len]++;this.fpos[this.len]++}}; +cc.Codec.GZip.prototype.Rec=function(){var a=this.Places[this.treepos],b;if(17==this.len)return-1;this.treepos++;this.len++;b=this.IsPat();if(0<=b)a.b0=b;else if(a.b0=32768,this.Rec())return-1;b=this.IsPat();if(0<=b)a.b1=b,a.jump=null;else if(a.b1=32768,a.jump=this.Places[this.treepos],a.jumppos=this.treepos,this.Rec())return-1;this.len--;return 0}; +cc.Codec.GZip.prototype.CreateTree=function(a,b,c){this.Places=a;this.treepos=0;this.flens=c;this.fmax=b;for(a=0;17>a;a++)this.fpos[a]=0;this.len=0;return this.Rec()?-1:0};cc.Codec.GZip.prototype.DecodeValue=function(a){for(var b,c,d=0,e=a[d];;)if(b=this.readBit()){if(!(e.b1&32768))return e.b1;e=e.jump;b=a.length;for(c=0;c>1,23c)this.addBuffer(c); +else if(256==c)break;else{var f;c-=257;e=this.readBits(cc.Codec.GZip.cplext[c])+cc.Codec.GZip.cplens[c];c=cc.Codec.GZip.bitReverse[this.readBits(5)]>>3;8c;c++)g[c]=0; +for(c=0;cc)g[d++]=c;else if(16==c){var j;c=3+this.readBits(2);if(d+c>e)return this.flushBuffer(),1;for(j=d?g[d-1]:0;c--;)g[d++]=j}else{c=17==c?3+this.readBits(3):11+this.readBits(7);if(d+c>e)return this.flushBuffer(), +1;for(;c--;)g[d++]=0}e=this.literalTree.length;for(d=0;d>8&255;b.b=a>>16&255;return b};cc.c3=cc.c3b; +cc.white=function(){return new cc.Color3B(255,255,255)};cc.yellow=function(){return new cc.Color3B(255,255,0)};cc.blue=function(){return new cc.Color3B(0,0,255)};cc.green=function(){return new cc.Color3B(0,255,0)};cc.red=function(){return new cc.Color3B(255,0,0)};cc.magenta=function(){return new cc.Color3B(255,0,255)};cc.black=function(){return new cc.Color3B(0,0,0)};cc.orange=function(){return new cc.Color3B(255,127,0)};cc.gray=function(){return new cc.Color3B(166,166,166)}; +cc.Color4B=function(a,b,c,d){this.r=a;this.g=b;this.b=c;this.a=d};cc.c4b=function(a,b,c,d){return new cc.Color4B(a,b,c,d)};cc.c4=cc.c4b;cc.Color4F=function(a,b,c,d){this.r=a;this.g=b;this.b=c;this.a=d};cc.c4f=function(a,b,c,d){return new cc.Color4F(a,b,c,d)};cc.c4FFromccc3B=function(a){return new cc.Color4F(a.r/255,a.g/255,a.b/255,1)};cc.c4FFromccc4B=function(a){return new cc.Color4F(a.r/255,a.g/255,a.b/255,a.a/255)};cc.c4FEqual=function(a,b){return a.r==b.r&&a.g==b.g&&a.b==b.b&&a.a==b.a}; +cc.Vertex2F=function(a,b){this.x=a||0;this.y=b||0};cc.Vertex2=function(a,b){return new cc.Vertex2F(a,b)};cc.Vertex3F=function(a,b,c){this.x=a||0;this.y=b||0;this.z=c||0};cc.vertex3=function(a,b,c){return new cc.Vertex3F(a,b,c)};cc.Tex2F=function(a,b){this.u=a||0;this.v=b||0};cc.tex2=function(a,b){return new cc.Tex2F(a,b)};cc.PointSprite=function(a,b,c){this.pos=a||new cc.Vertex2F(0,0);this.color=b||new cc.Color4B(0,0,0,0);this.size=c||0}; +cc.Quad2=function(a,b,c,d){this.tl=a||new cc.Vertex2F(0,0);this.tr=b||new cc.Vertex2F(0,0);this.bl=c||new cc.Vertex2F(0,0);this.br=d||new cc.Vertex2F(0,0)};cc.Quad3=function(a,b,c,d){this.bl=a||new cc.Vertex3F(0,0,0);this.br=b||new cc.Vertex3F(0,0,0);this.tl=c||new cc.Vertex3F(0,0,0);this.tr=d||new cc.Vertex3F(0,0,0)};cc.GridSize=function(a,b){this.x=a;this.y=b};cc.g=function(a,b){return new cc.GridSize(a,b)}; +cc.V2F_C4B_T2F=function(a,b,c){this.vertices=a||new cc.Vertex2F(0,0);this.colors=b||new cc.Color4B(0,0,0,0);this.texCoords=c||new cc.Tex2F(0,0)};cc.V2F_C4F_T2F=function(a,b,c){this.vertices=a||new cc.Vertex2F(0,0);this.colors=b||new cc.Color4F(0,0,0,0);this.texCoords=c||new cc.Tex2F(0,0)};cc.V3F_C4B_T2F=function(a,b,c){this.vertices=a||new cc.Vertex3F(0,0,0);this.colors=b||new cc.Color4B(0,0,0,0);this.texCoords=c||new cc.Tex2F(0,0)}; +cc.V2F_C4B_T2F_Quad=function(a,b,c,d){this.bl=a||new cc.V2F_C4B_T2F;this.br=b||new cc.V2F_C4B_T2F;this.tl=c||new cc.V2F_C4B_T2F;this.tr=d||new cc.V2F_C4B_T2F}; +cc.V2F_C4B_T2F_QuadZero=function(){return new cc.V2F_C4B_T2F_Quad(new cc.V2F_C4B_T2F(new cc.Vertex2F(0,0),new cc.Color4B(0,0,0,255),new cc.Tex2F(0,0)),new cc.V2F_C4B_T2F(new cc.Vertex2F(0,0),new cc.Color4B(0,0,0,255),new cc.Tex2F(0,0)),new cc.V2F_C4B_T2F(new cc.Vertex2F(0,0),new cc.Color4B(0,0,0,255),new cc.Tex2F(0,0)),new cc.V2F_C4B_T2F(new cc.Vertex2F(0,0),new cc.Color4B(0,0,0,255),new cc.Tex2F(0,0)))}; +cc.V3F_C4B_T2F_Quad=function(a,b,c,d){this.tl=a||new cc.V3F_C4B_T2F;this.bl=b||new cc.V3F_C4B_T2F;this.tr=c||new cc.V3F_C4B_T2F;this.br=d||new cc.V3F_C4B_T2F}; +cc.V3F_C4B_T2F_QuadZero=function(){return new cc.V3F_C4B_T2F_Quad(new cc.V3F_C4B_T2F(new cc.Vertex3F(0,0,0),new cc.Color4B(0,0,0,255),new cc.Tex2F(0,0)),new cc.V3F_C4B_T2F(new cc.Vertex3F(0,0,0),new cc.Color4B(0,0,0,255),new cc.Tex2F(0,0)),new cc.V3F_C4B_T2F(new cc.Vertex3F(0,0,0),new cc.Color4B(0,0,0,255),new cc.Tex2F(0,0)),new cc.V3F_C4B_T2F(new cc.Vertex3F(0,0,0),new cc.Color4B(0,0,0,255),new cc.Tex2F(0,0)))}; +cc.V2F_C4F_T2F_Quad=function(a,b,c,d){this.bl=a||new cc.V2F_C4F_T2F;this.br=b||new cc.V2F_C4F_T2F;this.tl=c||new cc.V2F_C4F_T2F;this.tr=d||new cc.V2F_C4F_T2F};cc.BlendFunc=function(a,b){this.src=a;this.dst=b};cc.TEXT_ALIGNMENT_LEFT=0;cc.TEXT_ALIGNMENT_CENTER=1;cc.TEXT_ALIGNMENT_RIGHT=2;cc.VERTICAL_TEXT_ALIGNMENT_TOP=0;cc.VERTICAL_TEXT_ALIGNMENT_CENTER=1;cc.VERTICAL_TEXT_ALIGNMENT_BOTTOM=2;cc.Point=function(a,b){this.x=a||0;this.y=b||0};cc.p=function(a,b){return{x:a,y:b}};cc.Point.CCPointEqualToPoint=function(a,b){return a.x==b.x&&a.y==b.y};cc.Size=function(a,b){this.width=a||0;this.height=b||0};cc.Size.CCSizeEqualToSize=function(a,b){return a.width==b.width&&a.height==b.height}; +cc.Rect=function(a,b,c,d){switch(arguments.length){case 0:this.origin=cc.p(0,0);this.size=cc.size(0,0);break;case 1:if(a)if(a instanceof cc.Rect)this.origin=cc.p(a.origin.x,a.origin.y),this.size=cc.size(a.size.width,a.size.height);else throw"unknown argument type";else this.origin=cc.p(0,0),this.size=cc.size(0,0);break;case 2:this.origin=a?cc.p(a.x,a.y):cc.p(0,0);this.size=b?cc.size(b.width,b.height):cc.size(0,0);break;case 4:this.origin=cc.p(a||0,b||0);this.size=cc.size(c||0,d||0);break;default:throw"unknown argument type"; +}};cc.Rect.CCRectEqualToRect=function(a,b){return cc.Point.CCPointEqualToPoint(a.origin,b.origin)&&cc.Size.CCSizeEqualToSize(a.size,b.size)};cc.Rect.CCRectContainsRect=function(a,b){return!a||!b||a.origin.x>=b.origin.x||a.origin.y>=b.origin.y||a.origin.x+a.size.width<=b.origin.x+b.size.width||a.origin.y+a.size.height<=b.origin.y+b.size.height?!1:!0};cc.Rect.CCRectGetMaxX=function(a){return a.origin.x+a.size.width};cc.Rect.CCRectGetMidX=function(a){return a.origin.x+a.size.width/2}; +cc.Rect.CCRectGetMinX=function(a){return a.origin.x};cc.Rect.CCRectGetMaxY=function(a){return a.origin.y+a.size.height};cc.Rect.CCRectGetMidY=function(a){return a.origin.y+a.size.height/2};cc.Rect.CCRectGetMinY=function(a){return a.origin.y};cc.Rect.CCRectContainsPoint=function(a,b){var c=!1;b.x>=cc.Rect.CCRectGetMinX(a)&&(b.x<=cc.Rect.CCRectGetMaxX(a)&&b.y>=cc.Rect.CCRectGetMinY(a)&&b.y<=cc.Rect.CCRectGetMaxY(a))&&(c=!0);return c}; +cc.Rect.CCRectIntersectsRect=function(a,b){return!(cc.Rect.CCRectGetMaxX(a)d))if(c=a.substr(c+1,d-c-1),0!=c.length){var d=c.indexOf("{"),e=c.indexOf("}");-1!=d||-1!=e||(b=c.split(","))}}return b}; +cc.RectFromString=function(a){var b=cc.RectZero();if(a){var c=a.indexOf("{")+1,d=a.lastIndexOf("}",a.length);-1==c||-1==d||(a=a.substring(c,d),c=a.indexOf("}"),-1!=c&&(c=a.indexOf(",",c),-1!=c&&(b=a.substr(0,c),a=a.substr(c+1,a.length-c),c=cc.splitWithForm(b),b=cc.splitWithForm(a),a=parseFloat(c[0]),c=parseFloat(c[1]),d=parseFloat(b[0]),b=parseFloat(b[1]),b=cc.rect(a,c,d,b))))}return b}; +cc.PointFromString=function(a){var b=cc.PointZero();try{if(""==a)return b;var c=cc.splitWithForm(a),d=parseFloat(c[0]),e=parseFloat(c[1]),b=cc.p(d,e)}catch(f){}return b};cc.SizeFromString=function(a){var b=cc.SizeZero();try{if(""==a)return b;var c=cc.splitWithForm(a),d=parseFloat(c[0]),e=parseFloat(c[1]),b=cc.size(d,e)}catch(f){}return b};cc.AffineTransform=function(a,b,c,d,e,f){this.a=a;this.b=b;this.c=c;this.d=d;this.tx=e;this.ty=f};cc.__AffineTransformMake=function(a,b,c,d,e,f){return new cc.AffineTransform(a,b,c,d,e,f)};cc.AffineTransformMake=function(a,b,c,d,e,f){return new cc.AffineTransform(a,b,c,d,e,f)};cc.__PointApplyAffineTransform=function(a,b){var c=cc.p(0,0);c.x=b.a*a.x+b.c*a.y+b.tx;c.y=b.b*a.x+b.d*a.y+b.ty;return c};cc.PointApplyAffineTransform=function(a,b){return cc.__PointApplyAffineTransform(a,b)}; +cc.__SizeApplyAffineTransform=function(a,b){var c=cc.size(0,0);c.width=b.a*a.width+b.c*a.height;c.height=b.b*a.width+b.d*a.height;return c};cc.SizeApplyAffineTransform=function(a,b){return cc.__SizeApplyAffineTransform(a,b)};cc.AffineTransformMakeIdentity=function(){return cc.__AffineTransformMake(1,0,0,1,0,0)};cc.AffineTransformIdentity=function(){return cc.AffineTransformMakeIdentity()}; +cc.RectApplyAffineTransform=function(a,b){var c=cc.Rect.CCRectGetMinY(a),d=cc.Rect.CCRectGetMinX(a),e=cc.Rect.CCRectGetMaxX(a),f=cc.Rect.CCRectGetMaxY(a),g=cc.PointApplyAffineTransform(cc.p(d,c),b),c=cc.PointApplyAffineTransform(cc.p(e,c),b),d=cc.PointApplyAffineTransform(cc.p(d,f),b),h=cc.PointApplyAffineTransform(cc.p(e,f),b),e=Math.min(Math.min(g.x,c.x),Math.min(d.x,h.x)),f=Math.max(Math.max(g.x,c.x),Math.max(d.x,h.x)),j=Math.min(Math.min(g.y,c.y),Math.min(d.y,h.y)),g=Math.max(Math.max(g.y,c.y), +Math.max(d.y,h.y));return cc.rect(e,j,f-e,g-j)};cc.AffineTransformTranslate=function(a,b,c){return cc.__AffineTransformMake(a.a,a.b,a.c,a.d,a.tx+a.a*b+a.c*c,a.ty+a.b*b+a.d*c)};cc.AffineTransformScale=function(a,b,c){return cc.__AffineTransformMake(a.a*b,a.b*b,a.c*c,a.d*c,a.tx,a.ty)};cc.AffineTransformRotate=function(a,b){var c=Math.sin(b),d=Math.cos(b);return cc.__AffineTransformMake(a.a*d+a.c*c,a.b*d+a.d*c,a.c*d-a.a*c,a.d*d-a.b*c,a.tx,a.ty)}; +cc.AffineTransformConcat=function(a,b){return cc.__AffineTransformMake(a.a*b.a+a.b*b.c,a.a*b.b+a.b*b.d,a.c*b.a+a.d*b.c,a.c*b.b+a.d*b.d,a.tx*b.a+a.ty*b.c+b.tx,a.tx*b.b+a.ty*b.d+b.ty)};cc.AffineTransformEqualToTransform=function(a,b){return a.a==b.a&&a.b==b.b&&a.c==b.c&&a.d==b.d&&a.tx==b.tx&&a.ty==b.ty};cc.AffineTransformInvert=function(a){var b=1/(a.a*a.d-a.b*a.c);return cc.__AffineTransformMake(b*a.d,-b*a.b,-b*a.c,b*a.a,b*(a.c*a.ty-a.d*a.tx),b*(a.b*a.tx-a.a*a.ty))};cc.POINT_EPSILON=parseFloat("1.192092896e-07F");cc.pNeg=function(a){return cc.p(-a.x,-a.y)};cc.pAdd=function(a,b){return cc.p(a.x+b.x,a.y+b.y)};cc.pSub=function(a,b){return cc.p(a.x-b.x,a.y-b.y)};cc.pMult=function(a,b){return cc.p(a.x*b,a.y*b)};cc.pMidpoint=function(a,b){return cc.pMult(cc.pAdd(a,b),0.5)};cc.pDot=function(a,b){return a.x*b.x+a.y*b.y};cc.pCross=function(a,b){return a.x*b.y-a.y*b.x};cc.pPerp=function(a){return cc.p(-a.y,a.x)};cc.pRPerp=function(a){return cc.p(a.y,-a.x)}; +cc.pProject=function(a,b){return cc.pMult(b,cc.pDot(a,b)/cc.pDot(b,b))};cc.pRotate=function(a,b){return cc.p(a.x*b.x-a.y*b.y,a.x*b.y+a.y*b.x)};cc.pUnrotate=function(a,b){return cc.p(a.x*b.x+a.y*b.y,a.y*b.x-a.x*b.y)};cc.pLengthSQ=function(a){return cc.pDot(a,a)};cc.pLength=function(a){return Math.sqrt(cc.pLengthSQ(a))};cc.pDistance=function(a,b){return cc.pLength(cc.pSub(a,b))};cc.pNormalize=function(a){return cc.pMult(a,1/cc.pLength(a))};cc.pForAngle=function(a){return cc.p(Math.cos(a),Math.sin(a))}; +cc.pToAngle=function(a){return Math.atan2(a.y,a.x)};cc.clampf=function(a,b,c){if(b>c)var d=b,b=c,c=d;return a=e.x&&0<=e.y&&1>=e.y?!0:!1}; +cc.pIntersectPoint=function(a,b,c,d){var e=cc.p(0,0);return cc.pLineIntersect(a,b,c,d,e)?(c=cc.p(0,0),c.x=a.x+e.x*(b.x-a.x),c.y=a.y+e.x*(b.y-a.y),c):cc.PointZero()};cc.pSameAs=function(a,b){return a.x&&b.x?a.x==b.x&&a.y==b.y:!1};cc.NODE_TAG_INVALID=-1;cc.NODE_ON_ENTER=null;cc.NODE_ON_EXIT=null;cc.saveContext=function(){cc.renderContextType==cc.CANVAS&&cc.renderContext.save()};cc.restoreContext=function(){cc.renderContextType==cc.CANVAS&&cc.renderContext.restore()};cc.s_globalOrderOfArrival=1; +cc.Node=cc.Class.extend({_zOrder:0,_vertexZ:0,_rotation:0,_scaleX:1,_scaleY:1,_position:cc.p(0,0),_skewX:0,_skewY:0,_children:null,_camera:null,_grid:null,_isVisible:!0,_anchorPoint:cc.p(0,0),_anchorPointInPoints:cc.p(0,0),_contentSize:cc.SizeZero(),_isRunning:!1,_parent:null,_ignoreAnchorPointForPosition:!1,_tag:cc.NODE_TAG_INVALID,_userData:null,_userObject:null,_isTransformDirty:!0,_isInverseDirty:!0,_isCacheDirty:!0,_isTransformGLDirty:null,_transform:null,_inverse:null,_reorderChildDirty:!1, +_shaderProgram:null,_orderOfArrival:0,_glServerState:null,_actionManager:null,_scheduler:null,ctor:function(){cc.NODE_TRANSFORM_USING_AFFINE_MATRIX&&(this._isTransformGLDirty=!0);this._anchorPoint=cc.p(0,0);this._anchorPointInPoints=cc.p(0,0);this._contentSize=cc.size(0,0);this._position=cc.p(0,0);var a=cc.Director.getInstance();this._actionManager=a.getActionManager();this.getActionManager=function(){return this._actionManager};this._scheduler=a.getScheduler();this.getScheduler=function(){return this._scheduler}}, +_arrayMakeObjectsPerformSelector:function(a,b){if(a&&0!=a.length){var c;switch(b){case cc.Node.StateCallbackType.onEnter:for(c=0;c"},_childrenAlloc:function(){this._children=[]},getChildByTag:function(a){cc.Assert(a!=cc.NODE_TAG_INVALID,"Invalid tag");if(null!=this._children)for(var b=0;bb){this._children=cc.ArrayAppendObjectToIndex(this._children,a,c);break}}a._setZOrder(b)},reorderChild:function(a,b){cc.Assert(null!=a,"Child must be non-nil");this._reorderChildDirty=!0;a.setOrderOfArrival(cc.s_globalOrderOfArrival++);a._setZOrder(b);this.setNodeDirty()},sortAllChildren:function(){if(this._reorderChildDirty){var a, +b,c=this._children.length;for(a=0;athis._children[b]._zOrder)this._children[b].visit(a);else break;this.draw(a);if(this._children)for(;bthis._children[b]._zOrder)this._children[b].visit(a);else break;this.draw(a);if(this._children)for(;bd.startPos.y?d.target.setRotation(-b+d.startRot):d.target.setRotation(b+d.startRot);d.updateNumbers()}else"scale"==d.mode?(c=a.clientY-d.initialpos.y,b=a.clientX-d.initialpos.x, +e=d.target.getScaleX(),k=d.target.getScaleY(),d.target.setScale(e-b/150,k+c/150),d.initialpos={x:a.clientX,y:a.clientY},d.updateNumbers()):"skew"==d.mode&&(c=a.clientY-d.initialpos.y,b=a.clientX-d.initialpos.x,e=d.target.getSkewX(),k=d.target.getSkewY(),d.target.setSkewX(e-b/4),d.target.setSkewY(k+c/4),d.initialpos={x:a.clientX,y:a.clientY},d.updateNumbers())});d.find("#CCCloseButton").addEventListener("click",function(){d.mode=null;d.style.display="none";d.mouseDown=!1});document.addEventListener("mouseup", +function(){d.mode=null;d.mouseDown=!1})}a[b].dom.ccnode=a[b];var e=a[b];a[b].dom.addEventListener("mouseover",function(){cc.DOM.tooltip.mouseDown||(cc.$.findpos(this),cc.DOM.tooltip.style.display="block",cc.DOM.tooltip.prependTo(this),cc.DOM.tooltip.target=e,this.style.zIndex=999999,cc.DOM.tooltip.updateNumbers())});a[b].dom.addEventListener("mouseout",function(){this.style.zIndex=this.ccnode._zOrder})}};cc.AtlasNode=cc.Node.extend({RGBAProtocol:!0,_itemsPerRow:0,_itemsPerColumn:0,_itemWidth:0,_itemHeight:0,_colorUnmodified:cc.c3b(0,0,0),_textureAtlas:null,_isOpacityModifyRGB:!1,_blendFunc:{src:cc.BLEND_SRC,dst:cc.BLEND_DST},_opacity:0,_color:null,_originalTexture:null,_quadsToDraw:0,_uniformColor:0,initWithTileFile:function(a,b,c,d){cc.Assert(null!=a,"title should not be null");this._itemWidth=b;this._itemHeight=c;this._opacity=255;this._color=cc.white();this._colorUnmodified=cc.white();this._isOpacityModifyRGB= +!0;this._blendFunc.src=cc.BLEND_SRC;this._blendFunc.dst=cc.BLEND_DST;b=new cc.TextureAtlas;b.initWithFile(a,d);this.setTextureAtlas(b);cc.renderContextType==cc.CANVAS&&(this._originalTexture=this._textureAtlas.getTexture());if(!this._textureAtlas)return cc.log("cocos2d: Could not initialize cc.AtlasNode. Invalid Texture."),!1;this._updateBlendFunc();this._updateOpacityModifyRGB();this._calculateMaxItems();this._quadsToDraw=d;return!0},updateAtlasValues:function(){cc.Assert(!1,"cc.AtlasNode:Abstract updateAtlasValue not overriden")}, +draw:function(){this._super()},getColor:function(){return this._isOpacityModifyRGB?this._colorUnmodified:this._color},setColor:function(a){if(!(this._color.r==a.r&&this._color.g==a.g&&this._color.b==a.b)){this._color=this._colorUnmodified=a;if(this.getTexture()&&cc.renderContextType==cc.CANVAS){var b=cc.TextureCache.getInstance().getTextureColors(this._originalTexture);if(b){var c=this._originalTexture,d=cc.rect(0,0,c.width,c.height),b=cc.generateTintImage(c,b,this._color,d),c=new Image;c.src=b.toDataURL(); +this.setTexture(c)}}this._isOpacityModifyRGB&&(this._color.r=a.r*this._opacity/255,this._color.g=a.g*this._opacity/255,this._color.b=a.b*this._opacity/255)}},getOpacity:function(){return this._opacity},setOpacity:function(a){this._opacity=a},setOpacityModifyRGB:function(a){var b=this._color;this._isOpacityModifyRGB=a;this._color=b},isOpacityModifyRGB:function(){return this._isOpacityModifyRGB},getBlendFunc:function(){return this._blendFunc},setBlendFunc:function(a,b){this._blendFunc={src:a,dst:b}}, +getTexture:function(){return this._textureAtlas.getTexture()},setTexture:function(a){this._textureAtlas.setTexture(a);this._updateBlendFunc();this._updateOpacityModifyRGB()},setTextureAtlas:function(a){this._textureAtlas=a},getTextureAtlas:function(){return this._textureAtlas},getQuadsToDraw:function(){return this._quadsToDraw},setQuadsToDraw:function(a){this._quadsToDraw=a},_calculateMaxItems:function(){var a;a=this._textureAtlas.getTexture()instanceof cc.Texture2D?this._textureAtlas.getTexture().getContentSize(): +cc.size(this._textureAtlas.getTexture().width,this._textureAtlas.getTexture().height);this._itemsPerColumn=parseInt(a.height/this._itemHeight);this._itemsPerRow=parseInt(a.width/this._itemWidth)},_updateBlendFunc:function(){},_updateOpacityModifyRGB:function(){}});cc.AtlasNode.create=function(a,b,c,d){var e=new cc.AtlasNode;return e.initWithTileFile(a,b,c,d)?e:null};cc=cc=cc||{};cc.TEXTURE_2D_PIXEL_FORMAT_AUTOMATIC=0;cc.TEXTURE_2D_PIXEL_FORMAT_RGBA8888=1;cc.TEXTURE_2D_PIXEL_FORMAT_RGB888=2;cc.TEXTURE_2D_PIXEL_FORMAT_RGB565=3;cc.TEXTURE_2D_PIXEL_FORMAT_A8=4;cc.TEXTURE_2D_PIXEL_FORMAT_I8=5;cc.TEXTURE_2D_PIXEL_FORMAT_AI88=6;cc.TEXTURE_2D_PIXEL_FORMAT_RGBA4444=7;cc.TEXTURE_2D_PIXEL_FORMAT_RGB5A1=8;cc.TEXTURE_2D_PIXEL_FORMAT_PVRTC4=9;cc.TEXTURE_2D_PIXEL_FORMAT_PVRTC2=10;cc.TEXTURE_2D_PIXEL_FORMAT_DEFAULT=cc.TEXTURE_2D_PIXEL_FORMAT_RGBA8888; +cc.TEXTURE_2D_PIXEL_FORMAT_AUTOMATIC=cc.TEXTURE_2D_PIXEL_FORMAT_AUTOMATIC;cc.TEXTURE_2D_PIXEL_FORMAT_RGBA8888=cc.TEXTURE_2D_PIXEL_FORMAT_RGBA8888;cc.TEXTURE_2D_PIXEL_FORMAT_RGB888=cc.TEXTURE_2D_PIXEL_FORMAT_RGB888;cc.TEXTURE_2D_PIXEL_FORMAT_RGB565=cc.TEXTURE_2D_PIXEL_FORMAT_RGB565;cc.TEXTURE_2D_PIXEL_FORMAT_A8=cc.TEXTURE_2D_PIXEL_FORMAT_A8;cc.TEXTURE_2D_PIXEL_FORMAT_RGBA4444=cc.TEXTURE_2D_PIXEL_FORMAT_RGBA4444;cc.TEXTURE_2D_PIXEL_FORMAT_RGB5A1=cc.TEXTURE_2D_PIXEL_FORMAT_RGB5A1; +cc.TEXTURE_2D_PIXEL_FORMAT_DEFAULT=cc.TEXTURE_2D_PIXEL_FORMAT_DEFAULT;cc.g_defaultAlphaPixelFormat=cc.TEXTURE_2D_PIXEL_FORMAT_DEFAULT;cc.PVRHaveAlphaPremultiplied_=!1;function _ccTexParams(a,b,c,d){this.minFilter=a;this.magFilter=b;this.wrapS=c;this.wrapT=d} +cc.Texture2D=cc.Class.extend({_pVRHaveAlphaPremultiplied:null,_pixelFormat:null,_pixelsWide:null,_pixelsHigh:null,_name:null,_contentSize:null,_maxS:null,_maxT:null,_hasPremultipliedAlpha:null,ctor:function(){cc.SUPPORT_PVRTC&&(this.initWithPVRTCData=function(a,b,c,d,e,f){if(!cc.Configuration.getInstance().isSupportsPVRTC())return cc.log("cocos2d: WARNING: PVRTC images is not supported."),!1;this.setAntiAliasTexParameters();new cc.GLsizei;this._contentSize=cc.size(e,e);this._pixelsHigh=this._pixelsWide= +e;this._maxT=this._maxS=1;this._hasPremultipliedAlpha=cc.PVRHaveAlphaPremultiplied_;this._pixelFormat=f;return!0})},getPixelFormat:function(){return this._pixelFormat},getPixelsWide:function(){return this._pixelsWide},getPixelsHigh:function(){return this._pixelsHigh},getName:function(){return this._name},getContentSizeInPixels:function(){var a=cc.size(0,0);a.width=this._contentSize.width/cc.CONTENT_SCALE_FACTOR();a.height=this._contentSize.height/cc.CONTENT_SCALE_FACTOR();return a},getMaxS:function(){return this._maxS}, +setMaxS:function(a){this._maxS=a},getMaxT:function(){return this._maxT},setMaxT:function(a){this._maxT=a},getHasPremultipliedAlpha:function(){return this._hasPremultipliedAlpha},description:function(){return""},releaseData:function(a){cc.free(a)},keepData:function(a){return a},initWithData:function(a,b,c,d){this.setAntiAliasTexParameters();switch(a){case cc.TEXTURE_2D_PIXEL_FORMAT_RGBA8888:break; +case cc.TEXTURE_2D_PIXEL_FORMAT_RGB888:break;case cc.TEXTURE_2D_PIXEL_FORMAT_RGBA4444:break;case cc.TEXTURE_2D_PIXEL_FORMAT_RGB5A1:break;case cc.TEXTURE_2D_PIXEL_FORMAT_RGB565:break;case cc.TEXTURE_2D_PIXEL_FORMAT_AI88:break;case cc.TEXTURE_2D_PIXEL_FORMAT_A8:break;default:cc.Assert(0,"NSInternalInconsistencyException")}this._contentSize=d;this._pixelsWide=b;this._pixelsHigh=c;this._pixelFormat=a;this._maxS=d.width/b;this._maxT=d.height/c;this._hasPremultipliedAlpha=!1;return!0},drawAtPoint:function(){}, +drawInRect:function(){},initWithImage:function(a){var b,c;if(null==a)return cc.log("cocos2d: cc.Texture2D. Can't create Texture. UIImage is nil"),!1;var d=cc.Configuration.getInstance();cc.TEXTURE_NPOT_SUPPORT?d.isSupportsNPOT()&&(b=a.getWidth(),c=a.getHeight()):(b=cc.NextPOT(a.getWidth()),c=cc.NextPOT(a.getHeight()));d=d.getMaxTextureSize();return c>d||b>d?(cc.log("cocos2d: WARNING: Image (%u x %u) is bigger than the supported %u x %u",b,c,d,d),null):this._initPremultipliedATextureWithImage(a,b, +c)},initWithString:function(a,b,c,d,e){3==arguments.length&&(d=arguments[1],e=arguments[2],b=cc.size(0,0),c=cc.TEXT_ALIGNMENT_CENTER);cc.ENABLE_CACHE_TEXTTURE_DATA&&cc.VolatileTexture.addStringTexture(this,a,b,c,d,e);var f=new cc.Image;eAlign=new cc.Image.ETextAlign;eAlign=cc.TEXT_ALIGNMENT_CENTER==c?cc.Image.ALIGN_CENTER:cc.TEXT_ALIGNMENT_LEFT==c?cc.Image.ALIGN_LEFT:cc.Image.ALIGN_RIGHT;return!f.initWithString(a,b.width,b.height,eAlign,d,e)?!1:this.initWithImage(f)},initWithPVRFile:function(a){var b= +!1,c=new cc.TexturePVR;(b=c.initWithContentsOfFile(a))?(c.setRetainName(!0),this._name=c.getName(),this._maxT=this._maxS=1,this._pixelsWide=c.getWidth(),this._pixelsHigh=c.getHeight(),this._contentSize=cc.size(this._pixelsWide,this._pixelsHigh),this._hasPremultipliedAlpha=cc.PVRHaveAlphaPremultiplied_,this._pixelFormat=c.getFormat(),this.setAntiAliasTexParameters()):cc.log("cocos2d: Couldn't load PVR image %s",a);return b},setTexParameters:function(a){cc.Assert(this._pixelsWide==cc.NextPOT(this._pixelsWide)&& +this._pixelsHigh==cc.NextPOT(this._pixelsHigh)||a.wrapS==gl.CLAMP_TO_EDGE&&a.wrapT==gl.CLAMP_TO_EDGE,"gl.CLAMP_TO_EDGE should be used in NPOT textures")},setAntiAliasTexParameters:function(){this.setTexParameters([gl.LINEAR,gl.LINEAR,gl.CLAMP_TO_EDGE,gl.CLAMP_TO_EDGE])},setAliasTexParameters:function(){this.setTexParameters([gl.NEAREST,gl.NEAREST,gl.CLAMP_TO_EDGE,gl.CLAMP_TO_EDGE])},generateMipmap:function(){cc.Assert(this._pixelsWide==cc.NextPOT(this._pixelsWide)&&this._pixelsHigh==cc.NextPOT(this._pixelsHigh), +"Mimpap texture only works in POT textures")},bitsPerPixelForFormat:function(){var a=0;switch(this._pixelFormat){case cc.TEXTURE_2D_PIXEL_FORMAT_RGBA8888:a=32;break;case cc.TEXTURE_2D_PIXEL_FORMAT_RGB565:a=16;break;case cc.TEXTURE_2D_PIXEL_FORMAT_A8:a=8;break;case cc.TEXTURE_2D_PIXEL_FORMAT_RGBA4444:a=16;break;case cc.TEXTURE_2D_PIXEL_FORMAT_RGB5A1:a=16;break;case cc.TEXTURE_2D_PIXEL_FORMAT_PVRTC4:a=4;break;case cc.TEXTURE_2D_PIXEL_FORMAT_PVRTC2:a=2;break;case cc.TEXTURE_2D_PIXEL_FORMAT_I8:a=8;break; +case cc.TEXTURE_2D_PIXEL_FORMAT_AI88:a=16;break;case cc.TEXTURE_2D_PIXEL_FORMAT_RGB888:a=24;break;default:a=-1,cc.Assert(!1,"illegal pixel format"),cc.log("bitsPerPixelForFormat: %d, cannot give useful result",this._pixelFormat)}return a},_initPremultipliedATextureWithImage:function(a,b,c){var d=null,e=null,f=null,g;g=cc.size(0,0);var h=new cc.Texture2DPixelFormat,h=new cc.size_t;g=a.hasAlpha();h=a.getBitsPerComponent();g?h=cc.g_defaultAlphaPixelFormat:8<=h?h=cc.TEXTURE_2D_PIXEL_FORMAT_RGB888:(cc.log("cocos2d: cc.Texture2D: Using RGB565 texture since image has no alpha"), +h=cc.TEXTURE_2D_PIXEL_FORMAT_RGB565);g=cc.size(a.getWidth(),a.getHeight());switch(h){case cc.TEXTURE_2D_PIXEL_FORMAT_RGBA8888:case cc.TEXTURE_2D_PIXEL_FORMAT_RGBA4444:case cc.TEXTURE_2D_PIXEL_FORMAT_RGB5A1:case cc.TEXTURE_2D_PIXEL_FORMAT_RGB565:case cc.TEXTURE_2D_PIXEL_FORMAT_A8:e=a.getData();cc.Assert(null!=e,"null image data.");if(a.getWidth()==b&&a.getHeight()==c)d=new (4*c*b),cc.memcpy(d,e,4*c*b);else for(var f=d=new (4*c*b),j=a.getHeight(),k=0;k"},addImage:function(a){cc.Assert(null!=a,"TextureCache: path MUST not be null");var b=this.textures[a.toString()];if(b)cc.Loader.getInstance().onResLoaded();else b=new Image, +b.addEventListener("load",function(){cc.Loader.getInstance().onResLoaded()}),b.addEventListener("error",function(){cc.Loader.getInstance().onResLoadingErr(a)}),b.src=a,this.textures[a.toString()]=b;if(cc.renderContextType==cc.CANVAS)return this.textures[a.toString()]},cacheImage:function(a,b){this.textures[a.toString()]||(this.textures[a.toString()]=b)},addUIImage:function(a,b){cc.Assert(null!=a,"TextureCache: image MUST not be nulll");var c=null;if(b&&this.textures.hasOwnProperty(b)&&(c=this.textures[b]))return c; +c=new cc.Texture2D;c.initWithImage(a);null!=b&&null!=c?this.textures[b]=c:cc.log("cocos2d: Couldn't add UIImage in TextureCache");return c},textureForKey:function(a){return this.textures.hasOwnProperty(a)?this.textures[a]:null},getKeyByTexture:function(a){for(var b in this.textures)if(this.textures[b]==a)return b;return null},getTextureColors:function(a){var b=this.getKeyByTexture(a);if(b)if(a instanceof HTMLImageElement)b=a.src;else return null;this._textureColorsCache.hasOwnProperty(b)||(this._textureColorsCache[b]= +cc.generateTextureCacheForColor(a));return this._textureColorsCache[b]},removeAllTextures:function(){this.textures={}},removeTexture:function(a){if(a)for(var b in this.textures)if(this.textures[b]==a){delete this.textures[b];break}},removeTextureForKey:function(a){null!=a&&this.textures[a]&&delete this.textures[a]},dumpCachedTextureInfo:function(){var a=0,b=0,c;for(c in this.textures){var d=this.textures[c],e=d.bitsPerPixelForFormat(),f=d.getPixelsWide()*d.getPixelsHigh()*e/8,b=b+f;a++;cc.log("cocos2d: '"+ +d.toString()+"' id="+d.getName()+" "+d.getPixelsWide()+" x "+d.getPixelsHigh()+" @ "+e+" bpp => "+f/1024+" KB")}cc.log("cocos2d: TextureCache dumpDebugInfo: "+a+" textures, for "+b/1024+" KB ("+(b/1048576).toFixed(2)+" MB)")},addPVRImage:function(a){cc.Assert(null!=a,"TextureCache: file image MUST not be null");if(null!=this.textures[a])return this.textures[a];var b=new cc.Texture2D;b.initWithPVRFile(a)?this.textures[a]=b:cc.log("cocos2d: Couldn't add PVRImage:"+a+" in TextureCache");return b}}); +cc.TextureCache.getInstance=function(){cc.g_sharedTextureCache||(cc.g_sharedTextureCache=new cc.TextureCache);return cc.g_sharedTextureCache};cc.TextureCache.purgeSharedTextureCache=function(){cc.g_sharedTextureCache=null};cc.TextureAtlas=cc.Class.extend({_indices:[],_buffersVBO:[0,1],_dirty:!1,_capacity:0,_texture:null,_quads:[],getTotalQuads:function(){return this._quads.length},getCapacity:function(){return this._capacity},getTexture:function(){return this._texture},setTexture:function(a){this._texture=a},getQuads:function(){return this._quads},setQuads:function(a){this._quads=a},description:function(){return""},_initIndices:function(){if(0!=this._capacity)for(var a= +0;ab?cc.ArrayAppendObjectToIndex(this._quads,c,b):cc.ArrayAppendObjectToIndex(this._quads,c,b-1);this._dirty=!0}},removeQuadAtIndex:function(a){cc.ArrayRemoveObjectAtIndex(this._quads,a);this._dirty=!0},removeAllQuads:function(){this._quads.length=0},resizeCapacity:function(a){if(a==this._capacity)return!0;this._totalQuads=Math.min(this._totalQuads,a);this._capacity=a;return!0},drawNumberOfQuads:function(){},drawQuads:function(){this.drawNumberOfQuads(this._quads.length,0)}}); +cc.TextureAtlas.create=function(a,b){var c=new cc.TextureAtlas;return c&&c.initWithFile(a,b)?c:null};cc.TextureAtlas.createWithTexture=function(a,b){var c=new cc.TextureAtlas;return c&&c.initWithTexture(a,b)?c:null};cc.IMAGE_FORMAT_JPEG=0;cc.IMAGE_FORMAT_PNG=1;cc.IMAGE_FORMAT_RAWDATA=2;cc.NextPOT=function(a){a-=1;a|=a>>1;a|=a>>2;a|=a>>4;a|=a>>8;return(a|a>>16)+1}; +cc.RenderTexture=cc.Node.extend({canvas:null,context:null,_fBO:0,_depthRenderBuffer:0,_oldFBO:0,_texture:null,_uITextureImage:null,_pixelFormat:cc.TEXTURE_2D_PIXEL_FORMAT_RGBA8888,_sprite:null,ctor:function(){this.canvas=document.createElement("canvas");this.context=this.canvas.getContext("2d");this.setAnchorPoint(cc.p(0,0))},getSprite:function(){return this._sprite},setSprite:function(a){this._sprite=a},getCanvas:function(){return this.canvas},setContentSize:function(a){a&&(this._super(a),this.canvas.width= +1.5*a.width,this.canvas.height=1.5*a.height,this.context.translate(0,this.canvas.height))},initWithWidthAndHeight:function(a,b,c,d){if(cc.renderContextType==cc.CANVAS)this.canvas.width=a||10,this.canvas.height=b||10,this.context.translate(0,this.canvas.height),this._sprite=cc.Sprite.createWithTexture(this.canvas);else{cc.Assert(this._pixelFormat!=cc.TEXTURE_2D_PIXEL_FORMAT_A8,"only RGB and RGBA formats are valid for a render texture");try{a*=cc.CONTENT_SCALE_FACTOR();b*=cc.CONTENT_SCALE_FACTOR(); +glGetIntegerv(gl.FRAMEBUFFER_BINDING,this._oldFBO);var e=0,f=0;cc.Configuration.getInstance().supportsNPOT()?(e=a,f=b):(e=cc.NextPOT(a),f=cc.NextPOT(b));for(var g=[],h=0;h<4*e*f;h++)g[h]=0;this._pixelFormat=c;this._texture=new cc.Texture2D;if(!this._texture)return!1;this._texture.initWithData(g,this._pixelFormat,e,f,cc.size(a,b));glGetIntegerv(GL_RENDERBUFFER_BINDING,void 0);glGenFramebuffers(1,this._fBO);glBindFramebuffer(GL_FRAMEBUFFER,this._fBO);glFramebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0, +GL_TEXTURE_2D,this._texture.getName(),0);0!=this._depthRenderBuffer&&(glGenRenderbuffers(1,this._depthRenderBuffer),glBindRenderbuffer(GL_RENDERBUFFER,this._depthRenderBuffer),glRenderbufferStorage(GL_RENDERBUFFER,d,e,f),glFramebufferRenderbuffer(GL_FRAMEBUFFER,GL_DEPTH_ATTACHMENT,GL_RENDERBUFFER,this._depthRenderBuffer),d==gl.DEPTH24_STENCIL8&&glFramebufferRenderbuffer(GL_FRAMEBUFFER,GL_STENCIL_ATTACHMENT,GL_RENDERBUFFER,this._depthRenderBuffer));cc.Assert(glCheckFramebufferStatus(GL_FRAMEBUFFER)== +GL_FRAMEBUFFER_COMPLETE,"Could not attach texture to framebuffer");this._texture.setAliasTexParameters();this._sprite=cc.Sprite.createWithTexture(this._texture);this._sprite.setScaleY(-1);this.addChild(this._sprite);this._sprite.setBlendFunc(gl.ONE,gl.ONE_MINUS_SRC_ALPHA);glBindRenderbuffer(GL_RENDERBUFFER,void 0);glBindFramebuffer(GL_FRAMEBUFFER,this._oldFBO)}catch(j){return!1}}return!0},begin:function(){kmGLPushMatrix();var a=this._texture.getContentSizeInPixels(),b=cc.Director.getInstance().getWinSizeInPixels(), +c=b.width/a.width,b=b.height/a.height;glViewport(0,0,a.width,a.height);kmMat4OrthographicProjection(void 0,-1/c,1/c,-1/b,1/b,-1,1);kmGLMultMatrix(void 0);glGetIntegerv(gl.FRAMEBUFFER_BINDING,this._oldFBO);glBindFramebuffer(gl.FRAMEBUFFER,this._fBO)},beginWithClear:function(a,b,c,d,e,f){var g;switch(arguments.length){case 4:this.begin();g=[0,0,0,0];glGetFloatv(GL_COLOR_CLEAR_VALUE,g);glClearColor(a,b,c,d);glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glClearColor(g[0],g[1],g[2],g[3]);break;case 5:this.begin(); +g=[0,0,0,0];glGetFloatv(GL_COLOR_CLEAR_VALUE,g);glGetFloatv(GL_DEPTH_CLEAR_VALUE,void 0);glClearColor(a,b,c,d);glClearDepth(e);glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glClearColor(g[0],g[1],g[2],g[3]);glClearDepth(void 0);break;case 6:this.begin();g=[0,0,0,0];glGetFloatv(GL_COLOR_CLEAR_VALUE,g);glGetFloatv(GL_DEPTH_CLEAR_VALUE,void 0);glGetIntegerv(GL_STENCIL_CLEAR_VALUE,void 0);glClearColor(a,b,c,d);glClearDepth(e);glClearStencil(f);glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT); +glClearColor(g[0],g[1],g[2],g[3]);glClearDepth(void 0);glClearStencil(void 0);break;default:throw"unknown arguments";}},end:function(){glBindFramebuffer(GL_FRAMEBUFFER,this._oldFBO);kmGLPopMatrix();var a=cc.Director.getInstance(),b=a.getWinSizeInPixels();glViewport(0,0,b.width*cc.CONTENT_SCALE_FACTOR(),b.height*cc.CONTENT_SCALE_FACTOR());a.getProjection()==cc.DIRECTOR_PROJECTION_3D&&1!=cc.CONTENT_SCALE_FACTOR()&&glViewport(-b.width/2,-b.height/2,b.width*cc.CONTENT_SCALE_FACTOR(),b.height*cc.CONTENT_SCALE_FACTOR()); +a.setProjection(a.getProjection())},clear:function(a,b,c,d){cc.renderContextType==cc.CANVAS?a?this.context.clearRect(a.origin.x,a.origin.y,a.size.width,a.size.height):this.context.clearRect(0,0,this.canvas.width,-this.canvas.height):(this.beginWithClear(a,b,c,d),this.end())},clearDepth:function(){this.begin();glGetFloatv(GL_DEPTH_CLEAR_VALUE,void 0);glClearDepth(depthValue);glClear(GL_DEPTH_BUFFER_BIT);glClearDepth(void 0);this.end()},clearStencil:function(a){glGetIntegerv(GL_STENCIL_CLEAR_VALUE, +void 0);glClearStencil(a);glClear(GL_STENCIL_BUFFER_BIT);glClearStencil(void 0)},newCCImage:function(){cc.Assert(this._pixelFormat==cc.TEXTURE_2D_PIXEL_FORMAT_RGBA8888,"only RGBA8888 can be saved as image");if(!this._texture)return null;var a=this._texture.getContentSizeInPixels(),b=a.width,a=a.height,c=null,d=null,e=new cc.Image;try{c=[];c.length=4*b*a;if(!c)return e;d=[];d.length=4*b*a;if(!d)return e;this.begin();glPixelStorei(GL_PACK_ALIGNMENT,1);glReadPixels(0,0,b,a,GL_RGBA,GL_UNSIGNED_BYTE,d); +this.end();for(var f=0;fa.x&&(b.x+=-a.x,a.x=0);1a.y&& +(b.y+=-a.y,a.y=0);1=h.width)&&0<=h.height&&0>7-(a<<1)&1,cc.PROGRESS_TEXTURE_COORDS>>7-((a<<1)+1)&1):cc.p(cc.PROGRESS_TEXTURE_COORDS>>(a<<1)+1&1,cc.PROGRESS_TEXTURE_COORDS>>(a<<1)&1):cc.PointZero()}});cc.ProgressTimer.create=function(a){var b=new cc.ProgressTimer;return b.initWithSprite(a)?b:null};cc=cc=cc||{}; +cc.GridBase=cc.Class.extend({_active:null,_reuseGrid:null,_gridSize:null,_texture:null,_step:cc.p(0,0),_grabber:null,_isTextureFlipped:null,isActive:function(){return this._active},setActive:function(a){this._active=a;if(!a){var a=cc.Director.getInstance(),b=a.getProjection();a.setProjection(b)}},getReuseGrid:function(){return this._reuseGrid},setReuseGrid:function(a){this._reuseGrid=a},getGridSize:function(){return this._gridSize},setGridSize:function(a){this._gridSize.x=parseInt(a.x);this._gridSize.y= +parseInt(a.y)},getStep:function(){return this._step},setStep:function(a){this._step=a},isTextureFlipped:function(){return this._isTextureFlipped},setIsTextureFlipped:function(a){this._isTextureFlipped!=a&&(this._isTextureFlipped=a,this.calculateVertexPoints())},initWithSize:function(a){var b=cc.Director.getInstance().getWinSizeInPixels(),c=cc.NextPOT(b.width),d=cc.NextPOT(b.height),e=cc.TEXTURE_2D_PIXEL_FORMAT_RGBA8888,f=new cc.Texture2D;f.initWithData(e,c,d,b);if(!f)return cc.log("cocos2d: CCGrid: error creating texture"), +!1;b=!0;this._active=!1;this._reuseGrid=0;this._gridSize=a;this._texture=f;this._isTextureFlipped=!1;a=this._texture.getContentSizeInPixels();this._step.x=a.width/this._gridSize.x;this._step.y=a.height/this._gridSize.y;(this._grabber=new cc.Grabber)?this._grabber.grab(this._texture):b=!1;this.calculateVertexPoints();return b},beforeDraw:function(){this.set2DProjection();this._grabber.beforeRender(this._texture)},afterDraw:function(a){this._grabber.afterRender(this._texture);this.set3DProjection(); +a.getCamera().getDirty()&&(a.getAnchorPointInPixels(),a.getCamera().locate());this.blit()},blit:function(){cc.Assert(0,"")},reuse:function(){cc.Assert(0,"")},calculateVertexPoints:function(){cc.Assert(0,"")},set2DProjection:function(){cc.Director.getInstance().getWinSizeInPixels()}});cc.GridBase.create=function(){return new cc.GridBase}; +cc.Grid3D=cc.GridBase.extend({_texCoordinates:null,_vertices:null,_originalVertices:null,_indices:null,vertex:function(a){var a=3*(a.x*(this._gridSize.y+1)+a.y),b=this._vertices;return new cc.Vertex3F(b[a],b[a+1],b[a+2])},originalVertex:function(a){var a=3*(a.x*(this._gridSize.y+1)+a.y),b=this._originalVertices;return new cc.Vertex3F(b[a],b[a+1],b[a+2])},setVertex:function(a,b){var c=3*(a.x*(this._gridSize.y+1)+a.y),d=this._vertices;d[c]=b.x;d[c+1]=b.y;d[c+2]=b.z},blit:function(){},reuse:function(){0< +this._reuseGrid&&--this._reuseGrid},calculateVertexPoints:function(){var a=this._texture.getPixelsWide(),b=this._texture.getPixelsHigh(),c=this._texture.getContentSizeInPixels().height,d=this._gridSize.x*this._gridSize.y;this._vertices=[];this._originalVertices=[];this._texCoordinates=[];this._indices=[];var e=this._vertices,f=this._texCoordinates,g=this._indices,h,j;for(h=0;h"},copyWithZone:function(){return this.copy()},copy:function(){return cc.clone(this)},isDone:function(){return!0},startWithTarget:function(a){this._target=this._originalTarget=a},stop:function(){this._target=null},step:function(){cc.log("[Action step]. override me")},update:function(){cc.log("[Action update]. override me")},getTarget:function(){return this._target}, +setTarget:function(a){this._target=a},getOriginalTarget:function(){return this._originalTarget},setOriginalTarget:function(a){this._originalTarget=a},getTag:function(){return this._tag},setTag:function(a){this._tag=a}});cc.Action.create=function(){return new cc.Action};cc.FiniteTimeAction=cc.Action.extend({_duration:0,getDuration:function(){return this._duration},setDuration:function(a){this._duration=a},reverse:function(){cc.log("cocos2d: FiniteTimeAction#reverse: Implement me");return null}}); +cc.Speed=cc.Action.extend({_speed:0,_innerAction:null,getSpeed:function(){return this._speed},setSpeed:function(a){this._speed=a},initWithAction:function(a,b){cc.Assert(null!=a,"");this._innerAction=a;this._speed=b;return!0},startWithTarget:function(a){cc.Action.prototype.startWithTarget.call(this,a);this._innerAction.startWithTarget(a)},stop:function(){this._innerAction.stop();cc.Action.prototype.stop.call(this)},step:function(a){this._innerAction.step(a*this._speed)},isDone:function(){return this._innerAction.isDone()}, +reverse:function(){return cc.Speed.create(this._innerAction.reverse(),this._speed)},setInnerAction:function(a){this._innerAction!=a&&(this._innerAction=a)},getInnerAction:function(){return this._innerAction}});cc.Speed.create=function(a,b){var c=new cc.Speed;return c&&c.initWithAction(a,b)?c:null}; +cc.Follow=cc.Action.extend({isBoundarySet:function(){return this._boundarySet},setBoudarySet:function(a){this._boundarySet=a},initWithTarget:function(a,b){cc.Assert(null!=a,"");b=b||cc.RectZero();this._followedNode=a;this._boundarySet=cc.Rect.CCRectEqualToRect(b,cc.RectZero());this._boundaryFullyCovered=!1;var c=cc.Director.getInstance().getWinSize();this._fullScreenSize=cc.p(c.width,c.height);this._halfScreenSize=cc.pMult(this._fullScreenSize,0.5);this._boundarySet&&(this.leftBoundary=-(b.origin.x+ +b.size.width-this._fullScreenSize.x),this.rightBoundary=-b.origin.x,this.topBoundary=-b.origin.y,this.bottomBoundary=-(b.origin.y+b.size.height-this._fullScreenSize.y),this.rightBoundary=this._duration},step:function(a){this._firstTick?(this._firstTick=!1,this._elapsed=0):this._elapsed+=a;a=this._elapsed/(1.192092896E-7a?a:1;this.update(0=this._nextDt){for(;a>this._nextDt&&this._totale?this._two=cc.Sequence._actionOneTwo(b,cc.DelayTime.create(d-e)):dthis._diffAngle&&(this._diffAngle+=360)},reverse:function(){cc.Assert(0, +"RotateTo reverse not implemented")},update:function(a){this._target&&this._target.setRotation(this._startAngle+this._diffAngle*a)}});cc.RotateTo.create=function(a,b){var c=new cc.RotateTo;c.initWithDuration(a,b);return c}; +cc.RotateBy=cc.ActionInterval.extend({_angle:0,_startAngle:0,initWithDuration:function(a,b){return cc.ActionInterval.prototype.initWithDuration.call(this,a)?(this._angle=b,!0):!1},startWithTarget:function(a){cc.ActionInterval.prototype.startWithTarget.call(this,a);this._startAngle=a.getRotation()},update:function(a){this._target&&this._target.setRotation(this._startAngle+this._angle*a)},reverse:function(){return cc.RotateBy.create(this._duration,-this._angle)}}); +cc.RotateBy.create=function(a,b){var c=new cc.RotateBy;c.initWithDuration(a,b);return c}; +cc.MoveTo=cc.ActionInterval.extend({initWithDuration:function(a,b){return cc.ActionInterval.prototype.initWithDuration.call(this,a)?(this._endPosition=b,!0):!1},startWithTarget:function(a){cc.ActionInterval.prototype.startWithTarget.call(this,a);this._startPosition=a.getPosition();this._delta=cc.pSub(this._endPosition,this._startPosition)},update:function(a){this._target&&this._target.setPosition(cc.p(this._startPosition.x+this._delta.x*a,this._startPosition.y+this._delta.y*a))},reverse:function(){cc.Assert(0, +"moveto reverse is not implemented")},_endPosition:cc.p(0,0),_startPosition:cc.p(0,0),_delta:cc.p(0,0)});cc.MoveTo.create=function(a,b){var c=new cc.MoveTo;c.initWithDuration(a,b);return c}; +cc.MoveBy=cc.MoveTo.extend({initWithDuration:function(a,b){return cc.MoveTo.prototype.initWithDuration.call(this,a,b)?(this._delta=b,!0):!1},startWithTarget:function(a){var b=this._delta;cc.MoveTo.prototype.startWithTarget.call(this,a);this._delta=b},reverse:function(){return cc.MoveBy.create(this._duration,cc.p(-this._delta.x,-this._delta.y))}});cc.MoveBy.create=function(a,b){var c=new cc.MoveBy;c.initWithDuration(a,b);return c}; +cc.SkewTo=cc.ActionInterval.extend({initWithDuration:function(a,b,c){var d=!1;cc.ActionInterval.prototype.initWithDuration.call(this,a)&&(this._endSkewX=b,this._endSkewY=c,d=!0);return d},startWithTarget:function(a){cc.ActionInterval.prototype.startWithTarget.call(this,a);this._startSkewX=a.getSkewX();this._startSkewX=0this._deltaX&&(this._deltaX+=360); +this._startSkewY=a.getSkewY();this._startSkewY=0this._deltaY&&(this._deltaY+=360)},update:function(a){this._target.setSkewX(this._startSkewX+this._deltaX*a);this._target.setSkewY(this._startSkewY+this._deltaY*a)},_skewX:0,_skewY:0,_startSkewX:0,_startSkewY:0,_endSkewX:0,_endSkewY:0,_deltaX:0,_deltaY:0}); +cc.SkewTo.create=function(a,b,c){var d=new cc.SkewTo;d&&d.initWithDuration(a,b,c);return d}; +cc.SkewBy=cc.SkewTo.extend({initWithDuration:function(a,b,c){var d=!1;cc.SkewTo.prototype.initWithDuration.call(this,a,b,c)&&(this._skewX=b,this._skewY=c,d=!0);return d},startWithTarget:function(a){cc.SkewTo.prototype.startWithTarget.call(this,a);this._deltaX=this._skewX;this._deltaY=this._skewY;this._endSkewX=this._startSkewX+this._deltaX;this._endSkewY=this._startSkewY+this._deltaY},reverse:function(){return cc.SkewBy.create(this._duration,-this._skewX,-this._skewY)}}); +cc.SkewBy.create=function(a,b,c){var d=new cc.SkewBy;d&&d.initWithDuration(a,b,c);return d}; +cc.JumpBy=cc.ActionInterval.extend({initWithDuration:function(a,b,c,d){return cc.ActionInterval.prototype.initWithDuration.call(this,a)?(this._delta=b,this._height=c,this._jumps=d,!0):!1},startWithTarget:function(a){cc.ActionInterval.prototype.startWithTarget.call(this,a);this._startPosition=a.getPosition()},update:function(a){if(this._target){var b=a*this._jumps%1,b=4*this._height*b*(1-b),b=b+this._delta.y*a;this._target.setPosition(cc.p(this._startPosition.x+this._delta.x*a,this._startPosition.y+ +b))}},reverse:function(){return cc.JumpBy.create(this._duration,cc.p(-this._delta.x,-this._delta.y),this._height,this._jumps)},_startPosition:cc.p(0,0),_delta:cc.p(0,0),_height:0,_jumps:0});cc.JumpBy.create=function(a,b,c,d){var e=new cc.JumpBy;e.initWithDuration(a,b,c,d);return e};cc.JumpTo=cc.JumpBy.extend({startWithTarget:function(a){cc.JumpBy.prototype.startWithTarget.call(this,a);this._delta=cc.p(this._delta.x-this._startPosition.x,this._delta.y-this._startPosition.y)}}); +cc.JumpTo.create=function(a,b,c,d){var e=new cc.JumpTo;e.initWithDuration(a,b,c,d);return e};cc.BezierConfig=cc.Class.extend({ctor:function(){this.endPosition=cc.p(0,0);this.controlPoint_1=cc.p(0,0);this.controlPoint_2=cc.p(0,0)}});cc.bezierat=function(a,b,c,d,e){return Math.pow(1-e,3)*a+3*e*Math.pow(1-e,2)*b+3*Math.pow(e,2)*(1-e)*c+Math.pow(e,3)*d}; +cc.BezierBy=cc.ActionInterval.extend({initWithDuration:function(a,b){return cc.ActionInterval.prototype.initWithDuration.call(this,a)?(this._config=b,!0):!1},startWithTarget:function(a){cc.ActionInterval.prototype.startWithTarget.call(this,a);this._startPosition=a.getPosition()},update:function(a){if(this._target){var b=this._config.controlPoint_1.y,c=this._config.controlPoint_2.y,d=this._config.endPosition.y,e=cc.bezierat(0,this._config.controlPoint_1.x,this._config.controlPoint_2.x,this._config.endPosition.x, +a),a=cc.bezierat(0,b,c,d,a);this._target.setPosition(cc.pAdd(this._startPosition,cc.p(e,a)))}},reverse:function(){var a=new cc.BezierConfig;a.endPosition=cc.pNeg(this._config.endPosition);a.controlPoint_1=cc.pAdd(this._config.controlPoint_2,cc.pNeg(this._config.endPosition));a.controlPoint_2=cc.pAdd(this._config.controlPoint_1,cc.pNeg(this._config.endPosition));return cc.BezierBy.create(this._duration,a)},ctor:function(){this._config=new cc.BezierConfig;this._startPosition=cc.p(0,0)}}); +cc.BezierBy.create=function(a,b){var c=new cc.BezierBy;c.initWithDuration(a,b);return c};cc.BezierTo=cc.BezierBy.extend({startWithTarget:function(a){cc.BezierBy.prototype.startWithTarget.call(this,a);this._config.controlPoint_1=cc.pSub(this._config.controlPoint_1,this._startPosition);this._config.controlPoint_2=cc.pSub(this._config.controlPoint_2,this._startPosition);this._config.endPosition=cc.pSub(this._config.endPosition,this._startPosition)}}); +cc.BezierTo.create=function(a,b){var c=new cc.BezierTo;c.initWithDuration(a,b);return c}; +cc.ScaleTo=cc.ActionInterval.extend({initWithDuration:function(a,b,c){return cc.ActionInterval.prototype.initWithDuration.call(this,a)?(this._endScaleX=b,this._endScaleY=null!=c?c:b,!0):!1},startWithTarget:function(a){cc.ActionInterval.prototype.startWithTarget.call(this,a);this._startScaleX=a.getScaleX();this._startScaleY=a.getScaleY();this._deltaX=this._endScaleX-this._startScaleX;this._deltaY=this._endScaleY-this._startScaleY},update:function(a){this._target&&this._target.setScale(this._startScaleX+ +this._deltaX*a,this._startScaleY+this._deltaY*a)},_scaleX:1,_scaleY:1,_startScaleX:1,_startScaleY:1,_endScaleX:0,_endScaleY:0,_deltaX:0,_deltaY:0});cc.ScaleTo.create=function(a,b,c){var d=new cc.ScaleTo;c?d.initWithDuration(a,b,c):d.initWithDuration(a,b);return d}; +cc.ScaleBy=cc.ScaleTo.extend({startWithTarget:function(a){cc.ScaleTo.prototype.startWithTarget.call(this,a);this._deltaX=this._startScaleX*this._endScaleX-this._startScaleX;this._deltaY=this._startScaleY*this._endScaleY-this._startScaleY},reverse:function(){return cc.ScaleBy.create(this._duration,1/this._endScaleX,1/this._endScaleY)}});cc.ScaleBy.create=function(a,b,c){var d=new cc.ScaleBy;3==arguments.length?d.initWithDuration(a,b,c):d.initWithDuration(a,b);return d}; +cc.Blink=cc.ActionInterval.extend({initWithDuration:function(a,b){return cc.ActionInterval.prototype.initWithDuration.call(this,a)?(this._times=b,!0):!1},update:function(a){if(this._target&&!this.isDone()){var b=1/this._times;this._target.setVisible(a%b>b/2?!0:!1)}},reverse:function(){return cc.Blink.create(this._duration,this._times)},_times:0});cc.Blink.create=function(a,b){var c=new cc.Blink;c.initWithDuration(a,b);return c}; +cc.FadeIn=cc.ActionInterval.extend({update:function(a){this._target.setOpacity(255*a)},reverse:function(){return cc.FadeOut.create(this._duration)}});cc.FadeIn.create=function(a){var b=new cc.FadeIn;b.initWithDuration(a);return b};cc.FadeOut=cc.ActionInterval.extend({update:function(a){this._target.setOpacity(255*(1-a))},reverse:function(){return cc.FadeIn.create(this._duration)}});cc.FadeOut.create=function(a){var b=new cc.FadeOut;b.initWithDuration(a);return b}; +cc.FadeTo=cc.ActionInterval.extend({initWithDuration:function(a,b){return cc.ActionInterval.prototype.initWithDuration.call(this,a)?(this._toOpacity=b,!0):!1},update:function(a){this._target.setOpacity(this._fromOpacity+(this._toOpacity-this._fromOpacity)*a)},startWithTarget:function(a){cc.ActionInterval.prototype.startWithTarget.call(this,a);this._fromOpacity=a.getOpacity()},_toOpacity:"",_fromOpacity:""});cc.FadeTo.create=function(a,b){var c=new cc.FadeTo;c.initWithDuration(a,b);return c}; +cc.TintTo=cc.ActionInterval.extend({initWithDuration:function(a,b,c,d){return cc.ActionInterval.prototype.initWithDuration.call(this,a)?(this._to=cc.c3b(b,c,d),!0):!1},startWithTarget:function(a){cc.ActionInterval.prototype.startWithTarget.call(this,a);this._from=this._target.getColor()},update:function(a){this._target.setColor(cc.c3b(this._from.r+(this._to.r-this._from.r)*a,this._from.g+(this._to.g-this._from.g)*a,this._from.b+(this._to.b-this._from.b)*a))},_to:new cc.Color3B,_from:new cc.Color3B}); +cc.TintTo.create=function(a,b,c,d){var e=new cc.TintTo;e.initWithDuration(a,b,c,d);return e}; +cc.TintBy=cc.ActionInterval.extend({initWithDuration:function(a,b,c,d){return cc.ActionInterval.prototype.initWithDuration.call(this,a)?(this._deltaR=b,this._deltaG=c,this._deltaB=d,!0):!1},startWithTarget:function(a){cc.ActionInterval.prototype.startWithTarget.call(this,a);a.RGBAProtocol&&(a=a.getColor(),this._fromR=a.r,this._fromG=a.g,this._fromB=a.b)},update:function(a){this._target.RGBAProtocol&&this._target.setColor(cc.c3b(this._fromR+this._deltaR*a,this._fromG+this._deltaG*a,this._fromB+this._deltaB* +a))},reverse:function(){return cc.TintBy.create(this._duration,-this._deltaR,-this._deltaG,-this._deltaB)},_deltaR:0,_deltaG:0,_deltaB:0,_fromR:0,_fromG:0,_fromB:0});cc.TintBy.create=function(a,b,c,d){var e=new cc.TintBy;e.initWithDuration(a,b,c,d);return e};cc.DelayTime=cc.ActionInterval.extend({update:function(){},reverse:function(){return cc.DelayTime.create(this._duration)}});cc.DelayTime.create=function(a){var b=new cc.DelayTime;b.initWithDuration(a);return b}; +cc.ReverseTime=cc.ActionInterval.extend({initWithAction:function(a){cc.Assert(null!=a,"");cc.Assert(a!=this._other,"");return cc.ActionInterval.prototype.initWithDuration.call(this,a.getDuration())?(this._other=a,!0):!1},startWithTarget:function(a){cc.ActionInterval.prototype.startWithTarget.call(this,a);this._other.startWithTarget(a)},update:function(a){this._other&&this._other.update(1-a)},reverse:function(){return this._other.copy()},stop:function(){this._other.stop();cc.Action.prototype.stop.call(this)}, +_other:null});cc.ReverseTime.create=function(a){var b=new cc.ReverseTime;b.initWithAction(a);return b}; +cc.Animate=cc.ActionInterval.extend({_animation:null,_nextFrame:0,_origFrame:null,_executedLoops:0,_splitTimes:null,getAnimation:function(){return this._animation},setAnimation:function(a){this._animation=a},initWithAnimation:function(a){cc.Assert(null!=a,"Animate: argument Animation must be non-NULL");var b=a.getDuration();if(this.initWithDuration(b*a.getLoops())){this._nextFrame=0;this.setAnimation(a);this._origFrame=null;this._executedLoops=0;this._splitTimes=[];var c=0,d=b/a.getTotalDelayUnits(), +a=a.getFrames();cc.ArrayVerifyType(a,cc.AnimationFrame);for(var e=0;ea&&(a*=this._animation.getLoops(),(0|a)>this._executedLoops&&(this._nextFrame=0,this._executedLoops++),a%=1);for(var b= +this._animation.getFrames(),c=b.length,d=this._nextFrame;d=a&&b.actionIndex--;0==b.actions.length&&(this._currentTarget==b?this._currentTargetSalvaged=!0:this._deleteHashElement(b))},_deleteHashElement:function(a){cc.ArrayRemoveObject(this._targets,a);a&&(a.actions=null,a.target=null)},_actionAllocWithHashElement:function(a){null==a.actions&&(a.actions=[])},update:function(a){for(var b=0;ba?this._other.update(0.5*Math.pow(a,this._rate)):this._other.update(1-0.5*Math.pow(2-a,this._rate))},copyWithZone:function(){},reverse:function(){return cc.EaseInOut.create(this._other.reverse(),this._rate)}});cc.EaseInOut.create=function(a,b){var c=new cc.EaseInOut;c&&c.initWithAction(a,b);return c}; +cc.EaseExponentialIn=cc.ActionEase.extend({update:function(a){this._other.update(0==a?0:Math.pow(2,10*(a/1-1))-0.0010)},reverse:function(){return cc.EaseExponentialOut.create(this._other.reverse())},copyWithZone:function(){}});cc.EaseExponentialIn.create=function(a){var b=new cc.EaseExponentialIn;b&&b.initWithAction(a);return b}; +cc.EaseExponentialOut=cc.ActionEase.extend({update:function(a){this._other.update(1==a?1:-Math.pow(2,-10*a/1)+1)},reverse:function(){return cc.EaseExponentialIn.create(this._other.reverse())},copyWithZone:function(){}});cc.EaseExponentialOut.create=function(a){var b=new cc.EaseExponentialOut;b&&b.initWithAction(a);return b}; +cc.EaseExponentialInOut=cc.ActionEase.extend({update:function(a){a/=0.5;a=1>a?0.5*Math.pow(2,10*(a-1)):0.5*(-Math.pow(2,10*(a-1))+2);this._other.update(a)},reverse:function(){return cc.EaseExponentialInOut.create(this._other.reverse())},copyWithZone:function(){}});cc.EaseExponentialInOut.create=function(a){var b=new cc.EaseExponentialInOut;b&&b.initWithAction(a);return b}; +cc.EaseSineIn=cc.ActionEase.extend({update:function(a){this._other.update(-1*Math.cos(a*Math.PI/2)+1)},reverse:function(){return cc.EaseSineOut.create(this._other.reverse())},copyWithZone:function(){}});cc.EaseSineIn.create=function(a){var b=new cc.EaseSineIn;b&&b.initWithAction(a);return b};cc.EaseSineOut=cc.ActionEase.extend({update:function(a){this._other.update(Math.sin(a*Math.PI/2))},reverse:function(){return cc.EaseSineIn.create(this._other.reverse())},copyWithZone:function(){}}); +cc.EaseSineOut.create=function(a){var b=new cc.EaseSineOut;b&&b.initWithAction(a);return b};cc.EaseSineInOut=cc.ActionEase.extend({update:function(a){this._other.update(-0.5*(Math.cos(Math.PI*a)-1))},reverse:function(){return cc.EaseSineInOut.create(this._other.reverse())},copyWithZone:function(){}});cc.EaseSineInOut.create=function(a){var b=new cc.EaseSineInOut;b&&b.initWithAction(a);return b}; +cc.EaseElastic=cc.ActionEase.extend({getPeriod:function(){return this._period},setPeriod:function(a){this._period=a},initWithAction:function(a,b){this._super(a);this._period=null==b?3:b;return!0},reverse:function(){cc.Assert(0,"Override me");return null},copyWithZone:function(){},_period:null});cc.EaseElastic.create=function(a,b){var c=new cc.EaseElastic;c&&(null==b?c.initWithAction(a):c.initWithAction(a,b));return c}; +cc.EaseElasticIn=cc.EaseElastic.extend({update:function(a){var b=0;0==a||1==a?b=a:(b=this._period/4,a-=1,b=-Math.pow(2,10*a)*Math.sin(2*(a-b)*Math.PI/this._period));this._other.update(b)},reverse:function(){return cc.EaseElasticOut.create(this._other.reverse(),this._period)},copyWithZone:function(){}});cc.EaseElasticIn.create=function(a,b){var c=new cc.EaseElasticIn;c&&(null==b?c.initWithAction(a):c.initWithAction(a,b));return c}; +cc.EaseElasticOut=cc.EaseElastic.extend({update:function(a){var b=0;0==a||1==a?b=a:(b=this._period/4,b=Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/this._period)+1);this._other.update(b)},reverse:function(){return cc.EaseElasticIn.create(this._other.reverse(),this._period)},copyWithZone:function(){}});cc.EaseElasticOut.create=function(a,b){var c=new cc.EaseElasticOut;c&&(null==b?c.initWithAction(a):c.initWithAction(a,b));return c}; +cc.EaseElasticInOut=cc.EaseElastic.extend({update:function(a){var b=0;0==a||1==a?b=a:(this._period||(this._period=0.3*1.5),b=this._period/4,a=2*a-1,b=0>a?-0.5*Math.pow(2,10*a)*Math.sin(2*(a-b)*Math.PI/this._period):0.5*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/this._period)+1);this._other.update(b)},reverse:function(){return cc.EaseInOut.create(this._other.reverse(),this._period)},copyWithZone:function(){}}); +cc.EaseElasticInOut.create=function(a,b){var c=new cc.EaseElasticInOut;c&&(null==b?c.initWithAction(a):c.initWithAction(a,b));return c};cc.EaseBounce=cc.ActionEase.extend({bounceTime:function(a){if(a<1/2.75)return 7.5625*a*a;if(a<2/2.75)return a-=1.5/2.75,7.5625*a*a+0.75;if(a<2.5/2.75)return a-=2.25/2.75,7.5625*a*a+0.9375;a-=2.625/2.75;return 7.5625*a*a+0.984375},reverse:function(){return cc.EaseBounce.create(this._other.reverse())},copyWithZone:function(){}}); +cc.EaseBounce.create=function(a){var b=new cc.EaseBounce;b&&b.initWithAction(a);return b};cc.EaseBounceIn=cc.EaseBounce.extend({update:function(a){a=1-this.bounceTime(1-a);this._other.update(a)},reverse:function(){return cc.EaseBounceOut.create(this._other.reverse())},copyWithZone:function(){}});cc.EaseBounceIn.create=function(a){var b=new cc.EaseBounceIn;b&&b.initWithAction(a);return b}; +cc.EaseBounceOut=cc.EaseBounce.extend({update:function(a){a=this.bounceTime(a);this._other.update(a)},reverse:function(){return cc.EaseBounceIn.create(this._other.reverse())},copyWithZone:function(){}});cc.EaseBounceOut.create=function(a){var b=new cc.EaseBounceOut;b&&b.initWithAction(a);return b}; +cc.EaseBounceInOut=cc.EaseBounce.extend({update:function(a){var b=0,b=0.5>a?0.5*(1-this.bounceTime(1-2*a)):0.5*this.bounceTime(2*a-1)+0.5;this._other.update(b)},reverse:function(){return cc.EaseBounceInOut.create(this._other.reverse())},copyWithZone:function(){}});cc.EaseBounceInOut.create=function(a){var b=new cc.EaseBounceInOut;b&&b.initWithAction(a);return b}; +cc.EaseBackIn=cc.ActionEase.extend({update:function(a){this._other.update(a*a*(2.70158*a-1.70158))},reverse:function(){return cc.EaseBackOut.create(this._other.reverse())},copyWithZone:function(){}});cc.EaseBackIn.create=function(a){var b=new cc.EaseBackIn;b&&b.initWithAction(a);return b};cc.EaseBackOut=cc.ActionEase.extend({update:function(a){a-=1;this._other.update(a*a*(2.70158*a+1.70158)+1)},reverse:function(){return cc.EaseBackIn.create(this._other.reverse())},copyWithZone:function(){}}); +cc.EaseBackOut.create=function(a){var b=new cc.EaseBackOut;b&&b.initWithAction(a);return b};cc.EaseBackInOut=cc.ActionEase.extend({update:function(a){a*=2;1>a?this._other.update(a*a*(3.5949095*a-2.5949095)/2):(a-=2,this._other.update(a*a*(3.5949095*a+2.5949095)/2+1))},reverse:function(){return cc.EaseBackInOut.create(this._other.reverse())},copyWithZone:function(){}});cc.EaseBackInOut.create=function(a){var b=new cc.EaseBackInOut;b&&b.initWithAction(a);return b};cc=cc=cc||{}; +cc.GridAction=cc.ActionInterval.extend({_gridSize:null,startWithTarget:function(a){this._super(a);var a=this.getGrid(),b=this._target,c=b.getGrid();c&&0a?0:a;a=a>this._controlPoints.length-1?this._controlPoints.length- +1:a;return this._controlPoints[a]},removeControlPointAtIndex:function(a){cc.ArrayRemoveObjectAtIndex(this._controlPoints,a)},count:function(){return this._controlPoints.length},reverse:function(){for(var a=[],b=this._controlPoints.length-1;0<=b;b--)a.push(cc.p(this._controlPoints[b].x,this._controlPoints[b].y));b=new cc.PointArray;b.setControlPoints(a);return b},reverseInline:function(){for(var a=this._controlPoints.length,b=0|a/2,c=0;ca;a++)this._squareColors[a].r=this._color.r/255,this._squareColors[a].g=this._color.g/255,this._squareColors[a].b=this._color.b/255,this._squareColors[a].a=this._opacity/255},setOpacityModifyRGB:function(){},isOpacityModifyRGB:function(){return!1},draw:function(a){a=a||cc.renderContext;if(cc.renderContextType==cc.CANVAS){var b=this.getContentSize().width,c=this.getContentSize().height, +d=this.getAnchorPointInPoints(),e=a.createLinearGradient(-d.x,d.y,-d.x+b,-(d.y+c));e.addColorStop(0,"rgba("+Math.round(255*this._squareColors[0].r)+","+Math.round(255*this._squareColors[0].g)+","+Math.round(255*this._squareColors[0].b)+","+this._squareColors[0].a.toFixed(4)+")");e.addColorStop(1,"rgba("+Math.round(255*this._squareColors[3].r)+","+Math.round(255*this._squareColors[3].g)+","+Math.round(255*this._squareColors[3].b)+","+this._squareColors[3].a.toFixed(4)+")");a.fillStyle=e;a.fillRect(-d.x, +d.y,b,-c)}this._super(a);cc.INCREMENT_GL_DRAWS(1)}});cc.LayerColor.create=function(a,b,c){var d=new cc.LayerColor;switch(arguments.length){case 0:d.init();break;case 1:d.initWithColor(a);break;case 3:d.initWithColor(a,b,c);break;default:d.init()}return d}; +cc.LayerGradient=cc.LayerColor.extend({_startColor:new cc.Color3B(0,0,0),_endColor:new cc.Color3B(0,0,0),_startOpacity:null,_endOpacity:null,_alongVector:null,_compressedInterpolation:!1,ctor:function(){this._startColor=new cc.Color3B(0,0,0);this._endColor=new cc.Color3B(0,0,0);this._alongVector=cc.p(0,-1);this._super()},getStartColor:function(){return this._color},setStartColor:function(a){this.setColor(a)},setEndColor:function(a){this._endColor=a;this._updateColor()},getEndColor:function(){return this._endColor}, +setStartOpacity:function(a){this._startOpacity=a;this._updateColor()},getStartOpacity:function(){return this._startOpacity},setEndOpacity:function(a){this._endOpacity=a;this._updateColor()},getEndOpacity:function(){return this._endOpacity},setVector:function(a){this.alongVector=a;this._updateColor()},getVector:function(){return this.alongVector},isCompressedInterpolation:function(){return this._compressedInterpolation},setCompressedInterpolation:function(a){this._compressedInterpolation=a;this._updateColor()}, +initWithColor:function(a,b,c){2==arguments.length&&(c=cc.p(0,-1));this._startColor.r=a.r;this._startColor.g=a.g;this._startColor.b=a.b;this._startOpacity=a.a;this._endColor.r=b.r;this._endColor.g=b.g;this._endColor.b=b.b;this._endOpacity=b.a;this.alongVector=c;this._compressedInterpolation=!0;return this._super(cc.c4b(a.r,a.g,a.b,255))},_updateColor:function(){this._super();var a=cc.pLength(this._alongVector);if(0!=a){var b=Math.sqrt(2),a=cc.p(this._alongVector.x/a,this._alongVector.y/a);if(this._compressedInterpolation)var c= +1/(Math.abs(a.x)+Math.abs(a.y)),a=cc.pMult(a,c*b);var d=this._opacity/255,c=new cc.Color4F(this._startColor.r/255,this._startColor.g/255,this._startColor.b/255,this._startOpacity*d/255),d=new cc.Color4F(this._endColor.r/255,this._endColor.g/255,this._endColor.b/255,this._endOpacity*d/255);this._squareColors[0].r=parseInt(d.r+(c.r-d.r)*((b+a.x+a.y)/(2*b)));this._squareColors[0].g=parseInt(d.g+(c.g-d.g)*((b+a.x+a.y)/(2*b)));this._squareColors[0].b=parseInt(d.b+(c.b-d.b)*((b+a.x+a.y)/(2*b)));this._squareColors[0].a= +parseInt(d.a+(c.a-d.a)*((b+a.x+a.y)/(2*b)));this._squareColors[1].r=parseInt(d.r+(c.r-d.r)*((b-a.x+a.y)/(2*b)));this._squareColors[1].g=parseInt(d.g+(c.g-d.g)*((b-a.x+a.y)/(2*b)));this._squareColors[1].b=parseInt(d.b+(c.b-d.b)*((b-a.x+a.y)/(2*b)));this._squareColors[1].a=parseInt(d.a+(c.a-d.a)*((b-a.x+a.y)/(2*b)));this._squareColors[2].r=parseInt(d.r+(c.r-d.r)*((b+a.x-a.y)/(2*b)));this._squareColors[2].g=parseInt(d.g+(c.g-d.g)*((b+a.x-a.y)/(2*b)));this._squareColors[2].b=parseInt(d.b+(c.b-d.b)*((b+ +a.x-a.y)/(2*b)));this._squareColors[2].a=parseInt(d.a+(c.a-d.a)*((b+a.x-a.y)/(2*b)));this._squareColors[3].r=parseInt(d.r+(c.r-d.r)*((b-a.x-a.y)/(2*b)));this._squareColors[3].g=parseInt(d.g+(c.g-d.g)*((b-a.x-a.y)/(2*b)));this._squareColors[3].b=parseInt(d.b+(c.b-d.b)*((b-a.x-a.y)/(2*b)));this._squareColors[3].a=parseInt(d.a+(c.a-d.a)*((b-a.x-a.y)/(2*b)))}}}); +cc.LayerGradient.create=function(a,b,c){var d=new cc.LayerGradient;switch(arguments.length){case 2:if(d&&d.initWithColor(a,b))return d;break;case 3:if(d&&d.initWithColor(a,b,c))return d;break;case 0:if(d&&d.init())return d;break;default:throw"Arguments error ";}return null}; +cc.LayerMultiplex=cc.Layer.extend({_enabledLayer:0,_layers:null,ctor:function(){this._super()},initWithLayer:function(a){this._layers=[];this._layers.push(a);this._enabledLayer=0;this.addChild(a);return!0},initWithLayers:function(a){this._layers=a;this._enabledLayer=0;this.addChild(this._layers[this._enabledLayer]);return!0},switchTo:function(a){cc.Assert(ab&&(a=b);this._layerContext.translate(0,this._layerCanvas.height);this._layerContext.scale(a,a)},getLayerCanvas:function(){return this._layerCanvas},addChild:function(a,b,c){this._isNeedUpdate= +!0;this._super(a,b,c)},removeChild:function(a,b){this._isNeedUpdate=!0;this._super(a,b)},visit:function(){if(this._isVisible&&this._isNeedUpdate){this._isNeedUpdate=!1;var a=this._layerContext;a.save();a.clearRect(0,0,this._layerCanvas.width,-this._layerCanvas.height);if(this._children&&0a.height?(a=16,b=12):(a=12,b=16);a=this.actionWithSize(cc.g(a,b));this._back?(this._inScene.setVisible(!1),this._inScene.runAction(cc.Sequence.create(cc.Show.create(), +a,cc.CallFunc.create(this,cc.TransitionScene.finish),cc.StopGrid.create()))):this._outScene.runAction(cc.Sequence.create(a,cc.CallFunc.create(this,cc.TransitionScene.finish),cc.StopGrid.create()))},_sceneOrder:function(){this.isInSceneOnTop=this._back}});cc.TransitionPageTurn.create=function(a,b,c){var d=new cc.TransitionPageTurn;d.initWithDuration(a,b,c);return d};cc.SPRITE_INDEX_NOT_INITIALIZED="0xffffffff"; +cc.generateTextureCacheForColor=function(a){var b=a.width,c=a.height,d=[],e=document.createElement("canvas");e.width=b;e.height=c;var f=e.getContext("2d");f.drawImage(a,0,0);e=document.createElement("canvas");e.width=b;e.height=c;for(var e=e.getContext("2d"),f=f.getImageData(0,0,b,c).data,g=0;3>g;g++){var h=document.createElement("canvas");h.width=b;h.height=c;var j=h.getContext("2d");e.drawImage(a,0,0);for(var k=e.getImageData(0,0,b,c),l=k.data,m=0;mc?d&&d.initWithFile(a)?d:null:d&&d.initWithFile(a,b)?d:null}; +cc.Sprite.createWithSpriteFrameName=function(a){if("string"==typeof a){var b=cc.SpriteFrameCache.getInstance().getSpriteFrame(a);if(b)a=b;else return cc.log("Invalid spriteFrameName: "+a),null}return(b=new cc.Sprite)&&b.initWithSpriteFrame(a)?b:null};cc.AnimationFrame=cc.Class.extend({_spriteFrame:null,_delayPerUnit:0,_userInfo:null,ctor:function(){this._delayPerUnit=0},copyWithZone:function(){return cc.clone(this)},copy:function(){var a=new cc.AnimationFrame;a.initWithSpriteFrame(this._spriteFrame,this._delayPerUnit,this._userInfo);return a},initWithSpriteFrame:function(a,b,c){this.setSpriteFrame(a);this.setDelayUnits(b);this.setUserInfo(c);return!0},getSpriteFrame:function(){return this._spriteFrame},setSpriteFrame:function(a){this._spriteFrame= +a},getDelayUnits:function(){return this._delayPerUnit},setDelayUnits:function(a){this._delayPerUnit=a},getUserInfo:function(){return this._userInfo},setUserInfo:function(a){this._userInfo=a}}); +cc.Animation=cc.Class.extend({_frames:null,_loops:0,_restoreOriginalFrame:!1,_duration:0,_delayPerUnit:0,_totalDelayUnits:0,ctor:function(){this._frames=[]},getFrames:function(){return this._frames},setFrames:function(a){this._frames=a},addSpriteFrame:function(a){var b=new cc.AnimationFrame;b.initWithSpriteFrame(a,1,null);this._frames.push(b);this._totalDelayUnits++},addSpriteFrameWithFileName:function(a){var a=cc.TextureCache.getInstance().addImage(a),b=cc.RectZero();b.size=a instanceof HTMLImageElement|| +a instanceof HTMLCanvasElement?cc.size(a.width,a.height):a.getContentSize();a=cc.SpriteFrame.createWithTexture(a,b);this.addSpriteFrame(a)},addSpriteFrameWithTexture:function(a,b){var c=cc.SpriteFrame.createWithTexture(a,b);this.addSpriteFrame(c)},initWithAnimationFrames:function(a,b,c){cc.ArrayVerifyType(a,cc.AnimationFrame);this._delayPerUnit=b;this._loops=c;this.setFrames([]);for(b=0;b=e,"format is not supported for cc.SpriteFrameCache addSpriteFramesWithDictionary:textureFilename:");for(var f in d){var g=d[f];if(g&&(c=this._spriteFrames[f], +!c)){if(0==e){var h=parseFloat(this._valueForKey("x",g)),j=parseFloat(this._valueForKey("y",g)),k=parseFloat(this._valueForKey("width",g)),l=parseFloat(this._valueForKey("height",g)),m=parseFloat(this._valueForKey("offsetX",g)),n=parseFloat(this._valueForKey("offsetY",g)),q=parseInt(this._valueForKey("originalWidth",g)),g=parseInt(this._valueForKey("originalHeight",g));(!q||!g)&&cc.log("cocos2d: WARNING: originalWidth/Height not found on the cc.SpriteFrame. AnchorPoint won't work as expected. Regenrate the .plist"); +q=Math.abs(q);g=Math.abs(g);c=new cc.SpriteFrame;c.initWithTexture(b,cc.rect(h,j,k,l),!1,cc.p(m,n),cc.size(q,g))}else if(1==e||2==e)h=cc.RectFromString(this._valueForKey("frame",g)),j=!1,2==e&&(j="true"==this._valueForKey("rotated",g)),k=cc.PointFromString(this._valueForKey("offset",g)),g=cc.SizeFromString(this._valueForKey("sourceSize",g)),c=new cc.SpriteFrame,c.initWithTexture(b,h,j,k,g);else if(3==e){g.hasOwnProperty("spriteSize")?(h=cc.SizeFromString(this._valueForKey("spriteSize",g)),j=cc.PointFromString(this._valueForKey("spriteOffset", +g)),k=cc.SizeFromString(this._valueForKey("spriteSourceSize",g)),l=cc.RectFromString(this._valueForKey("textureRect",g)),m="true"==this._valueForKey("textureRotated",g)):(h=cc.RectFromString(this._valueForKey("frame",g)),j=cc.PointFromString(this._valueForKey("offset",g)),k=cc.SizeFromString(this._valueForKey("sourceSize",g)),l=cc.SizeFromString(this._valueForKey("sourceSize",g)),m="true"==this._valueForKey("rotated",g));var c=g.aliases,n=f.toString(),r;for(r in c)this._spriteFramesAliases.hasOwnProperty(c[r])&& +cc.log("cocos2d: WARNING: an alias with name "+r+" already exists"),this._spriteFramesAliases[c[r]]=n;c=new cc.SpriteFrame;g.hasOwnProperty("spriteSize")?c.initWithTexture(b,cc.rect(l.origin.x,l.origin.y,h.width,h.height),m,j,k):c.initWithTexture(b,h,m,j,k)}c.isRotated()&&(g=cc.cutRotateImageToCanvas(c.getTexture(),c.getRect()),h=c.getRect(),c.setRect(cc.rect(0,0,h.size.width,h.size.height)),c.setTexture(g));this._spriteFrames[f]=c}}},addSpriteFramesWithJson:function(a){var b="",c=a.metadata;c&&(b= +this._valueForKey("textureFileName",c),b=b.toString());(b=cc.TextureCache.getInstance().addImage(b))?this._addSpriteFramesWithDictionary(a,b):cc.log("cocos2d: cc.SpriteFrameCache: Couldn't load texture")},addSpriteFrames:function(a,b){var c=cc.FileUtils.getInstance().dictionaryWithContentsOfFileThreadSafe(a);switch(arguments.length){case 1:cc.Assert(a,"plist filename should not be NULL");if(!cc.ArrayContainsObject(this._loadedFileNames,a)){var d="",e=c.metadata;e&&(d=this._valueForKey("textureFileName", +e).toString());""!=d?(e=a.lastIndexOf("/"),d=(e?a.substring(0,e+1):"")+d):(d=a,e=d.lastIndexOf(".",d.length),d=d.substr(0,e),d+=".png",cc.log("cocos2d: cc.SpriteFrameCache: Trying to use file "+d.toString()+" as texture"));(d=cc.TextureCache.getInstance().addImage(d))?this._addSpriteFramesWithDictionary(c,d):cc.log("cocos2d: cc.SpriteFrameCache: Couldn't load texture")}break;case 2:b instanceof cc.Texture2D||b instanceof HTMLImageElement||b instanceof HTMLCanvasElement?this._addSpriteFramesWithDictionary(c, +b):(cc.Assert(b,"texture name should not be null"),(d=cc.TextureCache.getInstance().addImage(b))?this._addSpriteFramesWithDictionary(c,d):cc.log("cocos2d: cc.SpriteFrameCache: couldn't load texture file. File not found "+b));break;default:throw"Argument must be non-nil ";}},addSpriteFrame:function(a,b){this._spriteFrames[b]=a},removeSpriteFrames:function(){this._spriteFrames=[];this._spriteFramesAliases=[];this._loadedFileNames={}},removeSpriteFrameByName:function(a){a&&(this._spriteFramesAliases.hasOwnProperty(a)&& +delete this._spriteFramesAliases[a],this._spriteFrames.hasOwnProperty(a)&&delete this._spriteFrames[a],this._loadedFileNames={})},removeSpriteFramesFromFile:function(a){var b=cc.FileUtils.getInstance().fullPathFromRelativePath(a),b=cc.FileUtils.getInstance().dictionaryWithContentsOfFileThreadSafe(b);this._removeSpriteFramesFromDictionary(b);cc.ArrayContainsObject(this._loadedFileNames,a)&&cc.ArrayRemoveObject(a)},_removeSpriteFramesFromDictionary:function(a){var a=a.frames,b;for(b in a)this._spriteFrames.hasOwnProperty(b)&& +delete this._spriteFrames[b]},removeSpriteFramesFromTexture:function(a){for(var b in this._spriteFrames){var c=this._spriteFrames[b];c&&c.getTexture()==a&&delete this._spriteFrames[b]}},getSpriteFrame:function(a){var b;this._spriteFrames.hasOwnProperty(a)&&(b=this._spriteFrames[a]);if(!b){var c;this._spriteFramesAliases.hasOwnProperty(a)&&(c=this._spriteFramesAliases[a]);c&&(this._spriteFrames.hasOwnProperty(c.toString())&&(b=this._spriteFrames[c.toString()]),b||cc.log("cocos2d: cc.SpriteFrameCahce: Frame "+ +a+" not found"))}return b},_valueForKey:function(a,b){return b&&b.hasOwnProperty(a)?b[a].toString():""}});cc.s_sharedSpriteFrameCache=null;cc.SpriteFrameCache.getInstance=function(){cc.s_sharedSpriteFrameCache||(cc.s_sharedSpriteFrameCache=new cc.SpriteFrameCache);return cc.s_sharedSpriteFrameCache};cc.SpriteFrameCache.purgeSharedSpriteFrameCache=function(){cc.s_sharedSpriteFrameCache=null};cc.DEFAULT_SPRITE_BATCH_CAPACITY=29; +cc.SpriteBatchNode=cc.Node.extend({_textureAtlas:new cc.TextureAtlas,_blendFunc:new cc.BlendFunc(0,0),_descendants:[],_renderTexture:null,_isUseCache:!1,_originalTexture:null,ctor:function(a){this._super();a&&this.initWithFile(a,cc.DEFAULT_SPRITE_BATCH_CAPACITY);this._renderTexture=cc.RenderTexture.create(cc.canvas.width,cc.canvas.height);this.setContentSize(cc.size(cc.canvas.width,cc.canvas.height))},setContentSize:function(a){a&&(this._super(a),this._renderTexture.setContentSize(a))},_updateBlendFunc:function(){this._textureAtlas.getTexture().hasPremultipliedAlpha()|| +(this._blendFunc.src=gl.SRC_ALPHA,this._blendFunc.dst=gl.ONE_MINUS_SRC_ALPHA)},_updateAtlasIndex:function(a,b){var c=0,d=a.getChildren();d&&(c=d.length);var e=0;if(0==c)e=a.getAtlasIndex(),a.setAtlasIndex(b),a.setOrderOfArrival(0),e!=b&&this._swap(e,b),b++;else{e=!0;0<=d[0].getZOrder()&&(e=a.getAtlasIndex(),a.setAtlasIndex(b),a.setOrderOfArrival(0),e!=b&&this._swap(e,b),b++,e=!1);for(c=0;c=b&&++d;this._descendants=cc.ArrayAppendObjectToIndex(this._descendants,a,d);this.addChild(a,b,c);this.reorderBatch(!1);return this},getTextureAtlas:function(){return this._textureAtlas},setTextureAtlas:function(a){a!=this._textureAtlas&&(this._textureAtlas=a)},getDescendants:function(){return this._descendants},initWithTexture:function(a,b){this._children= +[];this._descendants=[];this._blendFunc.src=cc.BLEND_SRC;this._blendFunc.dst=cc.BLEND_DST;this._textureAtlas=new cc.TextureAtlas;b=b||cc.DEFAULT_SPRITE_BATCH_CAPACITY;this._textureAtlas.initWithTexture(a,b);cc.renderContextType==cc.CANVAS&&(this._originalTexture=a);cc.renderContextType==cc.WEBGL&&this._updateBlendFunc();return!0},setNodeDirty:function(){this._setNodeDirtyForCache();this._isTransformDirty=this._isInverseDirty=!0;cc.NODE_TRANSFORM_USING_AFFINE_MATRIX&&(this._isTransformGLDirty=!0)}, +_setNodeDirtyForCache:function(){this._isCacheDirty=!0},initWithFile:function(a,b){var c=cc.TextureCache.getInstance().textureForKey(a);c||(c=cc.TextureCache.getInstance().addImage(a));return this.initWithTexture(c,b)},init:function(){var a=new cc.Texture2D;return this.initWithTexture(a,0)},increaseAtlasCapacity:function(){var a=4*(this._textureAtlas.getCapacity()+1)/3;cc.log("cocos2d: CCSpriteBatchNode: resizing TextureAtlas capacity from "+this._textureAtlas.getCapacity()+" to ["+a+"].");this._textureAtlas.resizeCapacity(a)|| +(cc.log("cocos2d: WARNING: Not enough memory to resize the atlas"),cc.Assert(!1,"Not enough memory to resize the atla"))},removeChildAtIndex:function(a,b){this.removeChild(this._children[a],b)},insertChild:function(a,b){a.setBatchNode(this);a.setAtlasIndex(b);a.setDirty(!0);this._textureAtlas.getTotalQuads()==this._textureAtlas.getCapacity()&&this.increaseAtlasCapacity();this._textureAtlas.insertQuad(a.getQuad(),b);this._descendants=cc.ArrayAppendObjectToIndex(this._descendants,a,b);var c=b+1;if(this._descendants&& +0e.getZOrder()&&(b=this.rebuildIndexInOrder(e,b))}a.isEqual(this)||(a.setAtlasIndex(b),b++);if(c&&0b?c.getAtlasIndex():c.getAtlasIndex()+1;if(0>f.getZOrder()&&0>b||0<=f.getZOrder()&& +0<=b)return this.highestAtlasIndexInChild(f)+1;c=a.getParent();return c.getAtlasIndex()+1},reorderBatch:function(a){this._reorderChildDirty=a},getTexture:function(){return this._textureAtlas.getTexture()},setTexture:function(a){this._textureAtlas.setTexture(a);for(var b=0;b"},setString:function(a){this._string!=a&&(this._string=a,0this._dimensions.width||this._string.indexOf("\n"))&&0!==this._dimensions.width?this._wrapText(a,this._string,-this._dimensions.width* +this._anchorPoint.x,this._dimensions.height*this._anchorPoint.y,this._dimensions.width,this._dimensions.height,1.2*this._fontSize):0==this._dimensions.width?a.fillText(this._string,-this._contentSize.width*this._anchorPoint.x,this._contentSize.height*this._anchorPoint.y):a.fillText(this._string,-this._dimensions.width*this._anchorPoint.x+b,this._dimensions.height*this._anchorPoint.y+c);cc.INCREMENT_GL_DRAWS(1)}},_wrapText:function(a,b,c,d,e,f,g){var h=this._lineCount()-1,j;switch(this._hAlignment){case cc.TEXT_ALIGNMENT_LEFT:a.textAlign= +"left";j=0;break;case cc.TEXT_ALIGNMENT_RIGHT:a.textAlign="right";j=e;break;default:a.textAlign="center",j=e/2}switch(this._vAlignment){case cc.VERTICAL_TEXT_ALIGNMENT_TOP:a.textBaseline="top";f=-f;break;case cc.VERTICAL_TEXT_ALIGNMENT_BOTTOM:a.textBaseline="bottom";f=-g*h;break;default:a.textBaseline="middle",f=-f/2-g*h/2}b=b.split("\n");for(h=0;h=e?(a.fillText(m, +c+j,d+f+k),d+=g,m=l[n]+" "):m=q;n==l.length-1&&a.fillText(m,c+j,d+f+k)}},_lineCount:function(){if(0==this._dimensions.width)return 1;var a=cc.renderContext,b=this._string.split(" "),c="",d=0;cc.renderContext.save();for(var e=0;e=this._dimensions.width&&(d++,c=b[e]+" "),e==b.length-1&&d++;cc.renderContext.restore();return d},_updateTTF:function(){cc.renderContext.save();this._fontStyleStr=this._fontSize+"px '"+this._fontName+ +"'";cc.renderContext.font=this._fontStyleStr;var a=cc.renderContext.measureText(this._string);this.setContentSize(cc.size(a.width,this._fontSize));cc.renderContext.restore();this.setNodeDirty()}});cc.LabelTTF.create=function(){var a=new cc.LabelTTF;return a.initWithString(arguments)?a:null};cc.LabelTTF.node=function(){return cc.LabelTTF.create()};cc.LabelNode=function(a,b,c){this.pos=a;this.text=b;this.align=c};cc.LabelAutomaticWidth=-1;cc._KerningHashElement=function(a,b){this.key=a;this.amount=b};cc._FontDefHashElement=function(a,b){this.key=a||0;this.fontDef=b||new cc._BMFontDef};cc._BMFontDef=function(a,b,c,d,e){this.charID=a||0;this.rect=b||cc.rect(0,0,0.1,0.1);this.xOffset=c||0;this.yOffset=d||0;this.xAdvance=e||0};cc._BMFontPadding=function(a,b,c,d){this.left=a||0;this.top=b||0;this.right=c||0;this.bottom=d||0}; +cc.BMFontConfiguration=cc.Class.extend({bitmapFontArray:{},commonHeight:0,padding:new cc._BMFontPadding,atlasName:"",kerningDictionary:{},fontDefDictionary:null,ctor:function(){this.fontDefDictionary={};this.fontDefDictionary["0"]=new cc._FontDefHashElement},description:function(){return""},getAtlasName:function(){return this.atlasName},setAtlasName:function(a){this.atlasName=a},initWithFNTfile:function(a){cc.Assert(null!= +a&&0!=a.length,"");this._parseConfigFile(a);return!0},_parseConfigFile:function(a){var b=cc.SAXParser.getInstance().getList(a);cc.Assert(b,"cc.BMFontConfiguration._parseConfigFile | Open file error.");var c,d;d=/padding+[a-z0-9\-= ",]+/gi;(c=d.exec(b)[0])&&this._parseInfoArguments(c);d=/common lineHeight+[a-z0-9\-= ",]+/gi;(c=d.exec(b)[0])&&this._parseCommonArguments(c);d=/page id=[a-zA-Z0-9\.\-= ",]+/gi;(c=d.exec(b)[0])&&this._parseImageFileName(c,a);d=/chars c+[a-z0-9\-= ",]+/gi;d.exec(b);d=/char id=\w[a-z0-9\-= ]+/gi; +if(c=b.match(d))for(a=0;a=a)break;var n=this._string[e];g||(j=this._getLetterPosXLeft(l),g=!0);f||(h=j,f=!0);if(10==n.charCodeAt(0)){c.push("\n");b=b.concat(c);c.length=0;f=g=!1;h=j=-1;e++;d++;if(e>=a)break;n=this._string[e];j||(j=this._getLetterPosXLeft(l),g=!0);h||(h=j,f=!0)}if(32==n.charCodeAt(0))c.push(n),b=b.concat(c),c.length=0,g=!1,j=-1,e++;else if(this._getLetterPosXRight(l)-h>this._width)if(this._lineBreakWithoutSpaces){cc.utf8_trim_ws(c); +c.push("\n");b=b.concat(c);c.length=0;f=g=!1;h=j=-1;d++;if(e>=a)break;j||(j=this._getLetterPosXLeft(l),g=!0);h||(h=j,f=!0);m--}else c.push(n),-1!=b.lastIndexOf(" ")?cc.utf8_trim_ws(b):b=[],0l)&&(m=this.getChildByTag(l),null!=m)){m=m.getPosition().x+m.getContentSize().width/2;g=0;switch(this._alignment){case cc.TEXT_ALIGNMENT_CENTER:g=this.getContentSize().width/2-m/2;break;case cc.TEXT_ALIGNMENT_RIGHT:g=this.getContentSize().width-m}if(0!=g)for(m=0;ml||(l=this.getChildByTag(l),l.setPosition(cc.pAdd(l.getPosition(),cc.p(g,0))));e+=f;b++;c.length=0}}else c.push(this._string[e])}},setAlignment:function(a){this._alignment= +a;this.updateLabel()},setWidth:function(a){this._width=a;this.updateLabel()},setLineBreakWithoutSpace:function(a){this._lineBreakWithoutSpaces=a;this.updateLabel()},setScale:function(a,b){this._super(a,b);this.updateLabel()},setScaleX:function(a){this._super(a);this.updateLabel()},setScaleY:function(a){this._super(a);this.updateLabel()},setFntFile:function(a){if(null!=a&&a!=this._fntFile){var b=cc.FNTConfigLoadFile(a);cc.Assert(b,"cc.LabelBMFont: Impossible to create font. Please check file");this._fntFile= +a;this._configuration=b;this.setTexture(cc.TextureCache.getInstance().addImage(this._configuration.getAtlasName()));cc.renderContextType==cc.CANVAS&&(this._originalTexture=this.getTexture());this.createFontChars()}},getFntFile:function(){return this._fntFile},setAnchorPoint:function(a){cc.Point.CCPointEqualToPoint(a,this._anchorPoint)||(this._super(a),this.updateLabel())},_atlasNameFromFntFile:function(){},_kerningAmountForFirst:function(a,b){var c=0;if(this._configuration.kerningDictionary){var d= +this._configuration.kerningDictionary[(a<<16|b&65535).toString()];d&&(c=d.amount)}return c},_getLetterPosXLeft:function(a){return a.getPosition().x*this._scaleX+a.getContentSize().width*this._scaleX*a.getAnchorPoint().x},_getLetterPosXRight:function(a){return a.getPosition().x*this._scaleX-a.getContentSize().width*this._scaleX*a.getAnchorPoint().x}});cc.LabelBMFont.create=function(a,b,c,d,e){var f=new cc.LabelBMFont;return 0==arguments.length?f&&f.init()?f:null:f&&f.initWithString(a,b,c,d,e)?f:null}; +cc.configurations=null;cc.FNTConfigLoadFile=function(a){cc.configurations||(cc.configurations={});var b=cc.configurations[a];b||(b=cc.BMFontConfiguration.create(a));return b};cc.purgeCachedData=function(){cc.FNTConfigRemoveCache()};cc.FNTConfigRemoveCache=function(){cc.configurations&&(cc.configurations={})};cc.isspace_unicode=function(a){a=a.charCodeAt(0);return 9<=a&&13>=a||32==a||133==a||160==a||5760==a||8192<=a&&8202>=a||8232==a||8233==a||8239==a||8287==a||12288==a}; +cc.utf8_trim_ws=function(a){var b=a.length;if(!(0>=b)&&(b-=1,cc.isspace_unicode(a[b]))){for(var c=b-1;0<=c;--c)if(cc.isspace_unicode(a[c]))b=c;else break;cc.utf8_trim_from(a,b)}};cc.utf8_trim_from=function(a,b){var c=a.length;b>=c||0>b||a.splice(b,c)};cc.PARTICLE_SHAPE_MODE=0;cc.PARTICLE_TEXTURE_MODE=1;cc.PARTICLE_STAR_SHAPE=0;cc.PARTICLE_BALL_SHAPE=1;cc.PARTICLE_DURATION_INFINITY=-1;cc.PARTICLE_START_SIZE_EQUAL_TO_END_SIZE=-1;cc.PARTICLE_START_RADIUS_EQUAL_TO_END_RADIUS=-1;cc.PARTICLE_MODE_GRAVITY=0;cc.PARTICLE_MODE_RADIUS=1;cc.PARTICLE_TYPE_FREE=0;cc.PARTICLE_TYPE_RELATIVE=1;cc.PARTICLE_TYPE_GROUPED=2;cc.PARTICLE_TYPE_FREE=cc.PARTICLE_TYPE_FREE;cc.PARTICLE_TYPE_GROUPED=cc.PARTICLE_TYPE_GROUPED; +cc.Particle=function(a,b,c,d,e,f,g,h,j,k,l,m){this.pos=a?a:cc.PointZero();this.startPos=b?b:cc.PointZero();this.color=c?c:new cc.Color4F(0,0,0,1);this.deltaColor=d?d:new cc.Color4F(0,0,0,1);this.size=e||0;this.deltaSize=f||0;this.rotation=g||0;this.deltaRotation=h||0;this.timeToLive=j||0;this.atlasIndex=k||0;this.modeA=l?l:new cc.Particle.ModeA;this.modeB=m?m:new cc.Particle.ModeB;this.isChangeColor=!1;this.drawPos=cc.p(0,0)}; +cc.Particle.ModeA=function(a,b,c){this.dir=a?a:cc.PointZero();this.radialAccel=b||0;this.tangentialAccel=c||0};cc.Particle.ModeB=function(a,b,c,d){this.angle=a||0;this.degreesPerSecond=b||0;this.radius=c||0;this.deltaRadius=d||0}; +cc.ParticleSystem=cc.Node.extend({_plistFile:"",_elapsed:0,_dontTint:!1,modeA:null,modeB:null,_particles:null,_emitCounter:0,_particleIdx:0,_batchNode:null,getBatchNode:function(){return this._batchNode},setBatchNode:function(a){if(this._batchNode!=a&&(this._batchNode=a))for(a=0;a=this._totalParticles},updateQuadWithParticle:function(){},postStep:function(){},update:function(a){if(this._isActive&&this._emissionRate){var b=1/this._emissionRate;this._particleCountb;)this.addParticle(),this._emitCounter-=b;this._elapsed+=a;-1!=this._duration&&this._durationthis._textureAtlas.getCapacity()&&(this._increaseAtlasCapacityTo(this._textureAtlas.getTotalQuads()+a.getTotalParticles()),this._textureAtlas.fillWithEmptyQuadsFromIndex(this._textureAtlas.getCapacity()- +a.getTotalParticles(),a.getTotalParticles()));a.getAtlasIndex()+a.getTotalParticles()!=this._textureAtlas.getTotalQuads()&&this._textureAtlas.moveQuadsFromIndex(b,b+a.getTotalParticles());this._textureAtlas.increaseTotalQuadsWith(a.getTotalParticles());this._updateAllAtlasIndexes()},removeChild:function(a,b){null!=a&&(cc.Assert(a instanceof cc.ParticleSystem,"cc.ParticleBatchNode only supports cc.QuadParticleSystems as children"),cc.Assert(-1a)return c;return b},_getCurrentIndex:function(a,b){for(var c=!1,d=!1,e=0,f=0,g=0,h=this._children.length,j=0;jb&&!d&&(e=j,d= +!0,c&&d))break;if(a==k&&(f=j,c=!0,d||(g=-1),c&&d))break}d||(e=h);return{newIndex:e+g,oldIndex:f}},_addChildHelper:function(a,b,c){cc.Assert(null!=a,"Argument must be non-nil");cc.Assert(null==a.getParent(),"child already added. It can't be added again");this._children||(this._children=[]);var d=this._searchNewPositionInChildrenForZ(b);this._children=cc.ArrayAppendObjectToIndex(this._children,a,d);a.setTag(c);a._setZOrder(b);a.setParent(this);this._isRunning&&(a.onEnter(),a.onEnterTransitionDidFinish()); +return d},_updateBlendFunc:function(){this._textureAtlas.getTexture().hasPremultipliedAlpha()||(this._blendFunc.src=gl.SRC_ALPHA,this._blendFunc.dst=gl.ONE_MINUS_SRC_ALPHA)},_getTextureAtlas:function(){},_setTextureAtlas:function(){}});cc.ParticleBatchNode.createWithTexture=function(a,b){var c=new cc.ParticleBatchNode;return c&&c.initWithTexture(a,b)?c:null};cc.ParticleBatchNode.create=function(a,b){var c=new cc.ParticleBatchNode;return c&&c.initWithFile(a,b)?c:null};cc.ParticleSystemQuad=cc.ParticleSystem.extend({_quads:null,_indices:null,_VAOname:0,_buffersVBO:[],_pointRect:null,ctor:function(){this._super();this._buffersVBO=[0,0];this._quads=[];this._indices=[];this._pointRect=cc.RectZero()},setupIndices:function(){for(var a=0;ab.getPriority()};cc.TouchHandlerHelperData=function(a){this.type=a}; +cc.TouchDispatcher=cc.Class.extend({_targetedHandlers:null,_standardHandlers:null,_locked:!1,_toAdd:!1,_toRemove:!1,_handlersToAdd:null,_handlersToRemove:null,_toQuit:!1,_dispatchEvents:!1,_handlerHelperData:[new cc.TouchHandlerHelperData(cc.TOUCH_BEGAN),new cc.TouchHandlerHelperData(cc.TOUCH_MOVED),new cc.TouchHandlerHelperData(cc.TOUCH_ENDED),new cc.TouchHandlerHelperData(cc.TOUCH_CANCELLED)],init:function(){this._dispatchEvents=!0;this._targetedHandlers=[];this._standardHandlers=[];this._handlersToAdd= +[];this._handlersToRemove=[];this._locked=this._toQuit=this._toAdd=this._toRemove=!1;cc.TouchDispatcher.registerHtmlElementEvent(cc.canvas);return!0},isDispatchEvents:function(){return this._dispatchEvents},setDispatchEvents:function(a){this._dispatchEvents=a},addStandardDelegate:function(a,b){var c=cc.StandardTouchHandler.handlerWithDelegate(a,b);this._locked?-1!=this._handlersToRemove.indexOf(a)?cc.ArrayRemoveObject(this._handlersToRemove,a):(this._handlersToAdd.push(c),this._toAdd=!0):this._standardHandlers= +this.forceAddHandler(c,this._standardHandlers)},addTargetedDelegate:function(a,b,c){b=cc.TargetedTouchHandler.handlerWithDelegate(a,b,c);this._locked?-1!=this._handlersToRemove.indexOf(a)?cc.ArrayRemoveObject(this._handlersToRemove,a):(this._handlersToAdd.push(b),this._toAdd=!0):this._targetedHandlers=this.forceAddHandler(b,this._targetedHandlers)},forceAddHandler:function(a,b){for(var c=0,d=0;dc,"TouchDispatcher.touches()");this._locked=!0;var d=this._targetedHandlers.length,e=this._standardHandlers.length,f=d&&e,g=f?a.slice(): +a,h=this._handlerHelperData[c];if(0=b)&&this.impl._delegateWithIme&&this.impl._delegateWithIme.insertText(a,b)},dispatchDeleteBackward:function(){this.impl&&this.impl._delegateWithIme&&this.impl._delegateWithIme.deleteBackward()},getContentText:function(){if(this.impl&&this.impl._delegateWithIme){var a=this.impl._delegateWithIme.getContentText();return a?a:""}return""},dispatchKeyboardWillShow:function(a){if(this.impl)for(var b= +0;ba?a==cc.KEY.backspace?this.dispatchDeleteBackward():a==cc.KEY.enter&&this.dispatchInsertText("\n",1):255>a&&this.dispatchInsertText(String.fromCharCode(a),1)}});cc.IMEDispatcher.Impl=cc.Class.extend({_delegateWithIme:null,_delegateList:null,ctor:function(){this._delegateList=[]},findDelegate:function(a){for(var b=0;b=a?(this._inputText="",this._charCount=0,this.setString(this._placeHolder,!0)):(a=this._inputText.substring(0,a-1),this.setString(a))},removeDelegate:function(){cc.IMEDispatcher.getInstance().removeDelegate(this)},insertText:function(a){var b=a,a=b.indexOf("\n");-1cc.DIRECTOR_FPS_INTERVAL&&(this._SPFLabel.setString(this._secondsPerFrame.toFixed(3)),this._frameRate=this._frames/this._accumDt,this._accumDt=this._frames=0,this._szFPS=""+this._frameRate.toFixed(1),this._FPSLabel.setString(this._szFPS),this._drawsLabel.setString((0|cc.g_NumberOfDraws).toString())),this._FPSLabel.visit(),this._SPFLabel.visit(), +this._drawsLabel.visit()):this._createStatsLabel());cc.g_NumberOfDraws=0},updateContentScaleFactor:function(){this._openGLView.canSetContentScaleFactor()?(this._openGLView.setContentScaleFactor(this._contentScaleFactor),this._isContentScaleSupported=!0):cc.log("cocos2d: setContentScaleFactor:'is not supported on this device")},isSendCleanupToScene:function(){return this._sendCleanupToScene},getRunningScene:function(){return this._runningScene},getAnimationInterval:function(){return this._animationInterval}, +isDisplayStats:function(){return this._displayStats},setDisplayStats:function(a){this._displayStats=a},getSecondsPerFrame:function(){return this._secondsPerFrame},getOpenGLView:function(){return this._openGLView},isNextDeltaTimeZero:function(){return this._nextDeltaTimeZero},isPaused:function(){return this._paused},getTotalFrames:function(){return this._totalFrames},getProjection:function(){return this._projection},popToRootScene:function(){cc.Assert(null!=this._runningScene,"A running Scene is needed"); +var a=this._scenesStack.length;if(1==a)this._scenesStack.pop(),this.end();else{for(;1"},setDirty:function(a){this._dirty=a},getDirty:function(){return this._dirty},restore:function(){this._eyeX=this._eyeY=0;this._eyeZ=cc.Camera.getZEye();this._upX=this._centerX=this._centerY=this._centerZ=0;this._upY=1; +this._upZ=0;this._dirty=!1},locate:function(){},setEyeXYZ:function(a,b,c){this._eyeX=a*cc.CONTENT_SCALE_FACTOR;this._eyeY=b*cc.CONTENT_SCALE_FACTOR;this._eyeZ=c*cc.CONTENT_SCALE_FACTOR;this._dirty=!0},setCenterXYZ:function(a,b,c){this._centerX=a*cc.CONTENT_SCALE_FACTOR;this._centerY=b*cc.CONTENT_SCALE_FACTOR;this._centerZ=c*cc.CONTENT_SCALE_FACTOR;this._dirty=!0},setUpXYZ:function(a,b,c){this._upX=a;this._upY=b;this._upZ=c;this._dirty=!0},getEyeXYZ:function(){},getCenterXYZ:function(){},getUpXYZ:function(){}, +_DISALLOW_COPY_AND_ASSIGN:function(){}});cc.Camera.getZEye=function(){return cc.FLT_EPSILON};cc.PRIORITY_SYSTEM=-2147483648;cc.PRIORITY_NON_SYSTEM=cc.PRIORITY_SYSTEM+1;cc.ArrayVerifyType=function(a,b){if(a&&0=this._interval){if(this._selector)if("string"==typeof this._selector)this._target[this._selector](this._elapsed);else this._selector.call(this._target,this._elapsed);this._elapsed=0}}else{this._elapsed+=a;if(this._useDelay){if(this._elapsed>=this._delay){if(this._target&&this._selector)if("string"==typeof this._selector)this._target[this._selector](this._elapsed);else this._selector.call(this._target, +this._elapsed);this._elapsed-=this._delay;this._timesExecuted+=1;this._useDelay=!1}}else if(this._elapsed>=this._interval){if(this._target&&this._selector)if("string"==typeof this._selector)this._target[this._selector](this._elapsed);else this._selector.call(this._target,this._elapsed);this._elapsed=0;this._timesExecuted+=1}this._timesExecuted>this._repeat&&cc.Director.getInstance().getScheduler().unscheduleSelector(this._selector,this._target)}}}); +cc.Timer.timerWithTarget=function(a,b,c){if(2>arguments)throw Error("timerWithTarget'argument can't is null");var d=new cc.Timer;2==arguments.length?d.initWithTarget(a,b,0,cc.REPEAT_FOREVER,0):d.initWithTarget(a,b,c,cc.REPEAT_FOREVER,0);return d};cc._sharedScheduler=null; +cc.Scheduler=cc.Class.extend({_timeScale:1,_updatesNegList:null,_updates0List:null,_updatesPosList:null,_hashForUpdates:null,_hashForSelectors:null,_currentTarget:null,_currentTargetSalvaged:!1,_updateHashLocked:!1,ctor:function(){this._timeScale=1;this._updatesNegList=[];this._updates0List=[];this._updatesPosList=[];this._hashForUpdates=[];this._hashForSelectors=[];this._currentTarget=null;this._updateHashLocked=this._currentTargetSalvaged=!1},_removeHashElement:function(a){a.Timer=null;a.target= +null;cc.ArrayRemoveObject(this._hashForSelectors,a)},_findElementFromArray:function(a,b){for(var c=0;cb?this._priorityIn(this._updatesNegList,a,b,c):this._priorityIn(this._updatesPosList,a,b,c)},unscheduleSelector:function(a,b){if(!(null==b||null==a)){var c=cc.HASH_FIND_INT(this._hashForSelectors,b);if(null!=c)for(var d=0;d=d&&c.timerIndex--;0==c.timers.length&&(this._currentTarget== +c?this._currentTargetSalvaged=!0:this._removeHashElement(c));break}}}},unscheduleUpdateForTarget:function(a){null!=a&&(a=cc.HASH_FIND_INT(this._hashForUpdates,a),null!=a&&(this._updateHashLocked?a.entry.markedForDeletion=!0:this._removeUpdateFromHash(a.entry)))},unscheduleAllSelectorsForTarget:function(a){if(null!=a){var b=cc.HASH_FIND_INT(this._hashForSelectors,a);b&&(!b.currentTimerSalvaged&&cc.ArrayContainsObject(b.timers,b.currentTimer)&&(b.currentTimerSalvaged=!0),b.timers.length=0,this._currentTarget== +b?this._currentTargetSalvaged=!0:this._removeHashElement(b));this.unscheduleUpdateForTarget(a)}},unscheduleAllSelectors:function(){this.unscheduleAllSelectorsWithMinPriority(cc.PRIORITY_SYSTEM)},unscheduleAllSelectorsWithMinPriority:function(a){var b;for(b=0;ba)for(b=0;b=a)for(b=0;b=a&&this.unscheduleUpdateForTarget(this._updatesPosList[b].target)},pauseAllTargets:function(){return this.pauseAllTargetsWithMinPriority(cc.PRIORITY_SYSTEM)},pauseAllTargetsWithMinPriority:function(a){var b=[],c,d;for(c=0;ca)for(c=0;c=a)for(c=0;ca.length)throw Error("Polygon's point must greater than 2"); +b=a[0];this._renderContext.beginPath();this._renderContext.moveTo(b.x*cc.CONTENT_SCALE_FACTOR(),-b.y*cc.CONTENT_SCALE_FACTOR());for(b=1;b=f&&(g=arguments[2]);k.initWithNormalSprite(a,b,g,h,j);return k}; +cc.MenuItemImage=cc.MenuItemSprite.extend({setNormalSpriteFrame:function(a){this.setNormalImage(cc.Sprite.createWithSpriteFrameName(a))},setSelectedSpriteFrame:function(a){this.setSelectedImage(cc.Sprite.createWithSpriteFrameName(a))},setDisabledSpriteFrame:function(a){this.setDisabledImage(cc.Sprite.createWithSpriteFrameName(a))},initWithNormalImage:function(a,b,c,d,e){var f=null,g=null,h=null;a&&(f=cc.Sprite.create(a));b&&(g=cc.Sprite.create(b));c&&(h=cc.Sprite.create(c));return this.initWithNormalSprite(f, +g,h,d,e)}});cc.MenuItemImage.create=function(a,b,c,d,e){if(0==arguments.length)return cc.MenuItemImage.create(null,null,null,null,null);if(4==arguments.length)return cc.MenuItemImage.create(a,b,null,c,d);var f=new cc.MenuItemImage;return f.initWithNormalImage(a,b,c,d,e)?f:null}; +cc.MenuItemToggle=cc.MenuItem.extend({RGBAProtocol:!0,_opacity:0,getOpacity:function(){return this._opacity},setOpacity:function(a){this._opacity=a;if(this._subItems&&0a.length)return!1;this._super(a[0],a[1]);if(2==a.length)return!1; +this._subItems=[];for(var b=2;b=h||isNaN(h)?e:h;++f;f>=g&&(c+=e+5,e=f=0,++d)}cc.Assert(!f,"");var j=cc.Director.getInstance().getWinSize(),k=g=e=d=0,l=0,c=c/2;if(this._children&&0=h||isNaN(h)?e:h;m.setPosition(cc.p(l-j.width/2,c-m.getContentSize().height/2));l+=k;++f;f>=g&&(c-=e+5,e=g=f=0,++d)}}, +alignItemsInRows:function(){for(var a=[],b=0;b=m||isNaN(m)?h:m,f=f+(l.getContentSize().height+5);++j;j>=k&&(c.push(h),d.push(f),e+=h+10,h=j=0,f=-5,++g)}cc.Assert(!j,"");f=cc.Director.getInstance().getWinSize();k=h=g=0;var e=-e/2,n=0; +if(this._children&&0=m||isNaN(m)?h:m,l.setPosition(cc.p(e+c[g]/2,n-f.height/2)),n-=l.getContentSize().height+10,++j,j>=k&&(e+=h+5,h=k=j=0,++g)},registerWithTouchDispatcher:function(){cc.Director.getInstance().getTouchDispatcher().addTargetedDelegate(this,cc.MENU_HANDLER_PRIORITY,!0)},onTouchBegan:function(a){if(this._state!=cc.MENU_STATE_WAITING||!this._isVisible||!this._enabled)return!1; +for(var b=this._parent;null!=b;b=b.getParent())if(!b.isVisible())return!1;return(this._selectedItem=this._itemForTouch(a))?(this._state=cc.MENU_STATE_TRACKING_TOUCH,this._selectedItem.selected(),!0):!1},onTouchEnded:function(){cc.Assert(this._state==cc.MENU_STATE_TRACKING_TOUCH,"[Menu onTouchEnded] -- invalid state");this._selectedItem&&(this._selectedItem.unselected(),this._selectedItem.activate());this._state=cc.MENU_STATE_WAITING},onTouchCancelled:function(){cc.Assert(this._state==cc.MENU_STATE_TRACKING_TOUCH, +"[Menu onTouchCancelled] -- invalid state");this._selectedItem&&this._selectedItem.unselected();this._state=cc.MENU_STATE_WAITING},onTouchMoved:function(a){cc.Assert(this._state==cc.MENU_STATE_TRACKING_TOUCH,"[Menu onTouchMoved] -- invalid state");a=this._itemForTouch(a);a!=this._selectedItem&&(this._selectedItem&&this._selectedItem.unselected(),(this._selectedItem=a)&&this._selectedItem.selected())},onExit:function(){this._state==cc.MENU_STATE_TRACKING_TOUCH&&(this._selectedItem.unselected(),this._state= +cc.MENU_STATE_WAITING,this._selectedItem=null);this._super()},setOpacityModifyRGB:function(){},isOpacityModifyRGB:function(){return!1},_itemForTouch:function(a){a=a.getLocation();if(this._children&&0>>0>=f.firstGid)return f}}cc.log("cocos2d: Warning: TMX Layer "+a.name+" has no tiles");return null}}); +cc.TMXTiledMap.create=function(a,b){var c=new cc.TMXTiledMap;return c.initWithTMXFile(a,b)?c:null};cc.TMXLayerAttribNone=1;cc.TMXLayerAttribBase64=2;cc.TMXLayerAttribGzip=4;cc.TMXLayerAttribZlib=8;cc.TMXPropertyNone=0;cc.TMXPropertyMap=1;cc.TMXPropertyLayer=2;cc.TMXPropertyObjectGroup=3;cc.TMXPropertyObject=4;cc.TMXPropertyTile=5;cc.TMXTileHorizontalFlag=2147483648;cc.TMXTileVerticalFlag=1073741824;cc.TMXTileDiagonalFlag=536870912;cc.FlipedAll=(cc.TMXTileHorizontalFlag|cc.TMXTileVerticalFlag|cc.TMXTileDiagonalFlag)>>>0;cc.FlippedMask=~cc.FlipedAll>>>0; +cc.TMXLayerInfo=cc.Class.extend({_properties:null,name:"",_layerSize:null,_tiles:[],visible:null,_opacity:null,ownTiles:!0,_minGID:1E5,_maxGID:0,offset:cc.PointZero(),ctor:function(){this._properties=[]},getProperties:function(){return this._properties},setProperties:function(a){this._properties.push(a)}}); +cc.TMXTilesetInfo=cc.Class.extend({name:"",firstGid:0,_tileSize:cc.SizeZero(),spacing:0,margin:0,sourceImage:"",imageSize:cc.SizeZero(),rectForGID:function(a){var b=cc.RectZero();b.size=this._tileSize;var a=a&cc.FlippedMask,a=a-parseInt(this.firstGid),c=parseInt((this.imageSize.width-2*this.margin+this.spacing)/(this._tileSize.width+this.spacing));b.origin.x=parseInt(a%c*(this._tileSize.width+this.spacing)+this.margin);b.origin.y=parseInt(parseInt(a/c)*(this._tileSize.height+this.spacing)+this.margin); +return b}}); +cc.TMXMapInfo=cc.SAXParser.extend({_orientation:null,_mapSize:cc.SizeZero(),_tileSize:cc.SizeZero(),_layers:null,_tileSets:null,_objectGroups:null,_parentElement:null,_parentGID:null,_layerAttribs:0,_storingCharacters:!1,_properties:[],_TMXFileName:null,_currentString:null,_tileProperties:null,_resources:null,ctor:function(){this._tileSets=[];this._tileProperties=[];this._properties=[]},getOrientation:function(){return this._orientation},setOrientation:function(a){this._orientation=a},getMapSize:function(){return this._mapSize}, +setMapSize:function(a){this._mapSize=a},getTileSize:function(){return this._tileSize},setTileSize:function(a){this._tileSize=a},getLayers:function(){return this._layers},setLayers:function(a){this._layers.push(a)},getTilesets:function(){return this._tileSets},setTilesets:function(a){this._tileSets.push(a)},getObjectGroups:function(){return this._objectGroups},setObjectGroups:function(a){this._objectGroups.push(a)},getParentElement:function(){return this._parentElement},setParentElement:function(a){this._parentElement= +a},getParentGID:function(){return this._parentGID},setParentGID:function(a){this._parentGID=a},getLayerAttribs:function(){return this._layerAttribs},setLayerAttribs:function(a){this._layerAttribs=a},getStoringCharacters:function(){return this._storingCharacters},setStoringCharacters:function(a){this._storingCharacters=a},getProperties:function(){return this._properties},setProperties:function(a){this._properties.push(a)},initWithTMXFile:function(a,b){this._internalInit(a,b);return this.parseXMLFile(this._TMXFileName)}, +parseXMLFile:function(a){var b=cc.SAXParser.getInstance().tmxParse(a).documentElement,c=b.getAttribute("version"),d=b.getAttribute("orientation");if("map"==b.nodeName){"1.0"!=c&&null!==c&&cc.log("cocos2d: TMXFormat: Unsupported TMX version:"+c);"orthogonal"==d?this.setOrientation(cc.TMXOrientationOrtho):"isometric"==d?this.setOrientation(cc.TMXOrientationIso):"hexagonal"==d?this.setOrientation(cc.TMXOrientationHex):null!==d&&cc.log("cocos2d: TMXFomat: Unsupported orientation:"+this.getOrientation()); +var e=cc.size(0,0);e.width=parseFloat(b.getAttribute("width"));e.height=parseFloat(b.getAttribute("height"));this.setMapSize(e);e=cc.size(0,0);e.width=parseFloat(b.getAttribute("tilewidth"));e.height=parseFloat(b.getAttribute("tileheight"));this.setTileSize(e);if(c=b.querySelectorAll("map > properties > property"))for(var f=0;f property")[0])g={},h=j.getAttribute("name"),e=j.getAttribute("value"),g[h]=e,this._tileProperties[this.getParentGID()]=g}if(a=b.getElementsByTagName("layer")){c=0;for(d= +a.length;c property"))for(f= +0;f properties > property"))for(f=0;f property");if(l)for(f=0;f>>0},tileFlagAt:function(a){cc.Assert(a.x>>0},setTileGID:function(a,b,c){cc.Assert(b.x=this._tileSet.firstGid),"TMXLayer: invalid gid:"+a);this._setNodeDirtyForCache();var d=this.tileFlagAt(b), +e=this.tileGIDAt(b);if(e!=a||d!=c)if(d=(a|c)>>>0,0==a)this.removeTileAt(b);else if(0==e)this._insertTileForGID(d,b);else{var e=b.x+b.y*this._layerSize.width,f=this.getChildByTag(e);f?(a=this._tileSet.rectForGID(a),a=cc.RECT_PIXELS_TO_POINTS(a),f.setTextureRect(a,!1,a.size),c&&this._setupTileSprite(f,b,d),this._tiles[e]=d):this._updateTileForGID(d,b)}},removeTileAt:function(a){cc.Assert(a.x=a&&d.setAtlasIndex(e-1)}}}}, +positionAt:function(a){var b=cc.PointZero();switch(this._layerOrientation){case cc.TMXOrientationOrtho:b=this._positionForOrthoAt(a);break;case cc.TMXOrientationIso:b=this._positionForIsoAt(a);break;case cc.TMXOrientationHex:b=this._positionForHexAt(a)}return b=cc.POINT_PIXELS_TO_POINTS(b)},propertyNamed:function(a){return this._properties[a]},setupTiles:function(){var a=this._textureAtlas.getTexture();this._tileSet.imageSize=cc.size(a.width,a.height);this._parseInternalProperties();this._setNodeDirtyForCache(); +for(a=0;a=this._tileSet.firstGid&&this._minGID>=this._tileSet.firstGid,"TMX: Only 1 tileset per layer is supported")},addChild:function(){cc.Assert(0,"addChild: is not supported on cc.TMXLayer. Instead use setTileGID:at:/tileAt:")},removeChild:function(a, +b){if(a){cc.Assert(cc.ArrayContainsObject(this._children,a),"Tile does not belong to TMXLayer");this._setNodeDirtyForCache();var c=cc.ArrayGetIndexOfObject(this._children,a);this._tiles[this._atlasIndexArray[c]]=0;cc.ArrayRemoveObjectAtIndex(this._atlasIndexArray,c);this._super(a,b)}},getLayerName:function(){return this._layerName.toString()},setLayerName:function(a){this._layerName=a},_positionForIsoAt:function(a){return cc.p(this._mapTileSize.width/2*(this._layerSize.width+a.x-a.y-1),this._mapTileSize.height/ +2*(2*this._layerSize.height-a.x-a.y-2))},_positionForOrthoAt:function(a){101==a.x&&console.log("before:",a.x,this._mapTileSize.width,this._layerSize.height,a.y,1,this._mapTileSize.height);var b=cc.p(a.x*this._mapTileSize.width,(this._layerSize.height-a.y-1)*this._mapTileSize.height);101==a.x&&console.log("after:",b);return b},_positionForHexAt:function(a){var b=0;1==a.x%2&&(b=-this._mapTileSize.height/2);return cc.p(3*a.x*this._mapTileSize.width/4,(this._layerSize.height-a.y-1)*this._mapTileSize.height+ +b)},_calculateLayerOffset:function(a){var b=cc.PointZero();switch(this._layerOrientation){case cc.TMXOrientationOrtho:b=cc.p(a.x*this._mapTileSize.width,-a.y*this._mapTileSize.height);break;case cc.TMXOrientationIso:b=cc.p(this._mapTileSize.width/2*(a.x-a.y),this._mapTileSize.height/2*(-a.x-a.y));break;case cc.TMXOrientationHex:b=cc.p(0,0),cc.log("cocos2d:offset for hexagonal map not implemented yet")}return b},_appendTileForGID:function(a,b){var c=this._tileSet.rectForGID(a),c=cc.RECT_PIXELS_TO_POINTS(c), +d=b.x+b.y*this._layerSize.width,c=this._reusedTileWithRect(c);this._setupTileSprite(c,b,a);var e=this._atlasIndexArray.length;this.addQuadFromSprite(c,e);this._atlasIndexArray=cc.ArrayAppendObjectToIndex(this._atlasIndexArray,d,e);return c},_insertTileForGID:function(a,b){var c=this._tileSet.rectForGID(a),c=cc.RECT_PIXELS_TO_POINTS(c),d=parseInt(b.x+b.y*this._layerSize.width),c=this._reusedTileWithRect(c);this._setupTileSprite(c,b,a);var e=this._atlasIndexForNewZ(d);this.addQuadFromSprite(c,e);this._atlasIndexArray= +cc.ArrayAppendObjectToIndex(this._atlasIndexArray,d,e);if(this._children)for(var f=0,g=this._children.length;f=e&&h.setAtlasIndex(j+1)}}this._tiles[d]=a;return c},_updateTileForGID:function(a,b){var c=this._tileSet.rectForGID(a),c=cc.rect(c.origin.x/this._contentScaleFactor,c.origin.y/this._contentScaleFactor,c.size.width/this._contentScaleFactor,c.size.height/this._contentScaleFactor),d=b.x+b.y*this._layerSize.width,c=this._reusedTileWithRect(c); +this._setupTileSprite(c,b,a);var e=this._atlasIndexForExistantZ(d);c.setAtlasIndex(e);c.setDirty(!0);c.updateTransform();this._tiles[d]=a;return c},_parseInternalProperties:function(){var a=this.propertyNamed("cc_vertexz");a&&("automatic"==a?(this._useAutomaticVertexZ=!0,a=this.propertyNamed("cc_alpha_func")):this._vertexZvalue=parseInt(a));if(a=this.propertyNamed("cc_alpha_func"))this._alphaFuncValue=parseInt(a)},_setupTileSprite:function(a,b,c){var d=b.x+b.y*this._layerSize.width;a.setPosition(this.positionAt(b)); +a.setAnchorPoint(cc.PointZero());a.setOpacity(this._opacity);a.setTag(d);a.setFlipX(!1);a.setFlipY(!1);(c&cc.TMXTileDiagonalFlag)>>>0?(a.setAnchorPoint(cc.p(0.5,0.5)),a.setPosition(cc.p(this.positionAt(b).x+a.getContentSize().height/2,this.positionAt(b).y+a.getContentSize().width/2)),b=(c&(cc.TMXTileHorizontalFlag|cc.TMXTileVerticalFlag)>>>0)>>>0,b==cc.TMXTileHorizontalFlag?a.setRotation(90):b==cc.TMXTileVerticalFlag?a.setRotation(270):(b==(cc.TMXTileVerticalFlag|cc.TMXTileHorizontalFlag)>>>0?a.setRotation(90): +a.setRotation(270),a.setFlipX(!0))):((c&cc.TMXTileHorizontalFlag)>>>0&&a.setFlipX(!0),(c&cc.TMXTileVerticalFlag)>>>0&&a.setFlipY(!0))},_reusedTileWithRect:function(a){this._reusedTile=new cc.Sprite;this._reusedTile.initWithTexture(this._textureAtlas.getTexture(),a,!1);this._reusedTile.setBatchNode(this);this._reusedTile.setParent(this);return this._reusedTile},_vertexZForPos:function(a){var b=0,c=0;if(this._useAutomaticVertexZ)switch(this._layerOrientation){case cc.TMXOrientationIso:c=this._layerSize.width+ +this._layerSize.height;b=-(c-(a.x+a.y));break;case cc.TMXOrientationOrtho:b=-(this._layerSize.height-a.y);break;case cc.TMXOrientationHex:cc.Assert(0,"TMX Hexa zOrder not supported");break;default:cc.Assert(0,"TMX invalid value")}else b=this._vertexZvalue;return b},_atlasIndexForExistantZ:function(a){var b;if(this._atlasIndexArray)for(var c=0;ca?0:a)},getEffectsVolume:function(){return this._effectsVolume},setEffectsVolume:function(a){this._effectsVolume= +1a?0:a;if(this._audioList)for(var b in this._audioList)if(a=this._audioList[b])a.volume=this._effectsVolume},playEffect:function(a,b){for(var c=this._getEffectList(a),d=0;d>3;this._checkSize(c);var c=Math.pow(2,b-1)-1,e=this._readBitsOnly(a+b,1,d),f=this._readBitsOnly(a,b,d),g=0, +h=2,j=0;do for(var k=this._readByteOnly(++j,d),l=a%8||8,m=1<>=1;)k&m&&(g+=1/h),h*=2;while(a-=l);this._currentByte+=d;return f==(c<<1)+1?g?NaN:e?-Infinity:Infinity:(1+-2*e)*(f||g?!f?Math.pow(2,-c+1)*g:Math.pow(2,f-c)*(1+g):0)},_readBitsOnly:function(a,b,c){var d=(a+b)%8,e=a%8,f=c-(a>>3)-1,a=c+(-(a+b)>>3),g=f-a,b=this._readByteOnly(f,c)>>e&(1<<(g?8-e:b))-1;for(g&&d&&(b+=(this._readByteOnly(a++,c)&(1<=b.length?0==a.lastIndexOf(b):!1};cc.CCBReader.concat=function(a,b){return a+b};var PROPERTY_CCBFILE="ccbFile";cc.CCBFileLoader=cc.NodeLoader.extend({_createCCNode:function(){return cc.Node.create()},onHandlePropTypeCCBFile:function(a,b,c,d,e){c==PROPERTY_CCBFILE?a.addChild(d):this._super(a,b,c,d,e)}});cc.CCBFileLoader.loader=function(){return new cc.CCBFileLoader};var PROPERTY_ENABLED="enabled",PROPERTY_SELECTED="selected",PROPERTY_CCCONTROL="ccControl"; +cc.ControlLoader=cc.NodeLoader.extend({_createCCNode:function(){},onHandlePropTypeBlockCCControl:function(a,b,c,d,e){c==PROPERTY_CCCONTROL?a.addTargetWithActionForControlEvents(d.target,d.selCCControlHandler,d.controlEvents):this._super(a,b,c,d,e)},onHandlePropTypeCheck:function(a,b,c,d,e){c==PROPERTY_ENABLED?a.setEnabled(d):c==PROPERTY_SELECTED?a.setSelected(d):this._super(a,b,c,d,e)}}); +var PROPERTY_ZOOMONTOUCHDOWN="zoomOnTouchDown",PROPERTY_TITLE_NORMAL="title|1",PROPERTY_TITLE_HIGHLIGHTED="title|2",PROPERTY_TITLE_DISABLED="title|4",PROPERTY_TITLECOLOR_NORMAL="titleColor|1",PROPERTY_TITLECOLOR_HIGHLIGHTED="titleColor|2",PROPERTY_TITLECOLOR_DISABLED="titleColor|4",PROPERTY_TITLETTF_NORMAL="titleTTF|1",PROPERTY_TITLETTF_HIGHLIGHTED="titleTTF|2",PROPERTY_TITLETTF_DISABLED="titleTTF|4",PROPERTY_TITLETTFSIZE_NORMAL="titleTTFSize|1",PROPERTY_TITLETTFSIZE_HIGHLIGHTED="titleTTFSize|2", +PROPERTY_TITLETTFSIZE_DISABLED="titleTTFSize|4",PROPERTY_LABELANCHORPOINT="labelAnchorPoint",PROPERTY_PREFEREDSIZE="preferedSize",PROPERTY_BACKGROUNDSPRITEFRAME_NORMAL="backgroundSpriteFrame|1",PROPERTY_BACKGROUNDSPRITEFRAME_HIGHLIGHTED="backgroundSpriteFrame|2",PROPERTY_BACKGROUNDSPRITEFRAME_DISABLED="backgroundSpriteFrame|4"; +cc.ControlButtonLoader=cc.ControlLoader.extend({_createCCNode:function(){return cc.ControlButton.create()},onHandlePropTypeCheck:function(a,b,c,d,e){c==PROPERTY_ZOOMONTOUCHDOWN?a.setZoomOnTouchDown(d):this._super(a,b,c,d,e)},onHandlePropTypeString:function(a,b,c,d,e){c==PROPERTY_TITLE_NORMAL?a.setTitleForState(d,cc.CONTROL_STATE_NORMAL):c==PROPERTY_TITLE_HIGHLIGHTED?a.setTitleForState(d,cc.CONTROL_STATE_HIGHLIGHTED):c==PROPERTY_TITLE_DISABLED?a.setTitleForState(d,cc.CONTROL_STATE_DISABLED):this._super(a, +b,c,d,e)},onHandlePropTypeFontTTF:function(a,b,c,d,e){c==PROPERTY_TITLETTF_NORMAL?a.setTitleTTFForState(d,cc.CONTROL_STATE_NORMAL):c==PROPERTY_TITLETTF_HIGHLIGHTED?a.setTitleTTFForState(d,cc.CONTROL_STATE_HIGHLIGHTED):c==PROPERTY_TITLETTF_DISABLED?a.setTitleTTFForState(d,cc.CONTROL_STATE_DISABLED):this._super(a,b,c,d,e)},onHandlePropTypeFloatScale:function(a,b,c,d,e){c==PROPERTY_TITLETTFSIZE_NORMAL?a.setTitleTTFSizeForState(d,cc.CONTROL_STATE_NORMAL):c==PROPERTY_TITLETTFSIZE_HIGHLIGHTED?a.setTitleTTFSizeForState(d, +cc.CONTROL_STATE_HIGHLIGHTED):c==PROPERTY_TITLETTFSIZE_DISABLED?a.setTitleTTFSizeForState(d,cc.CONTROL_STATE_DISABLED):this._super(a,b,c,d,e)},onHandlePropTypePoint:function(a,b,c,d,e){c==PROPERTY_LABELANCHORPOINT?a.setLabelAnchorPoint(d):this._super(a,b,c,d,e)},onHandlePropTypeSize:function(a,b,c,d,e){c==PROPERTY_PREFEREDSIZE?a.setPreferredSize(d):this._super(a,b,c,d,e)},onHandlePropTypeSpriteFrame:function(a,b,c,d,e){c==PROPERTY_BACKGROUNDSPRITEFRAME_NORMAL?null!=d&&a.setBackgroundSpriteFrameForState(d, +cc.CONTROL_STATE_NORMAL):c==PROPERTY_BACKGROUNDSPRITEFRAME_HIGHLIGHTED?null!=d&&a.setBackgroundSpriteFrameForState(d,cc.CONTROL_STATE_HIGHLIGHTED):c==PROPERTY_BACKGROUNDSPRITEFRAME_DISABLED?null!=d&&a.setBackgroundSpriteFrameForState(d,cc.CONTROL_STATE_DISABLED):this._super(a,b,c,d,e)},onHandlePropTypeColor3:function(a,b,c,d,e){c==PROPERTY_TITLECOLOR_NORMAL?a.setTitleColorForState(d,cc.CONTROL_STATE_NORMAL):c==PROPERTY_TITLECOLOR_HIGHLIGHTED?a.setTitleColorForState(d,cc.CONTROL_STATE_HIGHLIGHTED): +c==PROPERTY_TITLECOLOR_DISABLED?a.setTitleColorForState(d,cc.CONTROL_STATE_DISABLED):this._super(a,b,c,d,e)}});cc.ControlButtonLoader.loader=function(){return new cc.ControlButtonLoader};var PROPERTY_CONTAINER="container",PROPERTY_DIRECTION="direction",PROPERTY_CLIPSTOBOUNDS="clipsToBounds",PROPERTY_BOUNCES="bounces",PROPERTY_SCALE="scale"; +cc.ScrollViewLoader=cc.NodeLoader.extend({_createCCNode:function(){return cc.ScrollView.create()},onHandlePropTypeCCBFile:function(a,b,c,d,e){c==PROPERTY_CONTAINER?a.setContainer(d):this._super(a,b,c,d,e)},onHandlePropTypeCheck:function(a,b,c,d,e){c==PROPERTY_CLIPSTOBOUNDS?a.setClippingToBounds(d):c==PROPERTY_BOUNCES?a.setBounceable(d):this._super(a,b,c,d,e)},onHandlePropTypeFloat:function(a,b,c,d,e){c==PROPERTY_SCALE?a.setScale(d):this._super(a,b,c,d,e)},onHandlePropTypeIntegerLabeled:function(a, +b,c,d,e){c==PROPERTY_DIRECTION?a.setDirection(d):this._super(a,b,c,d,e)}});cc.ScrollViewLoader.loader=function(){return new cc.ScrollViewLoader};var PROPERTY_CONTENTSIZE="contentSize",PROPERTY_SPRITEFRAME="spriteFrame",PROPERTY_COLOR="color",PROPERTY_OPACITY="opacity",PROPERTY_BLENDFUNC="blendFunc",PROPERTY_INSETLEFT="insetLeft",PROPERTY_INSETTOP="insetTop",PROPERTY_INSETRIGHT="insetRight",PROPERTY_INSETBOTTOM="insetBottom"; +cc.Scale9SpriteLoader=cc.NodeLoader.extend({_createCCNode:function(){return cc.Scale9Sprite.create()},onHandlePropTypeColor3:function(a,b,c,d,e){c==PROPERTY_COLOR?a.setColor(d):this._super(a,b,c,d,e)},onHandlePropTypeByte:function(a,b,c,d,e){c==PROPERTY_OPACITY?a.setOpacity(d):this._super(a,b,c,d,e)},onHandlePropTypeBlendFunc:function(a,b,c,d,e){c!=PROPERTY_BLENDFUNC&&this._super(a,b,c,d,e)},onHandlePropTypeSpriteFrame:function(a,b,c,d,e){c==PROPERTY_SPRITEFRAME?a.initWithSpriteFrame(d):this._super(a, +b,c,d,e)},onHandlePropTypeSize:function(a,b,c,d,e){c!=PROPERTY_CONTENTSIZE&&(c==PROPERTY_PREFEREDSIZE?a.setPreferredSize(d):this._super(a,b,c,d,e))},onHandlePropTypeFloat:function(a,b,c,d,e){c==PROPERTY_INSETLEFT?a.setInsetLeft(d):c==PROPERTY_INSETTOP?a.setInsetTop(d):c==PROPERTY_INSETRIGHT?a.setInsetRight(d):c==PROPERTY_INSETBOTTOM?a.setInsetBottom(d):this._super(a,b,c,d,e)}});cc.Scale9SpriteLoader.loader=function(){return new cc.Scale9SpriteLoader};var PROPERTY_FLIP="flip",PROPERTY_DISPLAYFRAME="displayFrame",PROPERTY_COLOR="color",PROPERTY_OPACITY="opacity",PROPERTY_BLENDFUNC="blendFunc"; +cc.SpriteLoader=cc.NodeLoader.extend({_createCCNode:function(){return new cc.Sprite},onHandlePropTypeColor3:function(a,b,c,d,e){c==PROPERTY_COLOR?a.setColor(d):this._super(a,b,c,d,e)},onHandlePropTypeByte:function(a,b,c,d,e){c==PROPERTY_OPACITY?a.setOpacity(d):this._super(a,b,c,d,e)},onHandlePropTypeBlendFunc:function(a,b,c,d,e){c==PROPERTY_BLENDFUNC?a.setBlendFunc(d):this._super(a,b,c,d,e)},onHandlePropTypeSpriteFrame:function(a,b,c,d,e){c==PROPERTY_DISPLAYFRAME?a.setDisplayFrame(d):this._super(a, +b,c,d,e)},onHandlePropTypeFlip:function(a,b,c,d,e){c==PROPERTY_FLIP?(a.setFlipX(d[0]),a.setFlipX(d[1])):this._super(a,b,c,d,e)}});cc.SpriteLoader.loader=function(){return new cc.SpriteLoader};var PROPERTY_TOUCH_ENABLED="isTouchEnabled",PROPERTY_ACCELEROMETER_ENABLED="isAccelerometerEnabled",PROPERTY_MOUSE_ENABLED="isMouseEnabled",PROPERTY_KEYBOARD_ENABLED="isKeyboardEnabled"; +cc.LayerLoader=cc.NodeLoader.extend({_createCCNode:function(){return cc.Layer.create()},onHandlePropTypeCheck:function(a,b,c,d,e){c==PROPERTY_TOUCH_ENABLED?a.setTouchEnabled(d):c==PROPERTY_ACCELEROMETER_ENABLED?a.setAccelerometerEnabled(d):c==PROPERTY_MOUSE_ENABLED?cc.log("The property '"+PROPERTY_MOUSE_ENABLED+"' is not supported!"):c==PROPERTY_KEYBOARD_ENABLED?cc.log("The property '"+PROPERTY_KEYBOARD_ENABLED+"' is not supported!"):this._super(a,b,c,d,e)}});cc.LayerLoader.loader=function(){return new cc.LayerLoader}; +cc.LayerColorLoader=cc.LayerLoader.extend({_createCCNode:function(){return cc.LayerColor.create()},onHandlePropTypeColor3:function(a,b,c,d,e){c==PROPERTY_COLOR?a.setColor(d):this._super(a,b,c,d,e)},onHandlePropTypeByte:function(a,b,c,d,e){c==PROPERTY_OPACITY?a.setOpacity(d):this._super(a,b,c,d,e)},onHandlePropTypeBlendFunc:function(a,b,c,d,e){c==PROPERTY_BLENDFUNC?a.setBlendFunc(d):this._super(a,b,c,d,e)}});cc.LayerColorLoader.loader=function(){return new cc.LayerColorLoader}; +var PROPERTY_STARTCOLOR="startColor",PROPERTY_ENDCOLOR="endColor",PROPERTY_STARTOPACITY="startOpacity",PROPERTY_ENDOPACITY="endOpacity",PROPERTY_VECTOR="vector"; +cc.LayerGradientLoader=cc.LayerLoader.extend({_createCCNode:function(){return cc.LayerGradient.create()},onHandlePropTypeColor3:function(a,b,c,d,e){c==PROPERTY_STARTCOLOR?a.setStartColor(d):c==PROPERTY_ENDCOLOR?a.setEndColor(d):this._super(a,b,c,d,e)},onHandlePropTypeByte:function(a,b,c,d,e){c==PROPERTY_STARTOPACITY?a.setStartOpacity(d):c==PROPERTY_ENDOPACITY?a.setEndOpacity(d):this._super(a,b,c,d,e)},onHandlePropTypePoint:function(a,b,c,d,e){c==PROPERTY_VECTOR?a.setVector(d):this._super(a,b,c,d, +e)},onHandlePropTypeBlendFunc:function(a,b,c,d,e){c==PROPERTY_BLENDFUNC?a.setBlendFunc(d):this._super(a,b,c,d,e)}});cc.LayerGradientLoader.loader=function(){return new cc.LayerGradientLoader};cc.MenuLoader=cc.LayerLoader.extend({_createCCNode:function(){return cc.Menu.create()}});cc.MenuLoader.loader=function(){return new cc.MenuLoader};var PROPERTY_BLOCK="block",PROPERTY_ISENABLED="isEnabled"; +cc.MenuItemLoader=cc.NodeLoader.extend({_createCCNode:function(){},onHandlePropTypeBlock:function(a,b,c,d,e){c==PROPERTY_BLOCK?null!=d&&a.setTarget(d.target,d.selMenuHander):this._super(a,b,c,d,e)},onHandlePropTypeCheck:function(a,b,c,d,e){c==PROPERTY_ISENABLED?a.setEnabled(d):this._super(a,b,c,d,e)}});var PROPERTY_NORMALDISPLAYFRAME="normalSpriteFrame",PROPERTY_SELECTEDDISPLAYFRAME="selectedSpriteFrame",PROPERTY_DISABLEDDISPLAYFRAME="disabledSpriteFrame"; +cc.MenuItemImageLoader=cc.MenuItemLoader.extend({_createCCNode:function(){return cc.MenuItemImage.create()},onHandlePropTypeSpriteFrame:function(a,b,c,d,e){c==PROPERTY_NORMALDISPLAYFRAME?null!=d&&a.setNormalSpriteFrame(d):c==PROPERTY_SELECTEDDISPLAYFRAME?null!=d&&a.setSelectedSpriteFrame(d):c==PROPERTY_DISABLEDDISPLAYFRAME?null!=d&&a.setDisabledSpriteFrame(d):this._super(a,b,c,d,e)}});cc.MenuItemImageLoader.loader=function(){return new cc.MenuItemImageLoader}; +var PROPERTY_FONTNAME="fontName",PROPERTY_FONTSIZE="fontSize",PROPERTY_HORIZONTALALIGNMENT="horizontalAlignment",PROPERTY_VERTICALALIGNMENT="verticalAlignment",PROPERTY_STRING="string",PROPERTY_DIMENSIONS="dimensions"; +cc.LabelTTFLoader=cc.NodeLoader.extend({_createCCNode:function(){return cc.LabelTTF.create()},onHandlePropTypeColor3:function(a,b,c,d,e){c==PROPERTY_COLOR?a.setColor(d):this._super(a,b,c,d,e)},onHandlePropTypeByte:function(a,b,c,d,e){c==PROPERTY_OPACITY?a.setOpacity(d):this._super(a,b,c,d,e)},onHandlePropTypeBlendFunc:function(a,b,c,d,e){c==PROPERTY_BLENDFUNC?a.setBlendFunc(d):this._super(pNode,pParent,c,d,e)},onHandlePropTypeFontTTF:function(a,b,c,d,e){c==PROPERTY_FONTNAME?a.setFontName(d):this._super(a, +b,c,d,e)},onHandlePropTypeText:function(a,b,c,d,e){c==PROPERTY_STRING?a.setString(d):this._super(a,b,c,d,e)},onHandlePropTypeFloatScale:function(a,b,c,d,e){c==PROPERTY_FONTSIZE?a.setFontSize(d):this._super(a,b,c,d,e)},onHandlePropTypeIntegerLabeled:function(a,b,c,d,e){c==PROPERTY_HORIZONTALALIGNMENT?a.setHorizontalAlignment(d):c==PROPERTY_VERTICALALIGNMENT?a.setVerticalAlignment(d):this._super(a,b,c,d,e)},onHandlePropTypeSize:function(a,b,c,d,e){c==PROPERTY_DIMENSIONS?a.setDimensions(d):this._super(a, +b,c,d,e)}});cc.LabelTTFLoader.loader=function(){return new cc.LabelTTFLoader};var PROPERTY_FNTFILE="fntFile"; +cc.LabelBMFontLoader=cc.NodeLoader.extend({_createCCNode:function(){return cc.LabelBMFont.create()},onHandlePropTypeColor3:function(a,b,c,d,e){c==PROPERTY_COLOR?a.setColor(d):this._super(a,b,c,d,e)},onHandlePropTypeByte:function(a,b,c,d,e){c==PROPERTY_OPACITY?a.setOpacity(d):this._super(a,b,c,d,e)},onHandlePropTypeBlendFunc:function(a,b,c,d,e){c==PROPERTY_BLENDFUNC?a.setBlendFunc(d):this._super(a,b,c,d,e)},onHandlePropTypeFntFile:function(a,b,c,d,e){c==PROPERTY_FNTFILE?a.setFntFile(d):this._super(a, +b,c,d,e)},onHandlePropTypeText:function(a,b,c,d,e){c==PROPERTY_STRING?a.setString(d):this._super(a,b,c,d,e)}});cc.LabelBMFontLoader.loader=function(){return new cc.LabelBMFontLoader}; +var PROPERTY_EMITERMODE="emitterMode",PROPERTY_POSVAR="posVar",PROPERTY_EMISSIONRATE="emissionRate",PROPERTY_DURATION="duration",PROPERTY_TOTALPARTICLES="totalParticles",PROPERTY_LIFE="life",PROPERTY_STARTSIZE="startSize",PROPERTY_ENDSIZE="endSize",PROPERTY_STARTSPIN="startSpin",PROPERTY_ENDSPIN="endSpin",PROPERTY_ANGLE="angle",PROPERTY_GRAVITY="gravity",PROPERTY_SPEED="speed",PROPERTY_TANGENTIALACCEL="tangentialAccel",PROPERTY_RADIALACCEL="radialAccel",PROPERTY_TEXTURE="texture",PROPERTY_STARTRADIUS= +"startRadius",PROPERTY_ENDRADIUS="endRadius",PROPERTY_ROTATEPERSECOND="rotatePerSecond"; +cc.ParticleSystemQuadLoader=cc.NodeLoader.extend({_createCCNode:function(){return cc.ParticleSystemQuad.create()},onHandlePropTypeIntegerLabeled:function(a,b,c,d,e){c==PROPERTY_EMITERMODE?a.setEmitterMode(d):this._super(a,b,c,d,e)},onHandlePropTypePoint:function(a,b,c,d,e){c==PROPERTY_POSVAR?a.setPosVar(d):c==PROPERTY_GRAVITY?a.setGravity(d):this._super(a,b,c,d,e)},onHandlePropTypeFloat:function(a,b,c,d,e){c==PROPERTY_EMISSIONRATE?a.setEmissionRate(d):c==PROPERTY_DURATION?a.setDuration(d):this._super(a, +b,c,d,e)},onHandlePropTypeInteger:function(a,b,c,d,e){c==PROPERTY_TOTALPARTICLES?a.setTotalParticles(d):this._super(a,b,c,d,e)},onHandlePropTypeFloatVar:function(a,b,c,d,e){c==PROPERTY_LIFE?(a.setLife(d[0]),a.setLifeVar(d[1])):c==PROPERTY_STARTSIZE?(a.setStartSize(d[0]),a.setStartSizeVar(d[1])):c==PROPERTY_ENDSIZE?(a.setEndSize(d[0]),a.setEndSizeVar(d[1])):c==PROPERTY_STARTSPIN?(a.setStartSpin(d[0]),a.setStartSpinVar(d[1])):c==PROPERTY_ENDSPIN?(a.setEndSpin(d[0]),a.setEndSpinVar(d[1])):c==PROPERTY_ANGLE? +(a.setAngle(d[0]),a.setAngleVar(d[1])):c==PROPERTY_SPEED?(a.setSpeed(d[0]),a.setSpeedVar(d[1])):c==PROPERTY_TANGENTIALACCEL?(a.setTangentialAccel(d[0]),a.setTangentialAccelVar(d[1])):c==PROPERTY_RADIALACCEL?(a.setRadialAccel(d[0]),a.setRadialAccelVar(d[1])):c==PROPERTY_STARTRADIUS?(a.setStartRadius(d[0]),a.setStartRadiusVar(d[1])):c==PROPERTY_ENDRADIUS?(a.setEndRadius(d[0]),a.setEndRadiusVar(d[1])):c==PROPERTY_ROTATEPERSECOND?(a.setRotatePerSecond(d[0]),a.setRotatePerSecondVar(d[1])):this._super(a, +b,c,d,e)},onHandlePropTypeColor4FVar:function(a,b,c,d,e){c==PROPERTY_STARTCOLOR?(a.setStartColor(d[0]),a.setStartColorVar(d[1])):c==PROPERTY_ENDCOLOR?(a.setEndColor(d[0]),a.setEndColorVar(d[1])):this._super(a,b,c,d,e)},onHandlePropTypeBlendFunc:function(a,b,c,d,e){c==PROPERTY_BLENDFUNC?a.setBlendFunc(d):this._super(a,b,c,d,e)},onHandlePropTypeTexture:function(a,b,c,d,e){c==PROPERTY_TEXTURE?a.setTexture(d):this._super(a,b,c,d,e)}});cc.ParticleSystemQuadLoader.loader=function(){return new cc.ParticleSystemQuadLoader};cc.CONTROL_EVENT_TOTAL_NUMBER=9;cc.CONTROL_EVENT_TOUCH_DOWN=1;cc.CONTROL_EVENT_TOUCH_DRAGINSIDE=2;cc.CONTROL_EVENT_TOUCH_DRAGOUTSIDE=4;cc.CONTROL_EVENT_TOUCH_DRAGENTER=8;cc.CONTROL_EVENT_TOUCH_DRAGEXIT=16;cc.CONTROL_EVENT_TOUCH_UPINSIDE=32;cc.CONTROL_EVENT_TOUCH_UPOUTSIDE=64;cc.CONTROL_EVENT_TOUCH_CANCEL=128;cc.CONTROL_EVENT_VALUECHANGED=256;cc.CONTROL_STATE_NORMAL=1;cc.CONTROL_STATE_HIGHLIGHTED=2;cc.CONTROL_STATE_DISABLED=4;cc.CONTROL_STATE_SELECTED=8;cc.CONTROL_STATE_INITIAL=8; +cc.Control=cc.Layer.extend({RGBAProtocol:!0,_opacity:0,_color:null,_isOpacityModifyRGB:!1,isOpacityModifyRGB:function(){return this._isOpacityModifyRGB},setOpacityModifyRGB:function(a){this._isOpacityModifyRGB=a;for(var b=this.getChildren(),c=0;c=b.width&&(b.width=a.width);0>=b.height&&(b.height=a.height);this._backgroundSprite.setContentSize(b)}a=cc.ControlUtils.CCRectUnion(this._titleLabel.getBoundingBox(),this._backgroundSprite.getBoundingBox());this.setContentSize(cc.SizeMake(a.size.width,a.size.height));this._titleLabel.setPosition(cc.p(this.getContentSize().width/ +2,this.getContentSize().height/2));this._backgroundSprite.setPosition(cc.p(this.getContentSize().width/2,this.getContentSize().height/2));this._titleLabel.setVisible(!0);this._backgroundSprite.setVisible(!0)},initWithLabelAndBackgroundSprite:function(a,b){if(this.init(!0)){cc.Assert(null!=a,"node must not be nil");cc.Assert(null!=a||a.RGBAProtocol||null!=b,"");this.setTouchEnabled(!0);this._pushed=!1;this._zoomOnTouchDown=!0;this._state=cc.CONTROL_STATE_INITIAL;this._currentTitle=null;this._zoomOnTouchDown= +this._adjustBackgroundImage=!0;this.ignoreAnchorPointForPosition(!1);this.setAnchorPoint(cc.p(0.5,0.5));this._titleLabel=a;this._backgroundSprite=b;this._titleDispatchTable={};this._titleColorDispatchTable={};this._titleLabelDispatchTable={};this._backgroundSpriteDispatchTable={};this.setColor(cc.c3(255,255,255));this.setOpacity(255);this.setOpacityModifyRGB(!0);var c=a.getString();this.setTitleForState(c,cc.CONTROL_STATE_NORMAL);this.setTitleColorForState(a.getColor(),cc.CONTROL_STATE_NORMAL);this.setTitleLabelForState(a, +cc.CONTROL_STATE_NORMAL);this.setBackgroundSpriteForState(b,cc.CONTROL_STATE_NORMAL);this._state=cc.CONTROL_STATE_NORMAL;this._marginH=24;this._marginV=12;this.m_labelAnchorPoint=new cc.Point(0.5,0.5);this.needsLayout();return!0}return!1},initWithTitleAndFontNameAndFontSize:function(a,b,c){a=cc.LabelTTF.create(a,b,c);return this.initWithLabelAndBackgroundSprite(a,cc.Scale9Sprite.create())},initWithBackgroundSprite:function(a){var b=cc.LabelTTF.create("","Arial",30);return this.initWithLabelAndBackgroundSprite(b, +a)},getAdjustBackgroundImage:function(){return this._adjustBackgroundImage},setAdjustBackgroundImage:function(a){this._adjustBackgroundImage=a;this.needsLayout()},getZoomOnTouchDown:function(){return this._zoomOnTouchDown},setZoomOnTouchDown:function(a){return this._zoomOnTouchDown=a},getPreferredSize:function(){return this._preferredSize},setPreferredSize:function(a){if(0==a.width&&0==a.height)this._adjustBackgroundImage=!0;else{this._adjustBackgroundImage=!1;for(var b in this._backgroundSpriteDispatchTable)this._backgroundSpriteDispatchTable[b].setPreferredSize(a); +this._preferredSize=a}this.needsLayout()},getLabelAnchorPoint:function(){return this._labelAnchorPoint},setLabelAnchorPoint:function(a){this.m_labelAnchorPoint=a;this._titleLabel.setAnchorPoint(a)},getCurrentTitle:function(){return this._currentTitle},getCurrentTitleColor:function(){return this._currentTitleColor},getOpacity:function(){return this._opacity},setOpacity:function(a){this._opacity=a;for(var b=this.getChildren(),c=0;ca.g?a.r:a.g;d=d>a.b?d:a.b;b.v=d;c=d-c;if(0=d?(a.g-a.b)/c:a.g>=d?2+(a.b-a.r)/c:4+(a.r-a.g)/c;b.h*=60;0>b.h&&(b.h+=360);return b}; +cc.ControlUtils.RGBfromHSV=function(a){var b,c,d,e,f=new cc.RGBA;f.a=1;if(0>=a.s){if(!a.h)return f.r=a.v,f.g=a.v,f.b=a.v,f;f.r=0;f.g=0;f.b=0;return f}b=a.h;360<=b&&(b=0);b/=60;e=0|b;d=b-e;b=a.v*(1-a.s);c=a.v*(1-a.s*d);d=a.v*(1-a.s*(1-d));switch(e){case 0:f.r=a.v;f.g=d;f.b=b;break;case 1:f.r=c;f.g=a.v;f.b=b;break;case 2:f.r=b;f.g=a.v;f.b=d;break;case 3:f.r=b;f.g=c;f.b=a.v;break;case 4:f.r=d;f.g=b;f.b=a.v;break;default:f.r=a.v,f.g=b,f.b=c}return f}; +cc.ControlUtils.CCRectUnion=function(a,b){return cc.Rect.CCRectUnion(a,b)};cc.Invocation=cc.Class.extend({_action:null,_target:null,_controlEvent:null,ctor:function(a,b,c){this._target=a;this._action=b;this._controlEvent=c},getAction:function(){return this._action},getTarget:function(){return this._target},getControlEvent:function(){return this._controlEvent},invoke:function(a){if(this._target&&this._action)if("string"==typeof this._action)this._target[this._action](a,this._controlEvent);else this._action.call(this._target,a,this._controlEvent)}});cc.POSITIONS_CENTRE=0;cc.POSITIONS_TOP=1;cc.POSITIONS_LEFT=2;cc.POSITIONS_RIGHT=3;cc.POSITIONS_BOTTOM=4;cc.POSITIONS_TOPRIGHT=5;cc.POSITIONS_TOPLEFT=6;cc.POSITIONS_BOTTOMRIGHT=7;cc.POSITIONS_BOTTOMLEFT=8; +cc.Scale9Sprite=cc.Node.extend({RGBAProtocol:!0,_spriteRect:null,_capInsetsInternal:null,_positionsAreDirty:!1,_scale9Image:null,_topLeft:null,_top:null,_topRight:null,_left:null,_centre:null,_right:null,_bottomLeft:null,_bottom:null,_bottomRight:null,_colorUnmodified:null,_isOpacityModifyRGB:!1,_originalSize:null,_preferredSize:null,_opacity:0,_color:null,_capInsets:null,_insetLeft:0,_insetTop:0,_insetRight:0,_insetBottom:0,_updateCapInset:function(){var a;a=0==this._insetLeft&&0==this._insetTop&& +0==this._insetRight&&0==this._insetBottom?cc.RectZero():cc.RectMake(this._insetLeft,this._insetTop,this._spriteRect.size.width-this._insetLeft-this._insetRight,this._spriteRect.size.height-this._insetTop-this._insetBottom);this.setCapInsets(a)},_updatePositions:function(){var a=this._contentSize,b=a.width-this._topLeft.getContentSize().width-this._topRight.getContentSize().width,a=a.height-this._topLeft.getContentSize().height-this._bottomRight.getContentSize().height,b=b/this._centre.getContentSize().width, +a=a/this._centre.getContentSize().height;this._centre.setScaleX(b);this._centre.setScaleY(a);var c=this._centre.getContentSize().width*b,d=this._centre.getContentSize().height*a,e=this._bottomLeft.getContentSize().width,f=this._bottomLeft.getContentSize().height;this._bottomLeft.setAnchorPoint(cc.p(0,0));this._bottomRight.setAnchorPoint(cc.p(0,0));this._topLeft.setAnchorPoint(cc.p(0,0));this._topRight.setAnchorPoint(cc.p(0,0));this._left.setAnchorPoint(cc.p(0,0));this._right.setAnchorPoint(cc.p(0, +0));this._top.setAnchorPoint(cc.p(0,0));this._bottom.setAnchorPoint(cc.p(0,0));this._centre.setAnchorPoint(cc.p(0,0));this._bottomLeft.setPosition(cc.p(0,0));this._bottomRight.setPosition(cc.p(e+c,0));this._topLeft.setPosition(cc.p(0,f+d));this._topRight.setPosition(cc.p(e+c,f+d));this._left.setPosition(cc.p(0,f));this._left.setScaleY(a);this._right.setPosition(cc.p(e+c,f));this._right.setScaleY(a);this._bottom.setPosition(cc.p(e,0));this._bottom.setScaleX(b);this._top.setPosition(cc.p(e,f+d));this._top.setScaleX(b); +this._centre.setPosition(cc.p(e,f))},ctor:function(){this._spriteRect=cc.RectZero();this._capInsetsInternal=cc.RectZero();this._colorUnmodified=cc.white();this._originalSize=new cc.Size(0,0);this._preferredSize=new cc.Size(0,0);this._color=cc.white();this._capInsets=cc.RectZero()},getOriginalSize:function(){return this._originalSize},setOriginalSize:function(a){this._originalSize=a},getPreferredSize:function(){return this._preferredSize},setPreferredSize:function(a){this.setContentSize(a);this._preferredSize= +a},getOpacity:function(){return this._opacity},setOpacity:function(a){this._opacity=a},getColor:function(){return this._color},setColor:function(a){this._color=a;if((a=this._scale9Image.getChildren())&&0!=a.length)for(var b=0;b=this._maximumValue&&(this._maximumValue=this._minimumValue+1);this.setValue(this._value)},getMaximumValue:function(){return this._maximumValue},setMaximumValue:function(a){this._maximumAllowedValue=this._maximumValue=a;this._maximumValue<=this._minimumValue&&(this._minimumValue=this._maximumValue-1);this.setValue(this._value)},getMinimumAllowedValue:function(){return this._minimumAllowedValue},setMinimumAllowedValue:function(a){this._minimumAllowedValue=a}, +getMaximumAllowedValue:function(){return this._maximumAllowedValue},setMaximumAllowedValue:function(a){this._maximumAllowedValue=a},getSnappingInterval:function(){return this._snappingInterval},setSnappingInterval:function(a){this._snappingInterval=a},getThumbItem:function(){return this._thumbItem},getProgressSprite:function(){return this._progressSprite},getBackgroundSprite:function(){return this._backgroundSprite},initWithSprites:function(a,b,c){return this.init()?(this.ignoreAnchorPointForPosition(!1), +this.setTouchEnabled(!0),this._backgroundSprite=a,this._progressSprite=b,this._thumbItem=c,a=cc.ControlUtils.CCRectUnion(a.getBoundingBox(),c.getBoundingBox()),a=cc.SizeMake(a.size.width+2*cc.SLIDER_MARGIN_H,a.size.height+2*cc.SLIDER_MARGIN_V),this.setContentSize(a),this._backgroundSprite.setAnchorPoint(cc.p(0.5,0.5)),this._backgroundSprite.setPosition(cc.p(a.width/2,a.height/2)),this.addChild(this._backgroundSprite),this._progressSprite.setAnchorPoint(cc.p(0,0.5)),this._progressSprite.setPosition(cc.p(0+ +cc.SLIDER_MARGIN_H,a.height/2)),this.addChild(this._progressSprite),this._thumbItem.setPosition(cc.p(0+cc.SLIDER_MARGIN_H,a.height/2)),this.addChild(this._thumbItem),this._minimumValue=0,this._maximumValue=1,this._snappingInterval=-1,this.setValue(this._minimumValue),!0):!1},sliderBegan:function(a){this._thumbItem.selected();this.setValue(this.valueForLocation(a))},sliderMoved:function(a){this.setValue(this.valueForLocation(a))},sliderEnded:function(){this._thumbItem.isSelected()&&(this._thumbItem.unselected(), +this.setValue(this.valueForLocation(this._thumbItem.getPosition())))},getTouchLocationInControl:function(a){a=a.getLocation();a=this.convertToNodeSpace(a);0>a.x?a.x=0:a.x>this._backgroundSprite.getContentSize().width+cc.SLIDER_MARGIN_H&&(a.x=this._backgroundSprite.getContentSize().width+cc.SLIDER_MARGIN_H);return a},onTouchBegan:function(a){if(!this.isTouchInside(a))return!1;a=this.getTouchLocationInControl(a);this.sliderBegan(a);return!0},onTouchMoved:function(a){a=this.getTouchLocationInControl(a); +this.sliderMoved(a)},onTouchEnded:function(){this.sliderEnded(cc.PointZero())},valueForLocation:function(a){a=(a.x-cc.SLIDER_MARGIN_H)/this._backgroundSprite.getContentSize().width;return Math.max(Math.min(this._minimumValue+a*(this._maximumValue-this._minimumValue),this._maximumAllowedValue),this._minimumAllowedValue)}}); +cc.ControlSlider.create=function(a,b,c){if("string"==typeof a){var a=cc.Sprite.create(a),b=cc.Sprite.create(b),d=cc.Sprite.create(c),c=cc.Sprite.create(c);c.setColor(cc.gray());c=cc.MenuItemSprite.create(d,c)}d=new cc.ControlSlider;d.initWithSprites(a,b,c);return d};cc.ControlSwitch=cc.Control.extend({_switchSprite:null,_initialTouchXPosition:0,_moved:!1,_on:!1,ctor:function(){},initWithMaskSprite:function(a,b,c,d,e,f){return this.init()?(cc.Assert(a,"Mask must not be nil."),cc.Assert(b,"onSprite must not be nil."),cc.Assert(c,"offSprite must not be nil."),cc.Assert(d,"thumbSprite must not be nil."),this.setTouchEnabled(!0),this._on=!0,this._switchSprite=new cc.ControlSwitchSprite,this._switchSprite.initWithMaskSprite(a,b,c,d,e,f),this._switchSprite.setPosition(cc.p(this._switchSprite.getContentSize().width/ +2,this._switchSprite.getContentSize().height/2)),this.addChild(this._switchSprite),this.ignoreAnchorPointForPosition(!1),this.setAnchorPoint(cc.p(0.5,0.5)),this.setContentSize(this._switchSprite.getContentSize()),!0):!1},setOn:function(a){this._on=a;this._switchSprite.runAction(cc.ActionTween.create(0.2,"sliderXPosition",this._switchSprite.getSliderXPosition(),this._on?this._switchSprite.getOnPosition():this._switchSprite.getOffPosition()));this.sendActionsForControlEvents(cc.CONTROL_EVENT_VALUECHANGED)}, +isOn:function(){return this._on},hasMoved:function(){return this._moved},setEnabled:function(a){this._enabled=a;this._switchSprite.setOpacity(a?255:128)},locationFromTouch:function(a){a=a.getLocation();return a=this.convertToNodeSpace(a)},onTouchBegan:function(a){if(!this.isTouchInside(a)||!this.isEnabled())return!1;this._moved=!1;this._initialTouchXPosition=this.locationFromTouch(a).x-this._switchSprite.getSliderXPosition();this._switchSprite.getThumbSprite().setColor(cc.gray());this._switchSprite.needsLayout(); +return!0},onTouchMoved:function(a){a=this.locationFromTouch(a);a=cc.p(a.x-this._initialTouchXPosition,0);this._moved=!0;this._switchSprite.setSliderXPosition(a.x)},onTouchEnded:function(a){a=this.locationFromTouch(a);this._switchSprite.getThumbSprite().setColor(cc.white());this.hasMoved()?this.setOn(!(a.x=this._onPosition&&(a=this._onPosition);this._sliderXPosition=a;this.needsLayout()},getSliderXPosition:function(){return this._sliderXPosition}, +onSideWidth:function(){return this._onSprite.getContentSize().width},offSideWidth:function(){return this._offSprite.getContentSize().height},updateTweenAction:function(a,b){cc.log("key = "+b+", value = "+a);this.setSliderXPosition(a)},setOnPosition:function(a){this._onPosition=a},getOnPosition:function(){return this._onPosition},setOffPosition:function(a){this._offPosition=a},getOffPosition:function(){return this._offPosition},setMaskTexture:function(a){this._maskTexture=a},getMaskTexture:function(){return this._maskTexture}, +setTextureLocation:function(a){this._textureLocation=a},getTextureLocation:function(){return this._textureLocation},setMaskLocation:function(a){this._maskLocation=a},getMaskLocation:function(){return this._maskLocation},setOnSprite:function(a){this._onSprite=a},getOnSprite:function(){return this._onSprite},setOffSprite:function(a){this._offSprite=a},getOffSprite:function(){return this._offSprite},setThumbSprite:function(a){this._thumbSprite=a},getThumbSprite:function(){return this._thumbSprite},setOnLabel:function(a){this._onLabel= +a},getOnLabel:function(){return this._onLabel},setOffLabel:function(a){this._offLabel=a},getOffLabel:function(){return this._offLabel}});cc.ControlColourPicker=cc.Control.extend({_colorValue:null,_hsv:null,_colourPicker:null,_huePicker:null,_background:null,hueSliderValueChanged:function(a){this._hsv.h=a.getHue();a=cc.ControlUtils.RGBfromHSV(this._hsv);this._colorValue=cc.c3(0|255*a.r,0|255*a.g,0|255*a.b);this.sendActionsForControlEvents(cc.CONTROL_EVENT_VALUECHANGED);this._updateControlPicker()},colourSliderValueChanged:function(a){this._hsv.s=a.getSaturation();this._hsv.v=a.getBrightness();a=cc.ControlUtils.RGBfromHSV(this._hsv); +this._colorValue=cc.c3(0|255*a.r,0|255*a.g,0|255*a.b);this.sendActionsForControlEvents(cc.CONTROL_EVENT_VALUECHANGED)},getColorValue:function(){return this._colorValue},setColorValue:function(a){this._colorValue=a;var b=new cc.RGBA;b.r=a.r/255;b.g=a.g/255;b.b=a.b/255;b.a=1;this._hsv=cc.ControlUtils.HSVfromRGB(b);this._updateHueAndControlPicker()},getBackground:function(){return this._background},init:function(){if(this._super()){this.setTouchEnabled(!0);cc.SpriteFrameCache.getInstance().addSpriteFrames("extensions/CCControlColourPickerSpriteSheet.plist"); +var a=cc.SpriteBatchNode.create("extensions/CCControlColourPickerSpriteSheet.png");this.addChild(a);var b=[GL_LINEAR_MIPMAP_LINEAR,GL_LINEAR,GL_REPEAT,GL_REPEAT];a.getTexture().setAliasTexParameters();a.getTexture().setTexParameters(b);a.getTexture().generateMipmap();this._hsv.h=0;this._hsv.s=0;this._hsv.v=0;this._background=cc.ControlUtils.addSpriteToTargetWithPosAndAnchor("menuColourPanelBackground.png",a,cc.PointZero,cc.p(0.5,0.5));b=cc.pSub(this._background.getPosition(),cc.p(this._background.getContentSize().width/ +2,this._background.getContentSize().height/2));this._huePicker=cc.ControlHuePicker.create(a,cc.p(b.x+8,b.y+8));this._colourPicker=cc.ControlSaturationBrightnessPicker.create(a,cc.p(b.x+28,b.y+28));this._huePicker.addTargetWithActionForControlEvents(this,this.hueSliderValueChanged,cc.CONTROL_EVENT_VALUECHANGED);this._colourPicker.addTargetWithActionForControlEvents(this,this.colourSliderValueChanged,cc.CONTROL_EVENT_VALUECHANGED);this._updateHueAndControlPicker();this.addChild(this._huePicker);this.addChild(this._colourPicker); +this.setContentSize(this._background.getContentSize());return!0}return!1},_updateControlPicker:function(){this._huePicker.setHue(this._hsv.h);this._colourPicker.updateWithHSV(this._hsv)},_updateHueAndControlPicker:function(){this._huePicker.setHue(this._hsv.h);this._colourPicker.updateWithHSV(this._hsv);this._colourPicker.updateDraggerWithHSV(this._hsv)},onTouchBegan:function(){return!1}});cc.ControlColourPicker.create=function(){var a=new cc.ControlColourPicker;a.init();return a};cc.ControlHuePicker=cc.Control.extend({_hue:0,_huePercentage:0,_background:null,_slider:null,_startPos:null,getHue:function(){return this._hue},setHue:function(a){m_hue=a;this.setHuePercentage(m_hue/360)},getHuePercentage:function(){return this._huePercentage},setHuePercentage:function(a){this._huePercentage=a;this._hue=360*this._huePercentage;var b=this._background.getBoundingBox(),c=this._startPos.x+0.5*b.size.width,a=this._startPos.y+0.5*b.size.height,b=0.5*b.size.width-15,d=cc.DEGREES_TO_RADIANS(360* +this._huePercentage-180),c=c+b*Math.cos(d),a=a+b*Math.sin(d);this._slider.setPosition(cc.p(c,a))},getBackground:function(){return this._background},getSlider:function(){return this._slider},getStartPos:function(){return this._startPos},initWithTargetAndPos:function(a,b){return this.init()?(this.setTouchEnabled(!0),this._background=cc.ControlUtils.addSpriteToTargetWithPosAndAnchor("huePickerBackground.png",a,b,cc.p(0,0)),this._slider=cc.ControlUtils.addSpriteToTargetWithPosAndAnchor("colourPicker.png", +a,b,cc.p(0.5,0.5)),this._slider.setPosition(cc.p(b.x,b.y+0.5*this._background.getBoundingBox().size.height)),this._startPos=b,this._huePercentage=this._hue=0,!0):!1},_updateSliderPosition:function(a){var b=this._background.getBoundingBox(),a=Math.atan2(a.y-(this._startPos.y+0.5*b.size.height),a.x-(this._startPos.x+0.5*b.size.width)),a=cc.RADIANS_TO_DEGREES(a)+180;this.setHue(a);this.sendActionsForControlEvents(cc.CONTROL_EVENT_VALUECHANGED)},_checkSliderPosition:function(a){return cc.Rect.CCRectContainsPoint(this._background.getBoundingBox(), +a)?(this._updateSliderPosition(a),!0):!1},onTouchBegan:function(a){a=this.getTouchLocation(a);return this._checkSliderPosition(a)},onTouchMoved:function(a){a=this.getTouchLocation(a);this._updateSliderPosition(a);this.sendActionsForControlEvents(cc.CONTROL_EVENT_VALUECHANGED)}});cc.ControlHuePicker.create=function(a,b){var c=new cc.ControlHuePicker;c.initWithTargetAndPos(a,b);return c};cc.ControlSaturationBrightnessPicker=cc.Control.extend({_saturation:0,_brightness:0,_background:null,_overlay:null,_shadow:null,_slider:null,_startPos:null,_boxPos:0,_boxSize:0,getSaturation:function(){return this._saturation},getBrightness:function(){return this._brightness},getBackground:function(){return this._background},getOverlay:function(){return this._brightness},getShadow:function(){return this._shadow},getSlider:function(){return this._slider},getStartPos:function(){return this._startPos}, +initWithTargetAndPos:function(a,b){return this.init()?(this.setTouchEnabled(!0),this._background=cc.ControlUtils.addSpriteToTargetWithPosAndAnchor("colourPickerBackground.png",a,b,cc.p(0,0)),this._overlay=cc.ControlUtils.addSpriteToTargetWithPosAndAnchor("colourPickerOverlay.png",a,b,cc.p(0,0)),this._shadow=cc.ControlUtils.addSpriteToTargetWithPosAndAnchor("colourPickerShadow.png",a,b,cc.p(0,0)),this._slider=cc.ControlUtils.addSpriteToTargetWithPosAndAnchor("colourPicker.png",a,b,cc.p(0.5,0.5)),this._startPos= +b,this._boxPos=35,this._boxSize=150,!0):!1},updateWithHSV:function(a){var b=new cc.HSV;b.s=1;b.h=a.h;b.v=1;a=cc.ControlUtils.RGBfromHSV(b);this._background.setColor(cc.c3(0|255*a.r,0|255*a.g,0|255*a.b))},updateDraggerWithHSV:function(a){a=cc.PointMake(this._startPos.x+this._boxPos+this._boxSize*(1-a.s),this._startPos.y+this._boxPos+this._boxSize*a.v);this._updateSliderPosition(a)},_updateSliderPosition:function(a){var b=this._startPos.x+0.5*this._background.getBoundingBox().size.width,c=this._startPos.y+ +0.5*this._background.getBoundingBox().size.height,d=a.x-b,e=a.y-c,f=Math.sqrt(d*d+e*e),d=Math.atan2(e,d),e=0.5*this._background.getBoundingBox().size.width;f>e&&(a.x=b+e*Math.cos(d),a.y=c+e*Math.sin(d));this._slider.setPosition(a);a.xthis._startPos.x+this._boxPos+this._boxSize-1&&(a.x=this._startPos.x+this._boxPos+this._boxSize-1);a.ythis._startPos.y+this._boxPos+ +this._boxSize&&(a.y=this._startPos.y+this._boxPos+this._boxSize);this._saturation=1-Math.abs((this._startPos.x+this._boxPos-a.x)/this._boxSize);this._brightness=Math.abs((this._startPos.y+this._boxPos-a.y)/this._boxSize)},_checkSliderPosition:function(a){var b=this._startPos.x+0.5*this._background.getBoundingBox().size.width,c=this._startPos.y+0.5*this._background.getBoundingBox().size.height,b=a.x-b,c=a.y-c;return Math.sqrt(b*b+c*c)<=0.5*this._background.getBoundingBox().size.width?(this._updateSliderPosition(a), +this.sendActionsForControlEvents(cc.CONTROL_EVENT_VALUECHANGED),!0):!1},onTouchBegan:function(a){a=this.getTouchLocation(a);return this._checkSliderPosition(a)},onTouchMoved:function(a){a=this.getTouchLocation(a);this._updateSliderPosition(a);this.sendActionsForControlEvents(cc.CONTROL_EVENT_VALUECHANGED)}});cc.ControlSaturationBrightnessPicker.create=function(a,b){var c=new cc.ControlSaturationBrightnessPicker;c.initWithTargetAndPos(a,b);return c};cc.Spacer=cc.Layer.extend({});cc.Spacer.verticalSpacer=function(a){var b=new cc.Spacer;b.init();b.setContentSize(cc.SizeMake(0,a));return b};cc.Spacer.horizontalSpacer=function(a){var b=new cc.Spacer;b.init();b.setContentSize(cc.SizeMake(a,0));return b}; +cc.MenuPassive=cc.Layer.extend({RGBAProtocol:!0,_color:null,_opacity:0,ctor:function(){},getColor:function(){return this._color},setColor:function(a){this._color=a;if(this._children&&0=j||null==j?f:j),++g,g>=h&&(d+=f+5,f=g=0,++e));cc.Assert(!g,"");var k=cc.Director.getInstance().getWinSize(),l=h=f=e=0,m=0,d=d/2;if(this._children&&0=j||null==j?f:j),this._children[c].setPosition(cc.p(m-k.width/2,d-this._children[c].getContentSize().height/ +2)),m+=l,++g,g>=h&&(d-=f+5,f=h=g=0,++e))},alignItemsInRows:function(a){var b=[],c;for(c=1;c=m||null==m?j:m),g+=0|this._children[c].getContentSize().height+5,++k,k>=l&&(d.push(j),e.push(g),f+=j+10,j=k=0,g=-5,++h));cc.Assert(!k, +"");g=cc.Director.getInstance().getWinSize();j=h=0;l=null;var f=-f/2,n=0;if(this._children&&0=m||null==m?j:m),this._children[c].setPosition(cc.p(f+d[h]/2,n-g.height/2)),n-=this._children[c].getContentSize().height+10,++k,k>=l&&(f+=j+5,j=l=k=0,++h))},setOpacityModifyRGB:function(){},isOpacityModifyRGB:function(){return!1}}); +cc.MenuPassive.create=function(a){0==arguments.length&&(a=null);for(var b=[],c=1;c=c&&athis._dataSource.numberOfCellsInTableView(this)-1)){var b=this._cellWithIndex(a);b&&this._moveCellOutOfSight(b);b=this._dataSource.tableCellAtIndex(this,a);this._setIndexForCell(a,b);this._addCellIfNecessary(b)}},insertCellAtIndex:function(a){if(!(a==cc.INVALID_INDEX||a>this._dataSource.numberOfCellsInTableView(this)-1)){var b;if(b=this._cellsUsed.objectWithObjectID(a))for(var c=b=this._cellsUsed.indexOfSortedObject(b);cthis._dataSource.numberOfCellsInTableView(this)-1)){var b=this._cellWithIndex(a);if(b){var c=this._cellsUsed.indexOfSortedObject(b);this._moveCellOutOfSight(b);this._indices.removeObject(a);for(a=this._cellsUsed.count()-1;a>c;a--)b=this._cellsUsed.objectAtIndex(a), +this._setIndexForCell(b.getIdx()-1,b)}}},reloadData:function(){for(var a=0;ab;)if(this._moveCellOutOfSight(e), +0this._children[b]._zOrder)this._children[b].visit(a); +else break;this.draw(a);if(this._children)for(;b= this.smokeDistance) { + this.lastSmoke = this.addObject({ + name: "smoke", + x: birdPos.x, + y: birdPos.y, + scale: Math.random() >= 0.5 ? 0.8 : 0.6 + }); + } + } + }, + onTouchesBegan: function (touch, evt) { + this.menus.forEach(function (menu) { + menu.handleTouches(touch, evt); + }); + + var currPoint = touch[0].getLocation(), + vector = cc.pSub(this.birdStartPos, currPoint); + + if ((this.isDraggingSling = (cc.pLength(vector) < this.slingRadius.max)) && !this.birdSprite.body && !this.slingRubber3) { + this.slingRubber3 = this.addObject({ + name: "sling3", + x: currPoint.x, + y: currPoint.y, + scaleY: 1.5, + scaleX: 2, + anchor: cc.p(0, 0.5), + z: 1 + }); + } + }, + onTouchesMoved: function (touch, evt) { + this.menus.forEach(function (menu) { + menu.handleTouchesMoved(touch, evt); + }); + + if (!this.isDraggingSling || this.birdSprite.body) return; + + var currPoint = touch[0].getLocation(), + vector = cc.pSub(currPoint, this.birdStartPos), + radius = cc.pLength(vector), + angle = cc.pToAngle(vector); + + angle = angle < 0 ? (Math.PI * 2) + angle : angle; + radius = MathH.clamp(radius, this.slingRadius.min, this.slingRadius.max); + if (angle <= this.slingAngle.max && angle >= this.slingAngle.min) { + radius = this.slingRadius.min; + } + + this.birdSprite.setPosition(cc.pAdd(this.birdStartPos, cc.p(radius * Math.cos(angle), radius * Math.sin(angle)))); + + var updateRubber = function (rubber, to, lengthAddon, topRubber) { + var from = rubber.getPosition(), + rubberVec = cc.pSub(to, from), + rubberAng = cc.pToAngle(rubberVec), + rubberDeg = cc.RADIANS_TO_DEGREES(rubberAng), + length = cc.pLength(rubberVec) + (lengthAddon || 8); + + rubber.setRotation(-rubberDeg); + rubber.setScaleX(-(length / rubber.getContentSize() + .width)); + + if (topRubber) { + rubber.setScaleY(1.1 - ((0.7 / this.slingRadius.max) * length)); + this.slingRubber3.setRotation(-rubberDeg); + this.slingRubber3.setPosition(cc.pAdd(from, cc.p((length) * Math.cos(rubberAng), (length) * Math.sin(rubberAng)))); + } + }.bind(this); + + var rubberToPos = this.birdSprite.getPosition(); + updateRubber(this.slingRubber2, rubberToPos, 13, true); + updateRubber(this.slingRubber1, rubberToPos, 0); + this.slingRubber1.setScaleY(this.slingRubber2.getScaleY()); + }, + onTouchesEnded: function (touch, evt) { + this.menus.forEach(function (menu) { + menu.handleTouchesEnded(touch, evt); + }); + + if (!this.birdSprite.body && this.isDraggingSling) { + this.slingRubber1.setVisible(false); + this.slingRubber2.setVisible(false); + this.slingRubber3.setVisible(false); + + b2.enablePhysicsFor({ + type: "dynamic", + shape: "circle", + sprite: this.birdSprite, + density: 15, + restitution: 0.4, + userData: new BodyUserData(GameObjectRoll.Bird, 250) + }); + + var vector = cc.pSub(this.birdStartPos, this.birdSprite.getPosition()), + impulse = cc.pMult(vector, 12), + bPos = this.birdSprite.body.GetWorldCenter(); + + this.birdSprite.body.ApplyImpulse(impulse, bPos); + + this.isDraggingSling = false; + } + }, + onKeyUp: function (e) {}, + onKeyDown: function (e) {} +}); + + +//--------------------- Scene --------------------- + +var GameScene = cc.Scene.extend({ + onEnter: function () { + this._super(); + + var layer = new GameLayer(); + layer.init(); + + this.addChild(layer); + } +}); \ No newline at end of file diff --git a/angry-birds/js/main.js b/angry-birds/js/main.js new file mode 100644 index 000000000..8380b13bb --- /dev/null +++ b/angry-birds/js/main.js @@ -0,0 +1,31 @@ +var cocos2dApp = cc.Application.extend({ + config: document.querySelector('#cocos2d-html5')['c'], + ctor: function (scene) { + this._super(); + this.startScene = scene; + cc.COCOS2D_DEBUG = this.config['COCOS2D_DEBUG']; + cc.setup(this.config['tag']); + cc.Loader.getInstance() + .onloading = function () { + cc.LoaderScene.getInstance() + .draw(); + }; + cc.Loader.getInstance() + .onload = function () { + cc.AppController.shareAppController() + .didFinishLaunchingWithOptions(); + }; + + cc.Loader.getInstance() + .preload(g_ressources); + }, + applicationDidFinishLaunching: function () { + var director = cc.Director.getInstance(); + director.setDisplayStats(this.config['showFPS']); + director.setAnimationInterval(1.0 / this.config['frameRate']); + director.runWithScene(new this.startScene()); + + return true; + } +}); +var myApp = new cocos2dApp(GameScene); diff --git a/angry-birds/js/resources.js b/angry-birds/js/resources.js new file mode 100644 index 000000000..e925e6db3 --- /dev/null +++ b/angry-birds/js/resources.js @@ -0,0 +1,13 @@ +var g_ressources = (function () { + var retval = [], + imgs = ["bg", "platform", "bird", "enemy", "sling1", "sling2", "sling3", "ground", "wood1", "wood2", "smoke", "menu_refresh", "menu_back"]; + + for (var i = 0; i < imgs.length; i++) { + retval.push({ + type: "image", + src: 'sprites/' + imgs[i] + '.png' + }); + } + + return retval; +}()); \ No newline at end of file diff --git a/angry-birds/sprites/CURSORS_SHEET_1.png b/angry-birds/sprites/CURSORS_SHEET_1.png new file mode 100644 index 0000000000000000000000000000000000000000..815c9cd454e638cc2a0d7d492e860a00edccb582 GIT binary patch literal 5204 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 literal 0 HcmV?d00001 diff --git a/angry-birds/sprites/bird.png b/angry-birds/sprites/bird.png new file mode 100644 index 0000000000000000000000000000000000000000..1b9a6627fe0dee013b999e9168bc04ea633b3642 GIT binary patch literal 5301 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 P00000NkvXXu0mjf&k{T9 literal 0 HcmV?d00001 diff --git a/angry-birds/sprites/ground.png b/angry-birds/sprites/ground.png new file mode 100644 index 0000000000000000000000000000000000000000..afe0ff8138a64b869b1e3a2f8c0e45113f35bc08 GIT binary patch literal 2951 zcmZ`*XHXOB68#XQH>m=G^d`LugqF~&Kro?6Cn#b7QJP@r^@50WgP_uj3K9%OLq|#w zkQ$0K5fHdi1gVcZ@BO+n@5k<***SY=_x#$#8y1EPwA{1+00v_tJ!=3igr8$RYRdC$ zmr}-jUTFM`?Ct|V$NEo@fxPFJ0id8K1JT(=Q z!fqu+pF}%BwIuK|HTqRTQt#1x*ejp0=Kb#jr}g7nD^)w#x05MnN7ww4j7}u2upeNiuJaJMe@w?%M68n}o({yqXQ*n`|KGT`t` zfSs%`9q_YyCg=fg4Nx_BGf5vHwgC``%yhMYnjXkmCB#Yq ziZI~PBP0|IVsZhS!8QW&>sk%-isZRdxwR0yu$q3P1GTh26#^l{Cr&ixyvC;DdcieM zN2V<#mrEg1iRs%;KLCa4?C00+oCFgYYluXZR2-wT^x7xNGeI}E#na`%N?eEGGU?QV!qq9nj^97t=odY~Pfji`ElrqoKpk9r z5#gt(HfI9j6bmLopGtI!44-){%t;-QYt1Qxw|BJ2!qTP7oZQKOn~E_b z0|^WJ0Bkp*Tfd4^lViN2=Ldt%wzN+S3q=6N%lN530JrpnW#GMa+TGLu=oLmvzSZT~ zZM`f-puEz0ak`c6*hM7pBDq0sH2W_1;qN+5GfLJFl)bLPe#2(%heup|rfe@XjEy)W31Z51T)G^--|Y0 z`qOdQO+h{$X(S~y#*)S=%N&*f>rfSDNrWkg;h$VEe)k$a%ra~+e9u~FRjNE+$%tDh zJoC7vaLZ3kMcn~wkM1DgeL>)tyiT+7VMO3RdCW?qU>z!v_+Ej}<{s+$kEofH6OS5+(l4jYqBo-uiN|em- z@}7=96zH)u_Q=223fpyBrsV7k#^YyIzS>iVBFD zny;B}=2@HLOC(A(%rwlp2l@wI4vgh0=WEK3E3D+N^5=D_hRkU?23`L_D*#M)!1s0v8L*#(o3ayiwuj(f-zM4+h4fPxbgC)+T?%5XFhY-;dr&NKQ13>XXUVlF8@kn(1j-G6~%CcbX3!-oxhC z<+p8=k=|^oY~J3CpMKG=^g^P*PVxSi_8!B}SVWw5s$T+$&) zND;AZH@1|cT!uwTJxj+d!Q%R}zjc`<%Q#X*wpoKjQfWilc-v5dvO_9E2@^0!Nj{5h zBT4hnr$5u1l|zI(6^o^o@iAiMPnyjb%x3b{3pnx~^7|@is<+5TKTUt)53LX|&%mM9 zP~W{C_EmYt)}D6WOKyW*41#6N^YyU2d=THH;_D#(WXkaRBJt%&pMqg?Q(4R`tP3#h#c{!$#uF zW`8^(J{`Qw6OZowlso_iV;{43ksu8Rl-j-`M-D zPm;|Z5GOT7<6!t#pCBKaJxf0m2Q;+dui?A!L%7Q3@Jzky_`$uQO`fpk-%3A6Ne<2X zCt9CBl5ELr%}2dPJ&%l!>h`s35-U~@vW|S6sx5r|H@eA($xo<+7;)qHucN%fnsDp1 zv1{vwjNMm1o?^Fxq#0BgZ2x-RwIJlD7qYavPcygA$Dls-FeR*No@(UkLtYfG>>X&{ zcAi1LP2Q1%n?s{zzt+&$+HB~tA?Yg9b0vsfh{+E8^X;kCsF4iR_FxJ&6B`~O^Jm(H z^b!}g;!d2q!-U>yWDcAk);~*L(P-8nI&Oam+^!`pvm!nq^4_RB`>qA9K~6J9EW4YY zH|5pf9ewbdp)K`cUi+&&1**iE-IkDF9A{&r1!|fzEjyv;{m%WpIgXi#0I?HdU(;le z*k*OJWwZ0H&W7$JY$kqG+u?M2Vr%;G9YRpy&d{{sK4on5;A#3^8WZedT5eij97EiC z!F4S)wFT{flhxx=*r3OtXaVQx%hSFZP7c|KgVFVI;!w^|QTBFr#wXuL#V2cob*?w0 zuC^||kDr4TfbsJz8(If-u40${;J5P+O>V0ION5+(pfsLr*? z0b!R6xEul?cmDkTpZ5Qz{>}cEn9HHwe^n@QKHeG>p#VC6uQsJYVgX3lpaS6Rj2v*S WWNh)H>tW~H17m#)y&9-X)PDeIj9@GP literal 0 HcmV?d00001 diff --git a/angry-birds/sprites/menu_back.png b/angry-birds/sprites/menu_back.png new file mode 100644 index 0000000000000000000000000000000000000000..91158e363274c8a47b947ac1fa1c76217afd889a GIT binary patch literal 6358 zcmV;{7%At8P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000gFNklbX^QtNM0}g@uKPh*(**5c^gRVsCFR&8@8M+IQ&uT(4)Jo9O5`a=`?}q}A>o zlUGl0pSbF8(`T-qJ!k%wS+nPT(-_R2J#Wj5nRC8YcuZdH?lF0_!eh!mM>~&QJaFKU zcRF8P!3BYE zL+iFL%AHX!Vqsy?(#6GXd9*Sn3rc}2fC>l)f`K5@(I4<_WcHit3jzXx<3JQ}4$x3l zUBu2^dy+eL>f&;*h{cGJ&hOvIxLyTWKmgQz1T}9%)ifxZ0Qw2WV~H~qj)0=Z#0m6n z#ya(GP%#mzr$gO)VE77%1oUj*xjVUqb<5r&BGR;JGilkq|f{$E;-=KCOS&0s)kIsU^2+#!mxzL7Cd}TkU_qB!MQNTgU z%5xdxGJdIa=+Jp&+HV(2K?T)saN&dUZy&;FR%sBvhW{E ze57a3J|3A_88r|ERZ~d{vLi#i33NyQd?K14$URQXL3fIN>kNDetu0hNp(*5FXb*-@fK0Y+_cpP<4M)j>OQ&+hKK3yZSrAQ<%HQ0})!f6X7XM4q0k@Ff0So@$)|vFOH5Q z7ThOt)d#ZnL*~9mCu<+*4w83fHBs|yIk(lD+R9Q4HC05;v!OC=GvxR`UQTo9f=D_3 zHn$S&pl&H}m4JYtgu6w`#-rS4gI+lm5~e&F@smM471Xbhv9mu>bA_u%)=(d1nyW;= zXG8uWXABR`)xi0koSja}fx+BTw|$6+uQmDzSBP_mSht6hpunJ-Kz)- zMp1eqk#m}pw&poVP=LyGooa%yjsyiHdi+l8c!--|#9V!e9;EE;!!32YyG4c%AN{|@ zB{>EN1idTDy*89Zjx$!GdI)MSDkGdpT4qh`M*}Inb%A?Bcm4z?XIgUQKQBVcL`d|6 zBrizvqE0yuedq{u{)0&WrW#aX@ulSEc?>mG zcU=>^@Gyw+r^_VcjNs1I^+ z-$JtE{m^HnQLQg{V0lArHL)xDqVpeQ9EOiDv;qQx5*|yWE?&WfHSIaG`~`}xCD9mB zS6xobvS+#QSvN@VXatc&PqYUHadKX3D)MjASW#0^f^ta@&Mxotcp@&YZp-v#8sH$5 zj3#=IE#*<;?-z+zP=0a@aUVF4{MAG%3Njl1>PpYC^ zNLgiza%oQr(xM;Quv@3TCu#jS(vPhrKkXFdx@!+CUsa+ddQlh7f70E&NTL_Xd-{-d zw!LYKat%MffH)a7%Ju!yQVnnjO2<6>sg>XXiJttrwgX{rTayv7<$(>$h}cZnbRlAf z5aul?-|tA`S|@(p^DbF2KTw+WD>Y?>x64|C?9ZCJ{nFd9Ye&|DXN{72Qjelqz ziB~|pC)dC2OSrdiVdorbD@x3Ya@cW-blbRAi-dpPw!ZAe?w`@bNfayNdi_98D}7^h}g5clZ_$~2en6Uj>rCvsL( z3Iaw@6gY~T-@nYIb^ZC}qdp`o>_+Uojwt7}BGTJ}lWz%;b6aqFu02;a^fzs38e8O! z6}}?e1@%&UBIdV7lXUnlk>cxTiJ0A-!b8I$*~_@dB`Bzl8i)S)7_`2_N#8h#3!gks z%7@Pqx1ckzbGtmAh+n`{5K*~9q6Y?*f{SZA5jLXM8AVyw&)#<&W;v546 zfqpDXUz^7lxnt{+{liOydkbebO{S_O7Yqg>{%%9&j+e}DIquD&_V``c?8C;3xLwbp z`K1#WRsk98-tDV2zm1O^XMX3YdW3nC>6kd)cdT|fZH}!=i&&SVs zpR6aUoxR9C-`VsQ+UQdYGkVvZe=e{aRr zuU~jNB5|ImcJ(ALwX5m9)-AU0*nL`F8tgbbFF&gejzPIQF$ZiY40C-lk^1!}PQi_D z`w=_8BbU~__>@FEh}qeL{9n5Qp8}bDzirnk88Be5w^o-~2cb~mL9Cw*y3jFCE~0Wb z=1_Z5aBw8)8wX;DbAR%jDi4&~yHogEci?j%n=RjNi;zBj`c1w4rm=D|iHBN}8SG^K ziSY!zQycAuA@<308Dc$9ZtqIT)tm~Fq2^cB zC+(f5kf%0AfpTYiDl_{5n*l9Lmag0C?Mi*+Hyc5o7kB>rgY$Q3y zoX89rN$ifEq=vSH;*nt31Zdd(gRi@x<3O}eTcUThyNz;JJLBhj9n4;HW{(3gdt0G8VEaJg{B1}$ zWKDd4HHn9<$xdnmg~Oq4HIR%pFQ>+7l*>{Pu@Vt!E+RH#T*j}+%hMR(H^2w#mKlHB zE*lTU&QRn;UEV8Zsmkt8W#$W1W&KW_ZU}}3%Gc$+f+5cliborBn`JcU$3caskxDP9 znG1#uKpY12EMNI?pony;7qJo%8xiT`J!AH_>DSWBp$MbUDdQI|_5*u??G3OA`05_M zdqDZ^z)n-%hS+EP;{r!b90L-8EGjAr`Et$r6D?cX4HXevQ~Ra4h}emUgNSr}Y49uW ze*VR}kjSW0SF>_5s>>_1RM+UJtUVv0Rx82nK)_M=Wlt> z+Bj>@{H;rtuH0vi_3Jl=e!cPkPJZ?EmhgI3toWz@;w3A5&6Quebmjg1rjUEP+C9qYc**?HWD-Mjak)~uP;2odQeBHcu!gNWFRNDC2> zrY0i?5$R|uG(bd#h{$je87(4XM8s7@oK5F0_b}QFE)6i|j(qM7FhNAzOy>#_87m@A zBJ#3`3=)yPrW@YY)CtW+L@Z77#8yPwh)8D<>212;Ra4`~i-@O)OcIePA~N+3UNbT6 z4qm&1sb-jR50mdMMRpIhF1&IT&b7oVKN^e zB7;R_sE7KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000ytNklOVnr;myB=+RSp_cj&-gKpBTdw1z-U?2tt24Ze*DTYQy zA|j%vr`Ku7qk#18Z7f~88i>BWzKBSdfdlQ`=goU#`JTN8B4Xn&l~mVev_L8l1DpUn zfrG#yz!wMsuF^^drRCQ(5s~L^tXlnx|Kuq%-!?O|7$_pr)6hr^3=IB1K@6p5&z>TB z`rSu4sb2p1mtO;OZmMe`OPSyrTI*k>wqPt}sl&*-Hju0sJ2Innk$usQ!uUZ{WQ?Gp z{5fb|4D0|d)6|^9#Y@ozi$C~mlXX8kR}m2dgKqzAkZxjWX)StsdNO#3vzVZ$FfHL8;FJ;jM)7zQ}{7?48_-`;N?zIV1%Q zA@{N+nmdz$y+9tJVP`X4UB}KB5j`_Ab1^jP_4pwA`ubvGVm@l;u6>bE2<)N0{C`M4 zV~RRxJhx)Mqc#69l=(r4Hxzm5qQp!0zI_yXLXn3Oo>1%sWxi1AOH=kP@}oW^F<=<^ zS1lEV!YMDm+4R=ii`N+%_U_fadymHh5fO2481=&0bK%*L0WC`?jI$*Eh$E$!zofOu zQ#X;eiI@99#Zf5rMw_=6P4*5NGPh8l`5T(-?X(mggj@b_>nN1^b_6T-f-*mva`uoN z_Bx4y=2Yj80=CoAQo`DGn~odxGPZqW5D^jkVI!u;#mAMxWm@Xzka5nG)Z;U0%GuQp zzy~SSXKEwq{j+74|~BlVR9+|IsC zZul0G_q|H;wr42``;eBRLpr7I+0Fw>eQ3_!MoQo_I2M!y$!P0dBJH#pMbS%i$y($ArM|S5`cN4B4za&ZAU9$gn%W8;^{6RKA>HqD z;x|1_<;7*4sN+RT?mpCkQz^LG7x*_&!uyMtY!VUu2VowRrrYx6KX^bMH2;m1;6CI< zE`~BCk<0vO%Grr}$8)55eN01DQKyq^X{h3Ev6|}aXlimVQ(u~nw*Gdf*WSrXByQ_0 za{TA%EL-B;!D=n}2T&iINO4j>U@NyO^0Z^ePI%)XkoLz@Pd)Qy)t!7`ExDKbl6G>A z&PobI zN@9=D(%jJT-lhgpeLm&-!53*Q^;X8bZ?nd%9mM$!r?zl35J_m*+3SXey$9(ElYU#L z(N?Jptd9l+#z8dI`J;*R8%1;OUfl|ndefZ0kA%%nQFz(w0fbh{u6c0g8z=V6Ghpu` zGmbBJBQ>v2(R2(70<0Wnc|J2b! z&Gn=levbolh5fG^5xdcznv-r2JqBXNK(srYSLq`9Nr)Lk(^(a{yKK0yyf67N2Oju5 z4T*aeQgY@as0iq|@09qE5&R0pi8g>2*J7_0_w8#n`aup;A7B3~5Kd*LJ*g)qL$QzU z1IqomeR(+v+h0bjslTs-Rzu>RSJ^pJIQ@k+btj!6Mg@_saLz>u*LIRbnA*}z;x~;)b7L!%wNs|lhr8*UNIq@{^>cw--gx8ht2hMzJT9`l8-BiPFRq9R|z^S!_#Ca8WgN6{hW(0M& z@;iKX)~O%KJv0vTH|pk4tQ4D4A2LqALP_#KAedvv0^{}cyIR}>`RJpin;?yb@`fRhx&+me0ubzSdN z^M#`Z#x$V^t zBAg*+GNgSCMF(lg-H$rRm8RR%fa}bgzvx>L5ivLK=aQNhR{=kfe#V;0xF4YS5U4+g zsBxrk=uc(#wRT0SnaI@>iTl|CV%+~v5JagU%8ks;Ruo-5(g7qlVmrAztaaC%ae{Ca z#4UonZDfWmq$JG&IM0TSza1BmuHx?g^t{@;S)h4~=p7w;{qEZLmE_8(pZc zD!Vs8LscQ+-#Ad=H}vtu37w0O2xlkWCgyij$X==P*t!j%i zh*>d+hSMV+KQ|&=NZ;bXrFB!t-eO6GhXv^#i)d}XhN3owzkaXbv3(;cgv3?go!W9cTi4PI*PT#&P)Q znex%c|JVeH)D%r1-P`g$NVpr?(~e4xl-}=)v|5t3PvdUj;Ku`rbfemTAnJYdXl?JM z)>hh|xSbQrwN*A~&p1D%NL{cq>L3$fDP_0PH4Y9=FUq1f-&+N#)R#{o#nT+lw%^#C zN!$1Yl{xVp%kR-IDBEwX+e01|Bud3??*XJ9dixLC{G!-n#QtEWTdeSoiq@PMMaoH2 z;NRrsr_|Zn4VfrYrq24Xr8Se*y7?sgn4$@Fy?^6*6}j6ixf!vu!yu)}p`@;}QreM6 z2dVJvPpaqQKLp7PUQg@~MsVSQ5+A9e?5HD|=PZHE#Kv7JHa0dJF2fw0W|ZB!u7Rbf zgG{JB<$T|hkt(YF29mscP6r!kn=~YBolcdHEu43MWRP1PHl%ug{D&ZSD+`F<{0v2V zEOg4Z%_%}fuFoLyV(oxHeEs~di0E00p`o!u%!R0%u$voERuuUUgUGf#afR^FsMijl zBC})LU6Bz@{OW#aPCGmrOq7ZWPa9IbKKRq8$c8)R#BZNX_HU-NMvPW$rXu~YHMeu0 z1Y-Gm*@^=q(oICfc*Cz-PCyK0nWISeuz?8o4g;4T>_^hR*E=RBP zt|+DN3U3z?ZV-8Y7bn_XXDyGv|3{C+Em|#E!9SC_VIVDGPG~}0N%rdl4X@Fx&1BM~ z7d~uz^fma)>;=o=2Gq|d$*&I$r(HUhyhs;P*IJNw!SkVkDzmSWu=PdK)>}|^z?!;a zgVCHEMpLjOjVJA?J2r?)&;I0Xw<7b`el(tT=8nG|DF+w*DMYJQLu17aim&=`bs- z<+qjA<_0uX`BY_wQ*eGeNr&De{QGhEyk)|UmxNQF_eB$`BE`#snxe5l92+)nIUynz zB4Q*WVk{!&E58598`5a3e4a#46EvX@l)dxrR390{wV$1-%1!+JRcr-qQxi=M^=O-$ zJJ_*V(@65RNmTjRko@at6862vwH>b!{mWEBz8uMs_bfQHup4_{5f04P!}nc7!oRU5 zW2ZfLkB_F*-;wk%Q{Zdr?&dLe+{AYjh~8}=ee8#goLx|ubr&|1d&Qb;&w(9PQDE-) z59I1;>s|F6FO?hxca<3f^-_M$Ry)cp$9 z?#Zq$$e!4h7Nq)pN#i4ar&U{;P2xHSv}Z>`gbM9BH(DdyltQ4=#d(#kK(sj`(w&UM z1IfN<39P50;%1Y|{i(M_q^}Y^MR_q75o;5ZzT+dK&fkEuR2RCEaM%P*i0i|xNTdqw zS!dGLnGp5eaI!)+(s-xnKZeOTvXt_J{dAQq-1UBR+S0gFe8iEYAY*7;2;Ah`Z-4X_ zk%1!8Pel5NNOw_QOhlx=hzuA%VbaGHmHExEi_)|~#P91%^O;T_XCri_^tRs+V!k%w z^ymG#x_u!97xq(Im_T!F8Ldrsp|u%WTcAZlQ*|Mg>7m4K|10^s2mJYSex!h~H;H zQ>a_#O=6VJ24&v%T>9RGp!W^%f44V*OP=8Lm(HC1_9@P-7*FUjHv&GeVc%RmcFpNZ z&fZ~v+^a>oQ+aG8R}c51uH;D|knHTts^P<(UlWlhM8rY*6CE?3V30~TV;H4&n z|J#bBO@k@-8;SOeOXqe9*V(Di$AN3!y|`O84hW#MG_PUm)EQrh$S@_Wm1@;pM7oHw zD|S;(S}3YG>FalWQU_BCY@{l8B=J7IDe$q^?fk#j!iT%vgKDcd_oD4wlw0Qzk?v?h z-AFyypR`b8nyRM(AruwgteY}*##bUTQVBaH$qf}->AuufROzAQij9akiin$@p8mKc zpZ;@qO-*4loS>=tMKZ(9NIGaiRnRC1cZUeo<9`8hPXQGzXH*pW4kgaB4@HS~p#2y~ zB3YeSJZ9|pk3_^(iNQ)5^i~AuqA-YFJ5`JnQagowtcZ*mKmPfpadFoQAPxAA>b%jU zp6Wx&VJpgx4o4g2rUSayXZ^{yK5}NOSaCch5+-NxMLRH{M3Va5W=4pjGpbvRh z`=hxt9rz8%;Ce=K+582Ie(BPs>vJM9L0M2orBazGmg=BJdl3D07Bf~#+aM8fRzB=` z5qZ{4HSXj62M$M8Rp&J7{zScnmWJ1;%yuQ`(g0FVnW6SKMeW^}6mJVsy{t&}wnXi1 zj@qX$>Ht&H!^|m&A53k@c+f6U{+S?ytQ*OclipFSrdGeu;Uh)g#$>OE)d*a=^J@Zo1W4<7W0ijBK)v$!;^ zwy`OzwUtcZI&htq)=X;eW;Wl`CX2{RA~HurW{b#QMC31qhQtZd)v+O_+c z*(k-QS0_sRA&9iQs7t$?>7^uDKcxr^S61wQ6op<;CN)n)7Kq6Fb}?6p`R#tcKsoo4 zV%KMsgmzXI%T_6|CQ2pk_NWjK!n75DZc3#vR%Gt4%3Xgjr z#wZhaQS9TOSjbjsIr=J#W%xT*dMuDX12R$uHB+Fh6{YMH`wdnA+hT}vuC3v-Q3{E< ivM}uxFnClI{&xU$-^^jUq)c`I0000Pg4(O9xCkrA?v zC0oLwo1sy*>)iX{+%NZe&iU}Zzvq3Pcl-UG_rsfb#mbn4k)II&z+!4*V0(&fr`APJ zd+Ns++gnb7!QaH;E&xpD{xm9(_w+mfjMhGI_?0W(m_W>3Z;Zc?DI6~3e+T2`bITKe z;2E498ezB2qfMFLg_$Q{pO|B8x#@*$VaZsoGzo|>1G`y*aM3ikO$UdeA&o$PVFGnZ z3ictljSO=V;}qSB@bi@D;)JAugT=67--#B=m!ac^Nu9N7GOm7@uAQDa%S6dW1s8OYlt z#7YC2FyPWJDjE!8asijo4pQs;DJgc+pMjP#kh@0E;@#=7uza9XK zfe|CeGSGT{tR^ki@A$d+HjVcUro!JT$zFAAdJUj(eFjPP|5F>oqQ`{k>D85$DYI^v zqw4@N{21No+>SiD^)o{2kh1sr-I7?O;`K;ln*Gn6A9gKDE)1tL#JJ6VNi{xfWI8z% z924m_bt9l4T+23`0VxJ~56OxpB8jkc=^pXX6OW|@nFDH_1r_k>rVdqDnr!)Xcj_PJ zlI*C!_9Y4cJI$DmPg3;MSnue?;h>Xmx<|%^;sEPqnjQea4FfSb#6Z1nA3XpDg^`d~ z`U1Nh=VjVyFLa!p?O-}|QH_C#b$7zpVT>Nw3wKuG(ie0{wL~(|==al~a}}ORpmIw>iKfu==Em*|cbL#{CW{HZPvEi< zF;7!5QLs%y2-%wm?r7gRqaN>M)Rd;#4-}&g<64XrogL2f_uk&JTl zHxf-8KfBMnDJsOHOk_kSI8)C-*~1dx-D+Z-iEu?p!s9chuU{ZWIY*5~Z`+El%T(km zoA8Tfyr1##t)o+aA|rIUKXwJT(zT+rBCsO7Uel6nnRQ-rsDX%k<5PWksd^`U4UQ}dFV=b2;t-n`xvpO;?)n>gk& zFIr`PM2-%w8-LCIO1&Gz%o4{P-Isut;>$lzcOK0bbpB!IoU_aMzVM}p1C+LaYW>To49C1kxV`H7b<-EvOA{?kA!hBc|OY;r`>Jl8krC24_D zWeb9Wr;~4GR(2Mu%B0Gs%6PL?wRWovSK4aW>~Ijts^4cO=_F~4P9>hjt=Uc6&6P2h z@mOkW?A6Lu`j!Y3H5&xA-7eeCDR_4STVR1Hn-6JS`*k54dW1Og`&G7Q%#5O~XBML+ zF%!>g^{513v;?7jr0+KH>s@;A64y-E?8TTg!iZM!xX~jcwue5wPRnA;e!YIZ#S*j< z!V>0|8%H23I3K(OlD9#!*JF%CM>`m_T>E`i_5(uW00ZwK_#h zs>S=^!(GvCyy(WB+OF-4){O9`@JC15bS&}HtW|>71S9Ugxx=M#RbxJn_;g!0yk|FS z9g0Q`vky-xE#uD(N_YFTz~6|S>Rs4^~KQ9 zJzRc$e&<#>>E*WSw$FC_?6VKb&!h_+lW6=}Ssl@3dX_2gyHFir4Y!U&H>`<5 z-Jxm7n#os|DQkz$tcX0lo*526PIB4C4DR7QmfIkpD@i+-R z83AQjaVj)*Vx)egrQ-SDI%H7nOQEO6e((RS=a`-Tg!l6uWnO{(sgVd_tzV&Y5aElzjgj-@-4&%*% z_Fwl8DI#|6#+LC^$Z^VOWa(KXSpD|oU;6Bja-N6cJLiJLQy4=!1v}9q&=J*1mGxV3op_ z8F=&t`is}S!D`Rgy5pYP$&Jv9nRM@c>mOI2b&zGm!%Dv*u1QTo=<3j(NUye`!~ylJ zs)EZyTOaBNNRQQ?etUMZ#o5WZn2s-rGe^n_qQ10N-&C*D3J4)FE_0u~9CwwrTI+2R z9^yA{UA2YGu8nAw2(|Q$ywNcb)zLuZyUAqFxEdS2IXk&^-5LdTSZHwl6^9eh;Z97d z-Rv2uMs>%i}Njg?=(Rv+~!^%0#YD}IvjXIW}2;&>5N7m=8TPCS78Cs;uP@Vn#;1_nBFb8p}ZM3_rwW;=&{3 ze$Kj(p5w#T+=&Y}*)ZRl*aH_w4NsESG+Q)@PCIV{cj`#1=a6rac`r4b{WbzOw2m{z ztoxduHs{q6oO}t}p{)&JUX*o#0yW~?ZfnSQo|B330(I@VR&pqY(nHx>;F*iKBY8v| zY@QC1+^%V{ZgJk#+tQzg&&7}HIv&qXeVcu7vpuMgJThxcp^c3mK2F<9WrLqh%}pJQ zV~N`=_)SM$eM$Gu(fVN-eAr`HqJa1K`SD;aFAp?ge|&S2IFd6`l)aOk(dKu*I)hG}Jld zLw6-v(&@h`Rpbr&{F<)Du=QArKT2;6`)+57?%R?)h2$2B zTm;1YFyT@++Y;UP=zaY|p$K-}zZHr`i2m)||7o21PiFj8_s@3wZ(TQr=AYAw-skvx z{QuhRKSM$ literal 0 HcmV?d00001 diff --git a/angry-birds/sprites/sling1.png b/angry-birds/sprites/sling1.png new file mode 100644 index 0000000000000000000000000000000000000000..54c168abb845b3558d32736f43799e1377e25fcc GIT binary patch literal 8241 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 iEox|~9sbPne+K{