1
0
forked from sent/waves
waves/public/assets/g/risehigher/game.js
2025-04-09 17:11:14 -05:00

1249 lines
598 KiB
JavaScript

var _STRINGS={Ad:{Mobile:{Preroll:{ReadyIn:"The game is ready in ",Loading:"Your game is loading...",Close:"Close"},Header:{ReadyIn:"The game is ready in ",Loading:"Your game is loading...",Close:"Close"},End:{ReadyIn:"Advertisement ends in ",Loading:"Please wait ...",Close:"Close"}}},Splash:{Loading:"Loading ...",TapToStart:"TAP TO START"},Game:{Score:"Score:",Coins:"Coins:",Shop:"SHOP",Protect:"PROTECT THE BALLOON",Use:"Use",Best:"Best",High:"High",HighScore:"Hi-Score:",Woops:"Whoops!",BuyItems:"Buy Items",
ToUnlock:" points to unlock",StartTutorial:"Start the tutorial?",MoreGames:"More Games",Play:"Play",Settings:"Settings",Select:"Select",Selected:"Selected",ShareFacebook:"Share Facebook",GamePause:"Game Pause",GameOver:"Game Over",OK:"OK",Yes:"Yes",No:"No"},ItemsBalloon:{1:"Original Balloon",2:"Ombre Balloon",3:"Chevron Balloon",4:"Polca Dot Balloon",5:"Panda Balloon",6:"Donut Balloon",7:"Moustache Balloon"}},_LVL=[[{type:"EntityRectangle",x:60,y:-470,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",
x:60,y:-495,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-520,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-545,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-570,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-595,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-620,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-645,settings:{w:420,h:20,checkObstacle:1}},
{type:"EntityRectangle",x:60,y:-670,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-695,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-720,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-745,settings:{w:420,h:20,checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityCircle",x:115,y:-460,settings:{checkObstacle:1}},{type:"EntityCircle",x:170,y:-350,settings:{checkObstacle:1}},{type:"EntityCircle",x:280,y:-350,settings:{checkObstacle:1}},
{type:"EntityCircle",x:390,y:-350,settings:{checkObstacle:1}},{type:"EntityCircle",x:60,y:-350,settings:{checkObstacle:1}},{type:"EntityCircle",x:225,y:-460,settings:{checkObstacle:1}},{type:"EntityCircle",x:335,y:-460,settings:{checkObstacle:1}},{type:"EntityCircle",x:280,y:-570,settings:{checkObstacle:1}},{type:"EntityCircle",x:170,y:-570,settings:{checkObstacle:1}},{type:"EntityCircle",x:225,y:-680,settings:{checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityObstacleDynamic",x:276,
y:-460,settings:{checkObstacle:1}},{type:"EntityObstacleDynamic",x:52,y:-460,settings:{checkObstacle:1}},{type:"EntityObstacleDynamic",x:164,y:-648,settings:{checkObstacle:1}},{type:"EntityObstacleDynamic",x:276,y:-836,settings:{checkObstacle:1}},{type:"EntityObstacleDynamic",x:52,y:-836,settings:{checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityDiamond",x:45,y:-500,settings:{checkObstacle:1}},{type:"EntityDiamond",x:45,y:-580,settings:{checkObstacle:1}},{type:"EntityDiamond",x:45,
y:-660,settings:{checkObstacle:1}},{type:"EntityDiamond",x:205,y:-500,settings:{checkObstacle:1}},{type:"EntityDiamond",x:205,y:-580,settings:{checkObstacle:1}},{type:"EntityDiamond",x:205,y:-660,settings:{checkObstacle:1}},{type:"EntityDiamond",x:365,y:-740,settings:{checkObstacle:1}},{type:"EntityDiamond",x:365,y:-580,settings:{checkObstacle:1}},{type:"EntityDiamond",x:365,y:-500,settings:{checkObstacle:1}},{type:"EntityDiamond",x:45,y:-740,settings:{checkObstacle:1}},{type:"EntityDiamond",x:205,
y:-740,settings:{checkObstacle:1}},{type:"EntityDiamond",x:365,y:-660,settings:{checkObstacle:1}},{type:"EntityDiamond",x:45,y:-420,settings:{checkObstacle:1}},{type:"EntityDiamond",x:205,y:-420,settings:{checkObstacle:1}},{type:"EntityDiamond",x:365,y:-420,settings:{checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityPentagon",x:60,y:-450,settings:{checkObstacle:1}},{type:"EntityPentagon",x:165,y:-450,settings:{checkObstacle:1}},{type:"EntityPentagon",x:270,y:-450,settings:{checkObstacle:1}},
{type:"EntityPentagon",x:375,y:-450,settings:{checkObstacle:1}},{type:"EntityPentagon",x:165,y:-660,settings:{checkObstacle:1}},{type:"EntityPentagon",x:215,y:-556,settings:{checkObstacle:1}},{type:"EntityPentagon",x:320,y:-556,settings:{checkObstacle:1}},{type:"EntityPentagon",x:110,y:-556,settings:{checkObstacle:1}},{type:"EntityPentagon",x:268,y:-660,settings:{checkObstacle:1}},{type:"EntityPentagon",x:215,y:-760,settings:{checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityBigPentagon",
x:280,y:-510,settings:{checkObstacle:1}},{type:"EntityBigPentagon",x:60,y:-510,settings:{checkObstacle:1}},{type:"EntityBigPentagon",x:176,y:-724,settings:{checkObstacle:1}},{type:"EntityBigPentagon",x:280,y:-938,settings:{checkObstacle:1}},{type:"EntityBigPentagon",x:60,y:-938,settings:{checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityBigOval",x:60,y:-500,settings:{checkObstacle:1}},{type:"EntityBigOval",x:210,y:-500,settings:{checkObstacle:1}},{type:"EntityBigOval",x:360,y:-500,
settings:{checkObstacle:1}},{type:"EntityBigOval",x:130,y:-700,settings:{checkObstacle:1}},{type:"EntityBigOval",x:290,y:-700,settings:{checkObstacle:1}},{type:"EntityBigOval",x:210,y:-900,settings:{checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityCircle",x:36,y:-784,settings:{r:180,checkObstacle:0}},{type:"EntityCircle",x:412,y:-784,settings:{r:180,checkObstacle:0}},{type:"EntityCircle",x:-44,y:-524,settings:{r:180,checkObstacle:0}},{type:"EntityCircle",x:364,y:-516,settings:{r:180,
checkObstacle:0}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityRectangle",x:135,y:-748,settings:{w:25,h:420,nColor:"#253D54",isStatic:1,dynamicType:2,isObstacle:0,checkObstacle:0}},{type:"EntityRectangle",x:360,y:-748,settings:{w:25,h:420,nColor:"#253D54",isStatic:1,dynamicType:2,isObstacle:0,checkObstacle:0}},{type:"EntityRectangle",x:165,y:-348,settings:{w:190,h:20}},{type:"EntityCircle",x:165,y:-390,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:205,y:-390,settings:{checkObstacle:1,
r:15}},{type:"EntityCircle",x:245,y:-390,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:285,y:-390,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:325,y:-390,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:165,y:-435,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:205,y:-435,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:245,y:-435,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:285,y:-435,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:325,
y:-435,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:165,y:-525,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:205,y:-525,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:245,y:-525,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:285,y:-525,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:325,y:-525,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:165,y:-570,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:205,y:-570,settings:{checkObstacle:1,
r:15}},{type:"EntityCircle",x:245,y:-570,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:285,y:-570,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:325,y:-570,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:165,y:-660,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:205,y:-660,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:245,y:-660,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:285,y:-660,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:325,
y:-660,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:165,y:-705,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:205,y:-705,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:245,y:-705,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:285,y:-705,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:325,y:-705,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:165,y:-480,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:205,y:-480,settings:{checkObstacle:1,
r:15}},{type:"EntityCircle",x:245,y:-480,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:285,y:-480,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:325,y:-480,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:165,y:-615,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:205,y:-615,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:245,y:-615,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:285,y:-615,settings:{checkObstacle:1,r:15}},{type:"EntityCircle",x:325,
y:-615,settings:{checkObstacle:1,r:15}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityRectangle",x:-15,y:-800,settings:{w:50,h:480,nColor:"#253D54",isStatic:1,dynamicType:2}},{type:"EntityRectangle",x:510,y:-800,settings:{w:50,h:480,nColor:"#253D54",isStatic:1,dynamicType:2}},{type:"EntityRectangle",x:-15,y:-800,settings:{w:190,h:50,nColor:"#253D54",isStatic:1,dynamicType:2}},{type:"EntityRectangle",x:370,y:-800,settings:{w:190,h:50,nColor:"#253D54",isStatic:1,dynamicType:2}},{type:"EntityRectangle",
x:165,y:-348,settings:{w:220,h:20,checkObstacle:1}},{type:"EntitySmallStars",x:60,y:-720,settings:{checkObstacle:1}},{type:"EntitySmallStars",x:170,y:-720,settings:{checkObstacle:1}},{type:"EntitySmallStars",x:280,y:-720,settings:{checkObstacle:1}},{type:"EntitySmallStars",x:390,y:-720,settings:{checkObstacle:1}},{type:"EntitySmallStars",x:116,y:-604,settings:{checkObstacle:1}},{type:"EntitySmallStars",x:230,y:-604,settings:{checkObstacle:1}},{type:"EntitySmallStars",x:340,y:-604,settings:{checkObstacle:1}},
{type:"EntitySmallStars",x:60,y:-500,settings:{checkObstacle:1}},{type:"EntitySmallStars",x:170,y:-500,settings:{checkObstacle:1}},{type:"EntitySmallStars",x:280,y:-500,settings:{checkObstacle:1}},{type:"EntitySmallStars",x:390,y:-500,settings:{checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityRectangle",x:-15,y:-800,settings:{w:50,h:480,nColor:"#253D54",isStatic:1,dynamicType:2}},{type:"EntityRectangle",x:515,y:-800,settings:{w:50,h:480,nColor:"#253D54",isStatic:1,dynamicType:2}},
{type:"EntityRectangle",x:-15,y:-800,settings:{w:190,h:50,nColor:"#253D54",isStatic:1,dynamicType:2}},{type:"EntityRectangle",x:375,y:-800,settings:{w:190,h:50,nColor:"#253D54",isStatic:1,dynamicType:2}},{type:"EntityRectangle",x:-72,y:-632,settings:{w:190,h:50,nColor:"#253D54",isStatic:1,dynamicType:2}},{type:"EntityRectangle",x:436,y:-552,settings:{w:190,h:50,nColor:"#253D54",isStatic:1,dynamicType:2}},{type:"EntityRectangle",x:-16,y:-336,settings:{w:190,h:50,nColor:"#253D54",isStatic:1,dynamicType:2}},
{type:"EntityRectangle",x:375,y:-336,settings:{w:190,h:50,nColor:"#253D54",isStatic:1,dynamicType:2}},{type:"EntityPlus",x:416,y:-660,settings:{checkObstacle:1}},{type:"EntityPlus",x:88,y:-716,settings:{checkObstacle:1}},{type:"EntityPlus",x:208,y:-484,settings:{checkObstacle:1}},{type:"EntityPlus",x:168,y:-740,settings:{checkObstacle:1}},{type:"EntityPlus",x:224,y:-676,settings:{checkObstacle:1}},{type:"EntityPlus",x:324,y:-740,settings:{checkObstacle:1}},{type:"EntityPlus",x:76,y:-564,settings:{checkObstacle:1}},
{type:"EntityPlus",x:164,y:-596,settings:{checkObstacle:1}},{type:"EntityPlus",x:292,y:-544,settings:{checkObstacle:1}},{type:"EntityPlus",x:112,y:-460,settings:{checkObstacle:1}},{type:"EntityPlus",x:376,y:-532,settings:{checkObstacle:1}},{type:"EntityPlus",x:408,y:-736,settings:{checkObstacle:1}},{type:"EntityPlus",x:244,y:-788,settings:{checkObstacle:1}},{type:"EntityPlus",x:324,y:-632,settings:{checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityRectangle",x:0,y:-800,settings:{w:60,
h:450,nColor:"#253D54",dynamicType:2,isStatic:1}},{type:"EntityRectangle",x:480,y:-800,settings:{w:60,h:450,nColor:"#253D54",dynamicType:2,isStatic:1}},{type:"EntityRectangle",x:220,y:-800,settings:{checkObstacle:1}},{type:"EntityRectangle",x:100,y:-800,settings:{checkObstacle:1}},{type:"EntityRectangle",x:340,y:-800,settings:{checkObstacle:1}},{type:"EntityRectangle",x:100,y:-690,settings:{checkObstacle:1}},{type:"EntityRectangle",x:220,y:-690,settings:{checkObstacle:1}},{type:"EntityRectangle",
x:340,y:-690,settings:{checkObstacle:1}},{type:"EntityRectangle",x:100,y:-580,settings:{checkObstacle:1}},{type:"EntityRectangle",x:220,y:-580,settings:{checkObstacle:1}},{type:"EntityRectangle",x:340,y:-580,settings:{checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityRectangle",x:0,y:-800,settings:{w:60,h:450,nColor:"#253D54",isStatic:1,dynamicType:2,isObstacle:0}},{type:"EntityRectangle",x:480,y:-800,settings:{w:60,h:450,nColor:"#253D54",isStatic:1,dynamicType:2,isObstacle:0}},{type:"EntityCircle",
x:370,y:-656,settings:{checkObstacle:1}},{type:"EntityCircle",x:215,y:-808,settings:{checkObstacle:1}},{type:"EntityCircle",x:70,y:-656,settings:{checkObstacle:1}},{type:"EntityCircle",x:215,y:-512,settings:{checkObstacle:1}},{type:"EntitySmallStars",x:348,y:-512,settings:{checkObstacle:1}},{type:"EntitySmallStars",x:220,y:-660,settings:{checkObstacle:1}},{type:"EntitySmallStars",x:360,y:-800,settings:{checkObstacle:1}},{type:"EntitySmallStars",x:92,y:-796,settings:{checkObstacle:1}},{type:"EntitySmallStars",
x:96,y:-508,settings:{checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityRectangle",x:0,y:-800,settings:{w:60,h:450,nColor:"#253D54",dynamicType:2,isStatic:1}},{type:"EntityRectangle",x:480,y:-800,settings:{w:60,h:450,nColor:"#253D54",dynamicType:2,isStatic:1}},{type:"EntityBigStars",x:260,y:-468,settings:{checkObstacle:1}},{type:"EntityBigStars",x:240,y:-892,settings:{checkObstacle:1}},{type:"EntityBigStars",x:72,y:-684,settings:{checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],
[{type:"EntityRectangle",x:0,y:-800,settings:{w:60,h:450,nColor:"#253D54",dynamicType:2,isStatic:1}},{type:"EntityRectangle",x:480,y:-800,settings:{w:60,h:450,nColor:"#253D54",dynamicType:2,isStatic:1}},{type:"EntityCircle",x:244,y:-728,settings:{r:10}},{type:"EntityCircle",x:124,y:-796,settings:{r:10}},{type:"EntityCircle",x:88,y:-732,settings:{r:10}},{type:"EntityCircle",x:120,y:-652,settings:{r:10}},{type:"EntityCircle",x:252,y:-796,settings:{r:10}},{type:"EntityCircle",x:244,y:-536,settings:{r:10}},
{type:"EntityCircle",x:340,y:-792,settings:{r:10}},{type:"EntityCircle",x:420,y:-788,settings:{r:10}},{type:"EntityCircle",x:424,y:-716,settings:{r:10}},{type:"EntityCircle",x:380,y:-664,settings:{r:10}},{type:"EntityCircle",x:176,y:-728,settings:{r:10}},{type:"EntityCircle",x:432,y:-612,settings:{r:10}},{type:"EntityCircle",x:292,y:-640,settings:{r:10}},{type:"EntityCircle",x:108,y:-576,settings:{r:10}},{type:"EntityCircle",x:164,y:-608,settings:{r:10}},{type:"EntityCircle",x:236,y:-592,settings:{r:10}},
{type:"EntityCircle",x:328,y:-564,settings:{r:10}},{type:"EntityCircle",x:412,y:-548,settings:{r:10}},{type:"EntityCircle",x:428,y:-492,settings:{r:10}},{type:"EntityCircle",x:108,y:-504,settings:{r:10}},{type:"EntityCircle",x:176,y:-536,settings:{r:10}},{type:"EntityCircle",x:100,y:-400,settings:{r:10}},{type:"EntityCircle",x:332,y:-512,settings:{r:10}},{type:"EntityCircle",x:132,y:-444,settings:{r:10}},{type:"EntityCircle",x:292,y:-472,settings:{r:10}},{type:"EntityCircle",x:372,y:-456,settings:{r:10}},
{type:"EntityCircle",x:424,y:-436,settings:{r:10}},{type:"EntityCircle",x:396,y:-404,settings:{r:10}},{type:"EntityCircle",x:200,y:-408,settings:{r:10}},{type:"EntityCircle",x:344,y:-420,settings:{r:10}},{type:"EntityCircle",x:400,y:-404,settings:{r:10}},{type:"EntityCircle",x:360,y:-720,settings:{r:10}},{type:"EntityCircle",x:188,y:-668,settings:{r:10}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityRectangle",x:60,y:-260,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-285,
settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-310,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-335,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-360,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityCircle",x:440,y:-400,settings:{r:15,checkObstacle:1}},{type:"EntityCircle",x:76,y:-400,settings:{r:15,checkObstacle:1}},{type:"EntityCircle",x:124,y:-400,settings:{r:15,checkObstacle:1}},{type:"EntityCircle",x:172,y:-400,settings:{r:15,
checkObstacle:1}},{type:"EntityCircle",x:220,y:-400,settings:{r:15,checkObstacle:1}},{type:"EntityCircle",x:264,y:-400,settings:{r:15,checkObstacle:1}},{type:"EntityCircle",x:308,y:-400,settings:{r:15,checkObstacle:1}},{type:"EntityCircle",x:352,y:-400,settings:{r:15,checkObstacle:1}},{type:"EntityCircle",x:396,y:-400,settings:{r:15,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-430,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-455,settings:{w:420,h:20,checkObstacle:1}},
{type:"EntityRectangle",x:60,y:-480,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-505,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-530,settings:{w:420,h:20,checkObstacle:1}},{type:"EntityCircle",x:368,y:-620,settings:{r:40,checkObstacle:1}},{type:"EntityCircle",x:84,y:-620,settings:{r:40,checkObstacle:1}},{type:"EntityCircle",x:232,y:-620,settings:{r:40,checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityRectangle",x:150,y:-296,settings:{w:20,
h:20,checkObstacle:1}},{type:"EntityRectangle",x:175,y:-296,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityRectangle",x:200,y:-296,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityRectangle",x:225,y:-296,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityRectangle",x:250,y:-296,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityRectangle",x:275,y:-296,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityRectangle",x:300,y:-296,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityRectangle",x:325,
y:-296,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityRectangle",x:375,y:-296,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityCircle",x:196,y:-460,settings:{r:80,checkObstacle:1}},{type:"EntityRectangle",x:150,y:-484,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityRectangle",x:175,y:-484,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityRectangle",x:200,y:-484,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityRectangle",x:225,y:-484,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityRectangle",
x:250,y:-484,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityRectangle",x:275,y:-484,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityRectangle",x:300,y:-484,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityRectangle",x:325,y:-484,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityRectangle",x:350,y:-484,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityCircle",x:116,y:-656,settings:{r:80,checkObstacle:1}},{type:"EntityCircle",x:292,y:-652,settings:{r:80,checkObstacle:1}},{type:"EntityRectangle",
x:375,y:-484,settings:{w:20,h:20,checkObstacle:1}},{type:"EntityRectangle",x:350,y:-296,settings:{w:20,h:20,checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityRectangle",x:60,y:-380,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:142,y:-380,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:224,y:-380,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:306,y:-380,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:388,y:-380,settings:{w:80,
h:5,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-410,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:142,y:-410,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:224,y:-410,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:306,y:-410,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:388,y:-410,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-440,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:142,y:-440,
settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:224,y:-440,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:306,y:-440,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:388,y:-440,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-470,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:142,y:-470,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:224,y:-470,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",
x:306,y:-470,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:388,y:-470,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-500,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:142,y:-500,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:224,y:-500,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:306,y:-500,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:388,y:-500,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",
x:60,y:-530,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:142,y:-530,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:224,y:-530,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:306,y:-530,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:388,y:-530,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-560,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:142,y:-560,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",
x:224,y:-560,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:306,y:-560,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:388,y:-560,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-590,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:142,y:-590,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:224,y:-590,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:306,y:-590,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",
x:388,y:-590,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-620,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:142,y:-620,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:224,y:-620,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:306,y:-620,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:388,y:-620,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:60,y:-650,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",
x:142,y:-650,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:224,y:-650,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:306,y:-650,settings:{w:80,h:5,checkObstacle:1}},{type:"EntityRectangle",x:388,y:-650,settings:{w:80,h:5,checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityRectangle",x:188,y:-268,settings:{w:40,h:40,checkObstacle:1}},{type:"EntityRectangle",x:247,y:-267,settings:{w:40,h:40,checkObstacle:1}},{type:"EntityRectangle",x:307,y:-267,settings:{w:40,
h:40,checkObstacle:1}},{type:"EntityRectangle",x:367,y:-267,settings:{w:40,h:40,checkObstacle:1}},{type:"EntityRectangle",x:187,y:-378,settings:{w:40,h:40,checkObstacle:1}},{type:"EntityRectangle",x:247,y:-378,settings:{w:40,h:40,checkObstacle:1}},{type:"EntityRectangle",x:307,y:-378,settings:{w:40,h:40,checkObstacle:1}},{type:"EntityRectangle",x:367,y:-378,settings:{w:40,h:40,checkObstacle:1}},{type:"EntityRectangle",x:188,y:-485,settings:{w:40,h:40,checkObstacle:1}},{type:"EntityRectangle",x:190,
y:-592,settings:{w:40,h:40,checkObstacle:1}},{type:"EntityRectangle",x:250,y:-485,settings:{w:40,h:40,checkObstacle:1}},{type:"EntityRectangle",x:310,y:-485,settings:{w:40,h:40,checkObstacle:1}},{type:"EntityRectangle",x:370,y:-485,settings:{w:40,h:40,checkObstacle:1}},{type:"EntityRectangle",x:250,y:-592,settings:{w:40,h:40,checkObstacle:1}},{type:"EntityRectangle",x:310,y:-592,settings:{w:40,h:40,checkObstacle:1}},{type:"EntityRectangle",x:370,y:-592,settings:{w:40,h:40,checkObstacle:1}},{type:"EntityPlus",
x:210,y:-328,settings:{checkObstacle:1}},{type:"EntityPlus",x:390,y:-328,settings:{checkObstacle:1}},{type:"EntityPlus",x:270,y:-328,settings:{checkObstacle:1}},{type:"EntityPlus",x:330,y:-328,settings:{checkObstacle:1}},{type:"EntityPlus",x:150,y:-544,settings:{checkObstacle:1}},{type:"EntityPlus",x:150,y:-652,settings:{checkObstacle:1}},{type:"EntityPlus",x:150,y:-436,settings:{checkObstacle:1}},{type:"EntityPlus",x:210,y:-436,settings:{checkObstacle:1}},{type:"EntityPlus",x:270,y:-436,settings:{checkObstacle:1}},
{type:"EntityPlus",x:330,y:-436,settings:{checkObstacle:1}},{type:"EntityPlus",x:390,y:-436,settings:{checkObstacle:1}},{type:"EntityPlus",x:210,y:-544,settings:{checkObstacle:1}},{type:"EntityPlus",x:270,y:-544,settings:{checkObstacle:1}},{type:"EntityPlus",x:330,y:-544,settings:{checkObstacle:1}},{type:"EntityPlus",x:390,y:-544,settings:{checkObstacle:1}},{type:"EntityPlus",x:210,y:-652,settings:{checkObstacle:1}},{type:"EntityPlus",x:270,y:-652,settings:{checkObstacle:1}},{type:"EntityPlus",x:330,
y:-652,settings:{checkObstacle:1}},{type:"EntityPlus",x:390,y:-652,settings:{checkObstacle:1}},{type:"EntityPlus",x:150,y:-328,settings:{checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntitySmallPentagon",x:-264,y:-520,settings:{checkObstacle:1,isFall:1}},{type:"EntitySmallPentagon",x:-460,y:-756,settings:{checkObstacle:1,isFall:1}},{type:"EntitySmallPentagon",x:-172,y:-672,settings:{checkObstacle:1,isFall:1}},{type:"EntitySmallPentagon",x:548,y:-868,settings:{checkObstacle:1,isFall:1,
fallLeft:1}},{type:"EntitySmallPentagon",x:608,y:-672,settings:{checkObstacle:1,isFall:1,fallLeft:1}},{type:"EntitySmallPentagon",x:808,y:-972,settings:{checkObstacle:1,isFall:1,fallLeft:1}},{type:"EntitySmallPentagon",x:-288,y:-780,settings:{checkObstacle:1,isFall:1}},{type:"EntitySmallPentagon",x:-416,y:-584,settings:{checkObstacle:1,isFall:1}},{type:"EntitySmallPentagon",x:820,y:-676,settings:{checkObstacle:1,isFall:1,fallLeft:1}},{type:"EntitySmallPentagon",x:732,y:-808,settings:{checkObstacle:1,
isFall:1,fallLeft:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityCircle",x:188,y:-852,settings:{r:80,checkObstacle:1}},{type:"EntityCircle",x:140,y:-455,settings:{r:60,checkObstacle:1}},{type:"EntityCircle",x:285,y:-455,settings:{r:60,checkObstacle:1}},{type:"EntityCircle",x:344,y:-572,settings:{r:20,checkObstacle:1}},{type:"EntityCircle",x:152,y:-572,settings:{r:20,checkObstacle:1}},{type:"EntityCircle",x:196,y:-532,settings:{r:20,checkObstacle:1}},{type:"EntityCircle",x:248,y:-500,settings:{r:20,
checkObstacle:1}},{type:"EntityCircle",x:300,y:-532,settings:{r:20,checkObstacle:1}},{type:"EntityCircle",x:256,y:-600,settings:{r:10,checkObstacle:1}},{type:"EntityCircle",x:228,y:-600,settings:{r:10,checkObstacle:1}},{type:"EntityCircle",x:256,y:-572,settings:{r:10,checkObstacle:1}},{type:"EntityCircle",x:284,y:-600,settings:{r:10,checkObstacle:1}},{type:"EntityCircle",x:256,y:-628,settings:{r:10,checkObstacle:1}},{type:"EntityCircle",x:256,y:-656,settings:{r:10,checkObstacle:1}},{type:"EntityCircle",
x:256,y:-684,settings:{r:10,checkObstacle:1}},{type:"EntityCircle",x:190,y:-320,settings:{r:80,checkObstacle:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityPlus",x:-328,y:-648,settings:{isFall:1}},{type:"EntityPlus",x:-116,y:-820,settings:{isFall:1}},{type:"EntityPlus",x:-336,y:-764,settings:{isFall:1}},{type:"EntityPlus",x:-272,y:-892,settings:{isFall:1}},{type:"EntityPlus",x:-424,y:-812,settings:{isFall:1}},{type:"EntityPlus",x:-552,y:-712,settings:{isFall:1}},{type:"EntityPlus",x:828,y:-892,
settings:{isFall:1,fallLeft:1}},{type:"EntityPlus",x:952,y:-792,settings:{isFall:1,fallLeft:1}},{type:"EntityPlus",x:1076,y:-684,settings:{isFall:1,fallLeft:1}},{type:"EntityPlus",x:576,y:-820,settings:{isFall:1,fallLeft:1}},{type:"EntityPlus",x:812,y:-764,settings:{isFall:1,fallLeft:1}},{type:"EntityPlus",x:824,y:-648,settings:{isFall:1,fallLeft:1}},{type:"EntityPlus",x:-212,y:-736,settings:{isFall:1}},{type:"EntityPlus",x:684,y:-724,settings:{isFall:1,fallLeft:1}},{type:"EntitySensor",x:0,y:-290}],
[{type:"EntityBigOval",x:-228,y:-556,settings:{isFall:1}},{type:"EntityBigOval",x:-404,y:-696,settings:{isFall:1}},{type:"EntityBigOval",x:840,y:-740,settings:{isFall:1,fallLeft:1}},{type:"EntityBigOval",x:652,y:-968,settings:{isFall:1,fallLeft:1}},{type:"EntityBigOval",x:-148,y:-784,settings:{isFall:1}},{type:"EntityBigOval",x:-260,y:-972,settings:{isFall:1}},{type:"EntityBigOval",x:548,y:-784,settings:{isFall:1,fallLeft:1}},{type:"EntityBigOval",x:664,y:-588,settings:{isFall:1,fallLeft:1}},{type:"EntitySensor",
x:0,y:-290}],[{type:"EntitySmallTriangle",x:-164,y:-692,settings:{isFall:1}},{type:"EntitySmallTriangle",x:728,y:-656,settings:{isFall:1,fallLeft:1}},{type:"EntitySmallTriangle",x:-352,y:-752,settings:{isFall:1}},{type:"EntitySmallTriangle",x:-564,y:-624,settings:{isFall:1}},{type:"EntitySmallTriangle",x:-364,y:-584,settings:{isFall:1}},{type:"EntitySmallTriangle",x:-196,y:-484,settings:{isFall:1}},{type:"EntitySmallTriangle",x:556,y:-588,settings:{isFall:1,fallLeft:1}},{type:"EntitySmallTriangle",
x:648,y:-776,settings:{isFall:1,fallLeft:1}},{type:"EntitySmallTriangle",x:884,y:-724,settings:{isFall:1,fallLeft:1}},{type:"EntitySmallTriangle",x:888,y:-508,settings:{isFall:1,fallLeft:1}},{type:"EntitySensor",x:0,y:-290}],[{type:"EntityCircle",x:-264,y:-780,settings:{r:100,isFall:1}},{type:"EntityCircle",x:-360,y:-500,settings:{r:50,isFall:1}},{type:"EntityCircle",x:-392,y:-652,settings:{r:30,isFall:1}},{type:"EntityCircle",x:-368,y:-848,settings:{r:100,isFall:1}},{type:"EntityCircle",x:688,y:-592,
settings:{r:100,isFall:1,fallLeft:1}},{type:"EntityCircle",x:632,y:-440,settings:{r:50,isFall:1,fallLeft:1}},{type:"EntityCircle",x:592,y:-516,settings:{r:50,isFall:1,fallLeft:1}},{type:"EntityCircle",x:588,y:-772,settings:{r:30,isFall:1,fallLeft:1}},{type:"EntityCircle",x:-304,y:-608,settings:{r:100,isFall:1}},{type:"EntityCircle",x:560,y:-692,settings:{r:100,isFall:1,fallLeft:1}},{type:"EntityCircle",x:716,y:-768,settings:{r:50,isFall:1,fallLeft:1}},{type:"EntitySensor",x:0,y:-290}]];var _SETTINGS={API:{Enabled:!1,Log:{Events:{InitializeGame:!1,EndGame:!1,Level:{Begin:!1,End:!1,Win:!1,Lose:!1,Draw:!1}}}},Ad:{Mobile:{Preroll:{Enabled:!1,Duration:5,Width:300,Height:250,Rotation:{Enabled:!1,Weight:{MobileAdInGamePreroll:40,MobileAdInGamePreroll2:40,MobileAdInGamePreroll3:20}}},Header:{Enabled:!1,Duration:5,Width:320,Height:50,Rotation:{Enabled:!1,Weight:{MobileAdInGameHeader:40,MobileAdInGameHeader2:40,MobileAdInGameHeader3:20}}},Footer:{Enabled:!1,Duration:5,Width:320,Height:50,
Rotation:{Enabled:!1,Weight:{MobileAdInGameFooter:40,MobileAdInGameFooter2:40,MobileAdInGameFooter3:20}}},End:{Enabled:!1,Duration:1,Width:300,Height:250,Rotation:{Enabled:!1,Weight:{MobileAdInGameEnd:40,MobileAdInGameEnd2:40,MobileAdInGameEnd3:20}}}}},Language:{Default:"en"},DeveloperBranding:{Splash:{Enabled:!1},Logo:{Enabled:!1,Link:"http://google.com",LinkEnabled:!1,NewWindow:!0,Width:166,Height:61}},Branding:{Splash:{Enabled:!1},Logo:{Enabled:!1,Link:"http://google.com",LinkEnabled:!1,NewWindow:!1,
Width:166,Height:61}},MoreGames:{Enabled:!0,Link:"https://selenite.cc",NewWindow:!0}};var MobileAdInGamePreroll={ad_duration:_SETTINGS.Ad.Mobile.Preroll.Duration,ad_width:_SETTINGS.Ad.Mobile.Preroll.Width,ad_height:_SETTINGS.Ad.Mobile.Preroll.Height,ready_in:_STRINGS.Ad.Mobile.Preroll.ReadyIn,loading:_STRINGS.Ad.Mobile.Preroll.Loading,close:_STRINGS.Ad.Mobile.Preroll.Close+"          ",Initialize:function(){if(_SETTINGS.Ad.Mobile.Preroll.Rotation.Enabled){var b=_SETTINGS.Ad.Mobile.Preroll.Rotation.Weight,c=b.MobileAdInGamePreroll,d=
c+b.MobileAdInGamePreroll2,b=d+b.MobileAdInGamePreroll3,e=Math.floor(100*Math.random());console.log("seed: ",e);e<=c?this.selectedOverlayName="MobileAdInGamePreroll":e<=d?this.selectedOverlayName="MobileAdInGamePreroll2":e<=b&&(this.selectedOverlayName="MobileAdInGamePreroll3");console.log("Ad rotating preroll enabled")}else this.selectedOverlayName="MobileAdInGamePreroll",console.log("Ad rotating preroll disabled");console.log("selected:",this.selectedOverlayName);this.overlay=$("#"+this.selectedOverlayName);
this.box=$("#"+this.selectedOverlayName+"-Box");this.game=$("#game");this.boxContents={footer:$("#"+this.selectedOverlayName+"-Box-Footer"),header:$("#"+this.selectedOverlayName+"-Box-Header"),close:$("#"+this.selectedOverlayName+"-Box-Close"),body:$("#"+this.selectedOverlayName+"-Box-Body")};this.box.width(this.ad_width);this.box.height(this.ad_height);this.box.css("left",(this.overlay.width()-this.box.width())/2);this.box.css("top",(this.overlay.height()-this.box.height()-this.boxContents.header.height()-
this.boxContents.footer.height())/2);this.overlay.show(this.Timer(this.ad_duration))},Timer:function(b){var c=b,d=setInterval(function(){MobileAdInGamePreroll.boxContents.header.text(MobileAdInGamePreroll.ready_in+c+"...");MobileAdInGamePreroll.boxContents.footer.text(MobileAdInGamePreroll.loading);c--;0>c&&(clearInterval(d),MobileAdInGamePreroll.boxContents.close.css("left",MobileAdInGamePreroll.boxContents.body.width()-23),MobileAdInGamePreroll.boxContents.close.show(),MobileAdInGamePreroll.boxContents.header.html(MobileAdInGamePreroll.close),
MobileAdInGamePreroll.boxContents.footer.text(""))},1E3)},Close:function(){this.boxContents.close.hide();this.overlay.hide()}};var MobileAdInGameHeader={ad_duration:_SETTINGS.Ad.Mobile.Header.Duration,ad_width:_SETTINGS.Ad.Mobile.Header.Width,ad_height:_SETTINGS.Ad.Mobile.Header.Height,Initialize:function(){if(_SETTINGS.Ad.Mobile.Header.Rotation.Enabled){var b=_SETTINGS.Ad.Mobile.Header.Rotation.Weight,c=b.MobileAdInGameHeader,d=c+b.MobileAdInGameHeader2,b=d+b.MobileAdInGameHeader3,e=Math.floor(100*Math.random());console.log("seed: ",e);e<=c?this.selectedOverlayName="MobileAdInGameHeader":e<=d?this.selectedOverlayName="MobileAdInGameHeader2":
e<=b&&(this.selectedOverlayName="MobileAdInGameHeader3");console.log("Ad rotating header enabled")}else this.selectedOverlayName="MobileAdInGameHeader",console.log("Ad rotating header disabled");this.div=$("#"+this.selectedOverlayName);this.game=$("#game");this.div.width(this.ad_width);this.div.height(this.ad_height);this.div.css("left",this.game.position().left+(this.game.width()-this.div.width())/2);this.div.css("top",0);this.div.show(this.Timer(this.ad_duration))},Timer:function(b){var c=setInterval(function(){b--;
0>b&&(MobileAdInGameHeader.div.hide(),clearInterval(c))},1E3)}};var MobileAdInGameFooter={ad_duration:_SETTINGS.Ad.Mobile.Footer.Duration,ad_width:_SETTINGS.Ad.Mobile.Footer.Width,ad_height:_SETTINGS.Ad.Mobile.Footer.Height,Initialize:function(){if(_SETTINGS.Ad.Mobile.Footer.Rotation.Enabled){var b=_SETTINGS.Ad.Mobile.Footer.Rotation.Weight,c=b.MobileAdInGameFooter,d=c+b.MobileAdInGameFooter2,b=d+b.MobileAdInGameFooter3,e=Math.floor(100*Math.random());console.log("seed: ",e);e<=c?this.selectedOverlayName="MobileAdInGameFooter":e<=d?this.selectedOverlayName="MobileAdInGameFooter2":
e<=b&&(this.selectedOverlayName="MobileAdInGameFooter3");console.log("Ad rotating footer enabled")}else this.selectedOverlayName="MobileAdInGameFooter",console.log("Ad rotating footer disabled");this.div=$("#"+this.selectedOverlayName);this.game=$("#game");this.div.width(this.ad_width);this.div.height(this.ad_height);this.div.css("left",this.game.position().left+(this.game.width()-this.div.width())/2);this.div.css("top",this.game.height()-this.div.height()-5);this.div.show(this.Timer(this.ad_duration))},
Timer:function(b){var c=setInterval(function(){b--;0>b&&(MobileAdInGameFooter.div.hide(),clearInterval(c))},1E3)}};var MobileAdInGameEnd={ad_duration:_SETTINGS.Ad.Mobile.End.Duration,ad_width:_SETTINGS.Ad.Mobile.End.Width,ad_height:_SETTINGS.Ad.Mobile.End.Height,ready_in:_STRINGS.Ad.Mobile.End.ReadyIn,loading:_STRINGS.Ad.Mobile.End.Loading,close:_STRINGS.Ad.Mobile.End.Close+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",Initialize:function(){if(_SETTINGS.Ad.Mobile.End.Rotation.Enabled){var b=_SETTINGS.Ad.Mobile.End.Rotation.Weight,c=b.MobileAdInGameEnd,d=c+b.MobileAdInGameEnd2,b=d+b.MobileAdInGameEnd3,
e=Math.floor(100*Math.random());console.log("seed: ",e);e<=c?this.selectedOverlayName="MobileAdInGameEnd":e<=d?this.selectedOverlayName="MobileAdInGameEnd2":e<=b&&(this.selectedOverlayName="MobileAdInGameEnd3");console.log("Ad rotating end enabled")}else this.selectedOverlayName="MobileAdInGameEnd",console.log("Ad rotating end disabled");console.log("selected:",this.selectedOverlayName);this.overlay=$("#"+this.selectedOverlayName);this.box=$("#"+this.selectedOverlayName+"-Box");this.game=$("#game");
this.boxContents={footer:$("#"+this.selectedOverlayName+"-Box-Footer"),header:$("#"+this.selectedOverlayName+"-Box-Header"),close:$("#"+this.selectedOverlayName+"-Box-Close"),body:$("#"+this.selectedOverlayName+"-Box-Body")};this.box.width(this.ad_width);this.box.height(this.ad_height);this.box.css("left",(this.overlay.width()-this.box.width())/2);this.box.css("top",(this.overlay.height()-this.box.height()-this.boxContents.header.height()-this.boxContents.footer.height())/2);this.overlay.show(this.Timer(this.ad_duration))},
Timer:function(b){var c=b,d=setInterval(function(){MobileAdInGameEnd.boxContents.header.text(MobileAdInGameEnd.ready_in+c+"...");MobileAdInGameEnd.boxContents.footer.text(MobileAdInGameEnd.loading);c--;0>c&&(clearInterval(d),MobileAdInGameEnd.boxContents.close.css("left",MobileAdInGameEnd.boxContents.body.width()-23),MobileAdInGameEnd.boxContents.close.show(),MobileAdInGameEnd.boxContents.header.html(MobileAdInGameEnd.close),MobileAdInGameEnd.boxContents.footer.text(""))},1E3)},Close:function(){this.boxContents.close.hide();
this.overlay.hide()}};!function(b,c){"object"==typeof module&&"object"==typeof module.exports?module.exports=b.document?c(b,!0):function(b){if(!b.document)throw Error("jQuery requires a window with a document");return c(b)}:c(b)}("undefined"!=typeof window?window:this,function(b,c){function d(b,c){c=c||X;var d=c.createElement("script");d.text=b;c.head.appendChild(d).parentNode.removeChild(d)}function e(b){var c=!!b&&"length"in b&&b.length,d=p.type(b);return"function"!==d&&!p.isWindow(b)&&("array"===d||0===c||"number"==
typeof c&&0<c&&c-1 in b)}function f(b,c){return b.nodeName&&b.nodeName.toLowerCase()===c.toLowerCase()}function j(b,c,d){return p.isFunction(c)?p.grep(b,function(b,aa){return!!c.call(b,aa,b)!==d}):c.nodeType?p.grep(b,function(b){return b===c!==d}):"string"!=typeof c?p.grep(b,function(b){return-1<Ja.call(c,b)!==d}):Gc.test(c)?p.filter(c,b,d):(c=p.filter(c,b),p.grep(b,function(b){return-1<Ja.call(c,b)!==d&&1===b.nodeType}))}function n(b,c){for(;(b=b[c])&&1!==b.nodeType;);return b}function m(b){return b}
function g(b){throw b;}function t(b,c,d,g){var l;try{b&&p.isFunction(l=b.promise)?l.call(b).done(c).fail(d):b&&p.isFunction(l=b.then)?l.call(b,c,d):c.apply(void 0,[b].slice(g))}catch(r){d.apply(void 0,[r])}}function z(){X.removeEventListener("DOMContentLoaded",z);b.removeEventListener("load",z);p.ready()}function y(){this.expando=p.expando+y.uid++}function A(b,c,d){var g;if(void 0===d&&1===b.nodeType)if(g="data-"+c.replace(Hc,"-$&").toLowerCase(),d=b.getAttribute(g),"string"==typeof d){try{d="true"===
d||"false"!==d&&("null"===d?null:d===+d+""?+d:Ic.test(d)?JSON.parse(d):d)}catch(l){}qa.set(b,c,d)}else d=void 0;return d}function B(b,c,d,g){var l,r=1,e=20,f=g?function(){return g.cur()}:function(){return p.css(b,c,"")},q=f(),s=d&&d[3]||(p.cssNumber[c]?"":"px"),j=(p.cssNumber[c]||"px"!==s&&+q)&&mb.exec(p.css(b,c));if(j&&j[3]!==s){s=s||j[3];d=d||[];j=+q||1;do r=r||".5",j/=r,p.style(b,c,j+s);while(r!==(r=f()/q)&&1!==r&&--e)}return d&&(j=+j||+q||0,l=d[1]?j+(d[1]+1)*d[2]:+d[2],g&&(g.unit=s,g.start=j,
g.end=l)),l}function I(b,c){for(var d,g,l=[],r=0,e=b.length;r<e;r++)if(g=b[r],g.style)if(d=g.style.display,c){if("none"===d&&(l[r]=S.get(g,"display")||null,l[r]||(g.style.display="")),""===g.style.display&&Ab(g)){d=l;var f=r,q,s=void 0;q=g.ownerDocument;var j=g.nodeName;q=(g=Yb[j])?g:(s=q.body.appendChild(q.createElement(j)),g=p.css(s,"display"),s.parentNode.removeChild(s),"none"===g&&(g="block"),Yb[j]=g,g);d[f]=q}}else"none"!==d&&(l[r]="none",S.set(g,"display",d));for(r=0;r<e;r++)null!=l[r]&&(b[r].style.display=
l[r]);return b}function D(b,c){var d;return d="undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(c||"*"):"undefined"!=typeof b.querySelectorAll?b.querySelectorAll(c||"*"):[],void 0===c||c&&f(b,c)?p.merge([b],d):d}function x(b,c){for(var d=0,g=b.length;d<g;d++)S.set(b[d],"globalEval",!c||S.get(c[d],"globalEval"))}function G(b,c,d,g,l){for(var r,e,f,q,s=c.createDocumentFragment(),j=[],m=0,N=b.length;m<N;m++)if(r=b[m],r||0===r)if("object"===p.type(r))p.merge(j,r.nodeType?[r]:r);else if(Jc.test(r)){e=
e||s.appendChild(c.createElement("div"));f=(Zb.exec(r)||["",""])[1].toLowerCase();f=sa[f]||sa._default;e.innerHTML=f[1]+p.htmlPrefilter(r)+f[2];for(f=f[0];f--;)e=e.lastChild;p.merge(j,e.childNodes);e=s.firstChild;e.textContent=""}else j.push(c.createTextNode(r));s.textContent="";for(m=0;r=j[m++];)if(g&&-1<p.inArray(r,g))l&&l.push(r);else if(q=p.contains(r.ownerDocument,r),e=D(s.appendChild(r),"script"),q&&x(e),d)for(f=0;r=e[f++];)$b.test(r.type||"")&&d.push(r);return s}function E(){return!0}function L(){return!1}
function M(){try{return X.activeElement}catch(b){}}function Q(b,c,d,g,l,r){var e,f;if("object"==typeof c){"string"!=typeof d&&(g=g||d,d=void 0);for(f in c)Q(b,f,d,g,c[f],r);return b}if(null==g&&null==l?(l=d,g=d=void 0):null==l&&("string"==typeof d?(l=g,g=void 0):(l=g,g=d,d=void 0)),!1===l)l=L;else if(!l)return b;return 1===r&&(e=l,l=function(b){return p().off(b),e.apply(this,arguments)},l.guid=e.guid||(e.guid=p.guid++)),b.each(function(){p.event.add(this,c,l,g,d)})}function J(b,c){return f(b,"table")&&
f(11!==c.nodeType?c:c.firstChild,"tr")?p(">tbody",b)[0]||b:b}function fa(b){return b.type=(null!==b.getAttribute("type"))+"/"+b.type,b}function O(b){var c=Kc.exec(b.type);return c?b.type=c[1]:b.removeAttribute("type"),b}function P(b,c){var d,g,l,r,e,f;if(1===c.nodeType){if(S.hasData(b)&&(d=S.access(b),g=S.set(c,d),f=d.events))for(l in delete g.handle,g.events={},f){d=0;for(g=f[l].length;d<g;d++)p.event.add(c,l,f[l][d])}qa.hasData(b)&&(r=qa.access(b),e=p.extend({},r),qa.set(c,e))}}function ba(b,c,
g,l){c=ab.apply([],c);var r,e,f,s,q=0,j=b.length,m=j-1,N=c[0],t=p.isFunction(N);if(t||1<j&&"string"==typeof N&&!da.checkClone&&Lc.test(N))return b.each(function(d){var r=b.eq(d);t&&(c[0]=N.call(this,d,r.html()));ba(r,c,g,l)});if(j&&(r=G(c,b[0].ownerDocument,!1,b,l),e=r.firstChild,1===r.childNodes.length&&(r=e),e||l)){e=p.map(D(r,"script"),fa);for(f=e.length;q<j;q++)s=r,q!==m&&(s=p.clone(s,!0,!0),f&&p.merge(e,D(s,"script"))),g.call(b[q],s,q);if(f){r=e[e.length-1].ownerDocument;p.map(e,O);for(q=0;q<
f;q++)s=e[q],$b.test(s.type||"")&&!S.access(s,"globalEval")&&p.contains(r,s)&&(s.src?p._evalUrl&&p._evalUrl(s.src):d(s.textContent.replace(Nc,""),r))}}return b}function U(b,c,d){for(var g=c?p.filter(c,b):b,l=0;null!=(c=g[l]);l++)d||1!==c.nodeType||p.cleanData(D(c)),c.parentNode&&(d&&p.contains(c.ownerDocument,c)&&x(D(c,"script")),c.parentNode.removeChild(c));return b}function s(b,c,d){var g,l,r,e,f=b.style;return d=d||Bb(b),d&&(e=d.getPropertyValue(c)||d[c],""!==e||p.contains(b.ownerDocument,b)||
(e=p.style(b,c)),!da.pixelMarginRight()&&Qb.test(e)&&ac.test(c)&&(g=f.width,l=f.minWidth,r=f.maxWidth,f.minWidth=f.maxWidth=f.width=e,e=d.width,f.width=g,f.minWidth=l,f.maxWidth=r)),void 0!==e?e+"":e}function u(b,c){return{get:function(){return b()?void delete this.get:(this.get=c).apply(this,arguments)}}}function F(b){var c=p.cssProps[b];if(!c){var c=p.cssProps,d;a:if(d=b,!(d in bc)){for(var g=d[0].toUpperCase()+d.slice(1),l=cc.length;l--;)if(d=cc[l]+g,d in bc)break a;d=void 0}c=c[b]=d||b}return c}
function C(b,c,d){return(b=mb.exec(c))?Math.max(0,b[2]-(d||0))+(b[3]||"px"):c}function H(b,c,d,g,l){var r=0;for(c=d===(g?"border":"content")?4:"width"===c?1:0;4>c;c+=2)"margin"===d&&(r+=p.css(b,d+Sa[c],!0,l)),g?("content"===d&&(r-=p.css(b,"padding"+Sa[c],!0,l)),"margin"!==d&&(r-=p.css(b,"border"+Sa[c]+"Width",!0,l))):(r+=p.css(b,"padding"+Sa[c],!0,l),"padding"!==d&&(r+=p.css(b,"border"+Sa[c]+"Width",!0,l)));return r}function Z(b,c,d){var g,l=Bb(b),r=s(b,c,l),e="border-box"===p.css(b,"boxSizing",!1,
l);return Qb.test(r)?r:(g=e&&(da.boxSizingReliable()||r===b.style[c]),"auto"===r&&(r=b["offset"+c[0].toUpperCase()+c.slice(1)]),r=parseFloat(r)||0,r+H(b,c,d||(e?"border":"content"),g,l)+"px")}function R(b,c,d,g,l){return new R.prototype.init(b,c,d,g,l)}function l(){Cb&&(!1===X.hidden&&b.requestAnimationFrame?b.requestAnimationFrame(l):b.setTimeout(l,p.fx.interval),p.fx.tick())}function q(){return b.setTimeout(function(){bb=void 0}),bb=p.now()}function K(b,c){var d,g=0,l={height:b};for(c=c?1:0;4>g;g+=
2-c)d=Sa[g],l["margin"+d]=l["padding"+d]=b;return c&&(l.opacity=l.width=b),l}function r(b,c,d){for(var g,l=(N.tweeners[c]||[]).concat(N.tweeners["*"]),r=0,e=l.length;r<e;r++)if(g=l[r].call(d,c,b))return g}function N(b,c,d){var g,l,e=0,f=N.prefilters.length,s=p.Deferred().always(function(){delete j.elem}),j=function(){if(l)return!1;for(var c=bb||q(),c=Math.max(0,m.startTime+m.duration-c),d=1-(c/m.duration||0),g=0,r=m.tweens.length;g<r;g++)m.tweens[g].run(d);return s.notifyWith(b,[m,d,c]),1>d&&r?c:
(r||s.notifyWith(b,[m,1,0]),s.resolveWith(b,[m]),!1)},m=s.promise({elem:b,props:p.extend({},c),opts:p.extend(!0,{specialEasing:{},easing:p.easing._default},d),originalProperties:c,originalOptions:d,startTime:bb||q(),duration:d.duration,tweens:[],createTween:function(c,d){var g=p.Tween(b,m.opts,c,d,m.opts.specialEasing[c]||m.opts.easing);return m.tweens.push(g),g},stop:function(c){var d=0,g=c?m.tweens.length:0;if(l)return this;for(l=!0;d<g;d++)m.tweens[d].run(1);return c?(s.notifyWith(b,[m,1,0]),s.resolveWith(b,
[m,c])):s.rejectWith(b,[m,c]),this}});c=m.props;d=m.opts.specialEasing;var t,u,C,V;for(g in c)if(t=p.camelCase(g),u=d[t],C=c[g],Array.isArray(C)&&(u=C[1],C=c[g]=C[0]),g!==t&&(c[t]=C,delete c[g]),V=p.cssHooks[t],V&&"expand"in V)for(g in C=V.expand(C),delete c[t],C)g in c||(c[g]=C[g],d[g]=u);else d[t]=u;for(;e<f;e++)if(g=N.prefilters[e].call(m,b,c,m.opts))return p.isFunction(g.stop)&&(p._queueHooks(m.elem,m.opts.queue).stop=p.proxy(g.stop,g)),g;return p.map(c,r,m),p.isFunction(m.opts.start)&&m.opts.start.call(b,
m),m.progress(m.opts.progress).done(m.opts.done,m.opts.complete).fail(m.opts.fail).always(m.opts.always),p.fx.timer(p.extend(j,{elem:b,anim:m,queue:m.opts.queue})),m}function V(b){return(b.match(ta)||[]).join(" ")}function ga(b){return b.getAttribute&&b.getAttribute("class")||""}function ha(b,c,d,g){var l;if(Array.isArray(c))p.each(c,function(c,l){d||Oc.test(b)?g(b,l):ha(b+"["+("object"==typeof l&&null!=l?c:"")+"]",l,d,g)});else if(d||"object"!==p.type(c))g(b,c);else for(l in c)ha(b+"["+l+"]",c[l],
d,g)}function ka(b){return function(c,d){"string"!=typeof c&&(d=c,c="*");var g,l=0,r=c.toLowerCase().match(ta)||[];if(p.isFunction(d))for(;g=r[l++];)"+"===g[0]?(g=g.slice(1)||"*",(b[g]=b[g]||[]).unshift(d)):(b[g]=b[g]||[]).push(d)}}function na(b,c,d,g){function l(f){var s;return r[f]=!0,p.each(b[f]||[],function(b,aa){var f=aa(c,d,g);return"string"!=typeof f||e||r[f]?e?!(s=f):void 0:(c.dataTypes.unshift(f),l(f),!1)}),s}var r={},e=b===Rb;return l(c.dataTypes[0])||!r["*"]&&l("*")}function oa(b,c){var d,
g,l=p.ajaxSettings.flatOptions||{};for(d in c)void 0!==c[d]&&((l[d]?b:g||(g={}))[d]=c[d]);return g&&p.extend(!0,b,g),b}var ua=[],X=b.document,Db=Object.getPrototypeOf,ya=ua.slice,ab=ua.concat,cb=ua.push,Ja=ua.indexOf,Ka={},db=Ka.toString,La=Ka.hasOwnProperty,nb=La.toString,ob=nb.call(Object),da={},p=function(b,c){return new p.fn.init(b,c)},pb=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,Eb=/^-ms-/,Fb=/-([a-z])/g,qb=function(b,c){return c.toUpperCase()};p.fn=p.prototype={jquery:"3.2.1",constructor:p,length:0,
toArray:function(){return ya.call(this)},get:function(b){return null==b?ya.call(this):0>b?this[b+this.length]:this[b]},pushStack:function(b){b=p.merge(this.constructor(),b);return b.prevObject=this,b},each:function(b){return p.each(this,b)},map:function(b){return this.pushStack(p.map(this,function(c,d){return b.call(c,d,c)}))},slice:function(){return this.pushStack(ya.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(b){var c=this.length;b=
+b+(0>b?c:0);return this.pushStack(0<=b&&b<c?[this[b]]:[])},end:function(){return this.prevObject||this.constructor()},push:cb,sort:ua.sort,splice:ua.splice};p.extend=p.fn.extend=function(){var b,c,d,g,l,r,e=arguments[0]||{},f=1,s=arguments.length,q=!1;"boolean"==typeof e&&(q=e,e=arguments[f]||{},f++);"object"==typeof e||p.isFunction(e)||(e={});for(f===s&&(e=this,f--);f<s;f++)if(null!=(b=arguments[f]))for(c in b)d=e[c],g=b[c],e!==g&&(q&&g&&(p.isPlainObject(g)||(l=Array.isArray(g)))?(l?(l=!1,r=d&&
Array.isArray(d)?d:[]):r=d&&p.isPlainObject(d)?d:{},e[c]=p.extend(q,r,g)):void 0!==g&&(e[c]=g));return e};p.extend({expando:"jQuery"+("3.2.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(b){throw Error(b);},noop:function(){},isFunction:function(b){return"function"===p.type(b)},isWindow:function(b){return null!=b&&b===b.window},isNumeric:function(b){var c=p.type(b);return("number"===c||"string"===c)&&!isNaN(b-parseFloat(b))},isPlainObject:function(b){var c,d;return!(!b||"[object Object]"!==
db.call(b))&&(!(c=Db(b))||(d=La.call(c,"constructor")&&c.constructor,"function"==typeof d&&nb.call(d)===ob))},isEmptyObject:function(b){for(var c in b)return!1;return!0},type:function(b){return null==b?b+"":"object"==typeof b||"function"==typeof b?Ka[db.call(b)]||"object":typeof b},globalEval:function(b){d(b)},camelCase:function(b){return b.replace(Eb,"ms-").replace(Fb,qb)},each:function(b,c){var d,g=0;if(e(b))for(d=b.length;g<d&&!1!==c.call(b[g],g,b[g]);g++);else for(g in b)if(!1===c.call(b[g],g,
b[g]))break;return b},trim:function(b){return null==b?"":(b+"").replace(pb,"")},makeArray:function(b,c){var d=c||[];return null!=b&&(e(Object(b))?p.merge(d,"string"==typeof b?[b]:b):cb.call(d,b)),d},inArray:function(b,c,d){return null==c?-1:Ja.call(c,b,d)},merge:function(b,c){for(var d=+c.length,g=0,l=b.length;g<d;g++)b[l++]=c[g];return b.length=l,b},grep:function(b,c,d){for(var g=[],l=0,r=b.length,e=!d;l<r;l++)d=!c(b[l],l),d!==e&&g.push(b[l]);return g},map:function(b,c,d){var g,l,r=0,f=[];if(e(b))for(g=
b.length;r<g;r++)l=c(b[r],r,d),null!=l&&f.push(l);else for(r in b)l=c(b[r],r,d),null!=l&&f.push(l);return ab.apply([],f)},guid:1,proxy:function(b,c){var d,g,l;if("string"==typeof c&&(d=b[c],c=b,b=d),p.isFunction(b))return g=ya.call(arguments,2),l=function(){return b.apply(c||this,g.concat(ya.call(arguments)))},l.guid=b.guid=b.guid||p.guid++,l},now:Date.now,support:da});"function"==typeof Symbol&&(p.fn[Symbol.iterator]=ua[Symbol.iterator]);p.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),
function(b,c){Ka["[object "+c+"]"]=c.toLowerCase()});var za,eb=b,ca=function(b,c,d,g){var l,r,e,f,s,q=c&&c.ownerDocument,j=c?c.nodeType:9;if(d=d||[],"string"!=typeof b||!b||1!==j&&9!==j&&11!==j)return d;if(!g&&((c?c.ownerDocument||c:va)!==Y&&wa(c),c=c||Y,la)){if(11!==j&&(f=Pc.exec(b)))if(l=f[1])if(9===j){if(!(r=c.getElementById(l)))return d;if(r.id===l)return d.push(r),d}else{if(q&&(r=q.getElementById(l))&&rb(c,r)&&r.id===l)return d.push(r),d}else{if(f[2])return Ma.apply(d,c.getElementsByTagName(b)),
d;if((l=f[3])&&ea.getElementsByClassName&&c.getElementsByClassName)return Ma.apply(d,c.getElementsByClassName(l)),d}if(ea.qsa&&!Gb[b+" "]&&(!ja||!ja.test(b))){if(1!==j)q=c,s=b;else if("object"!==c.nodeName.toLowerCase()){(e=c.getAttribute("id"))?e=e.replace(dc,ec):c.setAttribute("id",e=ia);r=Na(b);for(l=r.length;l--;)r[l]="#"+e+" "+Ta(r[l]);s=r.join(",");q=Sb.test(b)&&fb(c.parentNode)||c}if(s)try{return Ma.apply(d,q.querySelectorAll(s)),d}catch(m){}finally{e===ia&&c.removeAttribute("id")}}}return gb(b.replace(Hb,
"$1"),c,d,g)},hb=function(){function b(d,g){return c.push(d+" ")>W.cacheLength&&delete b[c.shift()],b[d+" "]=g}var c=[];return b},pa=function(b){return b[ia]=!0,b},ra=function(b){var c=Y.createElement("fieldset");try{return!!b(c)}catch(d){return!1}finally{c.parentNode&&c.parentNode.removeChild(c)}},ib=function(b,c){for(var d=b.split("|"),g=d.length;g--;)W.attrHandle[d[g]]=c},sb=function(b,c){var d=c&&b,g=d&&1===b.nodeType&&1===c.nodeType&&b.sourceIndex-c.sourceIndex;if(g)return g;if(d)for(;d=d.nextSibling;)if(d===
c)return-1;return b?1:-1},tb=function(b){return function(c){return"input"===c.nodeName.toLowerCase()&&c.type===b}},Ib=function(b){return function(c){var d=c.nodeName.toLowerCase();return("input"===d||"button"===d)&&c.type===b}},ub=function(b){return function(c){return"form"in c?c.parentNode&&!1===c.disabled?"label"in c?"label"in c.parentNode?c.parentNode.disabled===b:c.disabled===b:c.isDisabled===b||c.isDisabled!==!b&&Qc(c)===b:c.disabled===b:"label"in c&&c.disabled===b}},Ca=function(b){return pa(function(c){return c=
+c,pa(function(d,g){for(var l,r=b([],d.length,c),e=r.length;e--;)d[l=r[e]]&&(d[l]=!(g[l]=d[l]))})})},fb=function(b){return b&&"undefined"!=typeof b.getElementsByTagName&&b},vb=function(){},Ta=function(b){for(var c=0,d=b.length,g="";c<d;c++)g+=b[c].value;return g},Ua=function(b,c,d){var g=c.dir,l=c.next,r=l||g,e=d&&"parentNode"===r,f=Rc++;return c.first?function(c,d,l){for(;c=c[g];)if(1===c.nodeType||e)return b(c,d,l);return!1}:function(c,d,s){var q,j,m,T=[Da,f];if(s)for(;c=c[g];){if((1===c.nodeType||
e)&&b(c,d,s))return!0}else for(;c=c[g];)if(1===c.nodeType||e)if(m=c[ia]||(c[ia]={}),j=m[c.uniqueID]||(m[c.uniqueID]={}),l&&l===c.nodeName.toLowerCase())c=c[g]||c;else{if((q=j[r])&&q[0]===Da&&q[1]===f)return T[2]=q[2];if(j[r]=T,T[2]=b(c,d,s))return!0}return!1}},Va=function(b){return 1<b.length?function(c,d,g){for(var l=b.length;l--;)if(!b[l](c,d,g))return!1;return!0}:b[0]},Oa=function(b,c,d,g,l){for(var r,e=[],f=0,s=b.length,q=null!=c;f<s;f++)(r=b[f])&&(d&&!d(r,g,l)||(e.push(r),q&&c.push(f)));return e},
Wa=function(b,c,d,g,l,r){return g&&!g[ia]&&(g=Wa(g)),l&&!l[ia]&&(l=Wa(l,r)),pa(function(r,e,f,s){var q,j,m=[],N=[],t=e.length,p;if(!(p=r)){p=c||"*";for(var u=f.nodeType?[f]:f,C=[],V=0,K=u.length;V<K;V++)ca(p,u[V],C);p=C}p=!b||!r&&c?p:Oa(p,m,b,f,s);u=d?l||(r?b:t||g)?[]:e:p;if(d&&d(p,u,f,s),g){q=Oa(u,N);g(q,[],f,s);for(f=q.length;f--;)(j=q[f])&&(u[N[f]]=!(p[N[f]]=j))}if(r){if(l||b){if(l){q=[];for(f=u.length;f--;)(j=u[f])&&q.push(p[f]=j);l(null,u=[],q,s)}for(f=u.length;f--;)(j=u[f])&&-1<(q=l?Xa(r,j):
m[f])&&(r[q]=!(e[q]=j))}}else u=Oa(u===e?u.splice(t,u.length):u),l?l(null,e,u,s):Ma.apply(e,u)})},Ya=function(b){var c,d,g,l=b.length,r=W.relative[b[0].type];d=r||W.relative[" "];for(var e=r?1:0,f=Ua(function(b){return b===c},d,!0),s=Ua(function(b){return-1<Xa(c,b)},d,!0),q=[function(b,d,g){b=!r&&(g||d!==Pa)||((c=d).nodeType?f(b,d,g):s(b,d,g));return c=null,b}];e<l;e++)if(d=W.relative[b[e].type])q=[Ua(Va(q),d)];else{if(d=W.filter[b[e].type].apply(null,b[e].matches),d[ia]){for(g=++e;g<l&&!W.relative[b[g].type];g++);
return Wa(1<e&&Va(q),1<e&&Ta(b.slice(0,e-1).concat({value:" "===b[e-2].type?"*":""})).replace(Hb,"$1"),d,e<g&&Ya(b.slice(e,g)),g<l&&Ya(b=b.slice(g)),g<l&&Ta(b))}q.push(d)}return Va(q)},Ea,ea,W,Qa,jb,Na,Za,gb,Pa,xa,Fa,wa,Y,ma,la,ja,Aa,Ra,rb,ia="sizzle"+1*new Date,va=eb.document,Da=0,Rc=0,fc=hb(),gc=hb(),Gb=hb(),Tb=function(b,c){return b===c&&(Fa=!0),0},Sc={}.hasOwnProperty,$a=[],Tc=$a.pop,Uc=$a.push,Ma=$a.push,hc=$a.slice,Xa=function(b,c){for(var d=0,g=b.length;d<g;d++)if(b[d]===c)return d;return-1},
Vc=/[\x20\t\r\n\f]+/g,Hb=/^[\x20\t\r\n\f]+|((?:^|[^\\])(?:\\.)*)[\x20\t\r\n\f]+$/g,Wc=/^[\x20\t\r\n\f]*,[\x20\t\r\n\f]*/,Xc=/^[\x20\t\r\n\f]*([>+~]|[\x20\t\r\n\f])[\x20\t\r\n\f]*/,Yc=/=[\x20\t\r\n\f]*([^\]'"]*?)[\x20\t\r\n\f]*\]/g,Zc=RegExp(":((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:[\\x20\\t\\r\\n\\f]*([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|((?:\\\\.|[\\w-]|[^\x00-\\xa0])+))|)[\\x20\\t\\r\\n\\f]*\\])*)|.*)\\)|)"),
$c=/^(?:\\.|[\w-]|[^\x00-\xa0])+$/,Jb={ID:/^#((?:\\.|[\w-]|[^\x00-\xa0])+)/,CLASS:/^\.((?:\\.|[\w-]|[^\x00-\xa0])+)/,TAG:/^((?:\\.|[\w-]|[^\x00-\xa0])+|[*])/,ATTR:RegExp("^\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:[\\x20\\t\\r\\n\\f]*([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|((?:\\\\.|[\\w-]|[^\x00-\\xa0])+))|)[\\x20\\t\\r\\n\\f]*\\]"),PSEUDO:RegExp("^:((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:[\\x20\\t\\r\\n\\f]*([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|((?:\\\\.|[\\w-]|[^\x00-\\xa0])+))|)[\\x20\\t\\r\\n\\f]*\\])*)|.*)\\)|)"),
CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)","i"),bool:RegExp("^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$","i"),needsContext:RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)",
"i")},ad=/^(?:input|select|textarea|button)$/i,bd=/^h\d$/i,wb=/^[^{]+\{\s*\[native \w/,Pc=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Sb=/[+~]/,Ga=/\\([\da-f]{1,6}[\x20\t\r\n\f]?|([\x20\t\r\n\f])|.)/ig,Ha=function(b,c,d){b="0x"+c-65536;return b!==b||d?c:0>b?String.fromCharCode(b+65536):String.fromCharCode(b>>10|55296,1023&b|56320)},dc=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ec=function(b,c){return c?"\x00"===b?"\ufffd":b.slice(0,-1)+"\\"+b.charCodeAt(b.length-1).toString(16)+" ":"\\"+b},ic=function(){wa()},
Qc=Ua(function(b){return!0===b.disabled&&("form"in b||"label"in b)},{dir:"parentNode",next:"legend"});try{Ma.apply($a=hc.call(va.childNodes),va.childNodes),$a[va.childNodes.length].nodeType}catch(Ed){Ma={apply:$a.length?function(b,c){Uc.apply(b,hc.call(c))}:function(b,c){for(var d=b.length,g=0;b[d++]=c[g++];);b.length=d-1}}}ea=ca.support={};jb=ca.isXML=function(b){b=b&&(b.ownerDocument||b).documentElement;return!!b&&"HTML"!==b.nodeName};wa=ca.setDocument=function(b){var c,d;b=b?b.ownerDocument||b:
va;return b!==Y&&9===b.nodeType&&b.documentElement?(Y=b,ma=Y.documentElement,la=!jb(Y),va!==Y&&(d=Y.defaultView)&&d.top!==d&&(d.addEventListener?d.addEventListener("unload",ic,!1):d.attachEvent&&d.attachEvent("onunload",ic)),ea.attributes=ra(function(b){return b.className="i",!b.getAttribute("className")}),ea.getElementsByTagName=ra(function(b){return b.appendChild(Y.createComment("")),!b.getElementsByTagName("*").length}),ea.getElementsByClassName=wb.test(Y.getElementsByClassName),ea.getById=ra(function(b){return ma.appendChild(b).id=
ia,!Y.getElementsByName||!Y.getElementsByName(ia).length}),ea.getById?(W.filter.ID=function(b){var c=b.replace(Ga,Ha);return function(b){return b.getAttribute("id")===c}},W.find.ID=function(b,c){if("undefined"!=typeof c.getElementById&&la){var d=c.getElementById(b);return d?[d]:[]}}):(W.filter.ID=function(b){var c=b.replace(Ga,Ha);return function(b){return(b="undefined"!=typeof b.getAttributeNode&&b.getAttributeNode("id"))&&b.value===c}},W.find.ID=function(b,c){if("undefined"!=typeof c.getElementById&&
la){var d,g,l,aa=c.getElementById(b);if(aa){if(d=aa.getAttributeNode("id"),d&&d.value===b)return[aa];l=c.getElementsByName(b);for(g=0;aa=l[g++];)if(d=aa.getAttributeNode("id"),d&&d.value===b)return[aa]}return[]}}),W.find.TAG=ea.getElementsByTagName?function(b,c){return"undefined"!=typeof c.getElementsByTagName?c.getElementsByTagName(b):ea.qsa?c.querySelectorAll(b):void 0}:function(b,c){var d,g=[],l=0,aa=c.getElementsByTagName(b);if("*"===b){for(;d=aa[l++];)1===d.nodeType&&g.push(d);return g}return aa},
W.find.CLASS=ea.getElementsByClassName&&function(b,c){if("undefined"!=typeof c.getElementsByClassName&&la)return c.getElementsByClassName(b)},Aa=[],ja=[],(ea.qsa=wb.test(Y.querySelectorAll))&&(ra(function(b){ma.appendChild(b).innerHTML="<a id='"+ia+"'></a><select id='"+ia+"-\r\\' msallowcapture=''><option selected=''></option></select>";b.querySelectorAll("[msallowcapture^='']").length&&ja.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")");b.querySelectorAll("[selected]").length||ja.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)");
b.querySelectorAll("[id~="+ia+"-]").length||ja.push("~=");b.querySelectorAll(":checked").length||ja.push(":checked");b.querySelectorAll("a#"+ia+"+*").length||ja.push(".#.+[+~]")}),ra(function(b){b.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var c=Y.createElement("input");c.setAttribute("type","hidden");b.appendChild(c).setAttribute("name","D");b.querySelectorAll("[name=d]").length&&ja.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?=");2!==b.querySelectorAll(":enabled").length&&
ja.push(":enabled",":disabled");ma.appendChild(b).disabled=!0;2!==b.querySelectorAll(":disabled").length&&ja.push(":enabled",":disabled");b.querySelectorAll("*,:x");ja.push(",.*:")})),(ea.matchesSelector=wb.test(Ra=ma.matches||ma.webkitMatchesSelector||ma.mozMatchesSelector||ma.oMatchesSelector||ma.msMatchesSelector))&&ra(function(b){ea.disconnectedMatch=Ra.call(b,"*");Ra.call(b,"[s!='']:x");Aa.push("!=",":((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:[\\x20\\t\\r\\n\\f]*([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|((?:\\\\.|[\\w-]|[^\x00-\\xa0])+))|)[\\x20\\t\\r\\n\\f]*\\])*)|.*)\\)|)")}),
ja=ja.length&&RegExp(ja.join("|")),Aa=Aa.length&&RegExp(Aa.join("|")),c=wb.test(ma.compareDocumentPosition),rb=c||wb.test(ma.contains)?function(b,c){var d=9===b.nodeType?b.documentElement:b,g=c&&c.parentNode;return b===g||!(!g||1!==g.nodeType||!(d.contains?d.contains(g):b.compareDocumentPosition&&16&b.compareDocumentPosition(g)))}:function(b,c){if(c)for(;c=c.parentNode;)if(c===b)return!0;return!1},Tb=c?function(b,c){if(b===c)return Fa=!0,0;var d=!b.compareDocumentPosition-!c.compareDocumentPosition;
return d?d:(d=(b.ownerDocument||b)===(c.ownerDocument||c)?b.compareDocumentPosition(c):1,1&d||!ea.sortDetached&&c.compareDocumentPosition(b)===d?b===Y||b.ownerDocument===va&&rb(va,b)?-1:c===Y||c.ownerDocument===va&&rb(va,c)?1:xa?Xa(xa,b)-Xa(xa,c):0:4&d?-1:1)}:function(b,c){if(b===c)return Fa=!0,0;var d,g=0;d=b.parentNode;var l=c.parentNode,aa=[b],r=[c];if(!d||!l)return b===Y?-1:c===Y?1:d?-1:l?1:xa?Xa(xa,b)-Xa(xa,c):0;if(d===l)return sb(b,c);for(d=b;d=d.parentNode;)aa.unshift(d);for(d=c;d=d.parentNode;)r.unshift(d);
for(;aa[g]===r[g];)g++;return g?sb(aa[g],r[g]):aa[g]===va?-1:r[g]===va?1:0},Y):Y};ca.matches=function(b,c){return ca(b,null,null,c)};ca.matchesSelector=function(b,c){if((b.ownerDocument||b)!==Y&&wa(b),c=c.replace(Yc,"='$1']"),ea.matchesSelector&&la&&!Gb[c+" "]&&(!Aa||!Aa.test(c))&&(!ja||!ja.test(c)))try{var d=Ra.call(b,c);if(d||ea.disconnectedMatch||b.document&&11!==b.document.nodeType)return d}catch(g){}return 0<ca(c,Y,null,[b]).length};ca.contains=function(b,c){return(b.ownerDocument||b)!==Y&&wa(b),
rb(b,c)};ca.attr=function(b,c){(b.ownerDocument||b)!==Y&&wa(b);var d=W.attrHandle[c.toLowerCase()],d=d&&Sc.call(W.attrHandle,c.toLowerCase())?d(b,c,!la):void 0;return void 0!==d?d:ea.attributes||!la?b.getAttribute(c):(d=b.getAttributeNode(c))&&d.specified?d.value:null};ca.escape=function(b){return(b+"").replace(dc,ec)};ca.error=function(b){throw Error("Syntax error, unrecognized expression: "+b);};ca.uniqueSort=function(b){var c,d=[],g=0,l=0;if(Fa=!ea.detectDuplicates,xa=!ea.sortStable&&b.slice(0),
b.sort(Tb),Fa){for(;c=b[l++];)c===b[l]&&(g=d.push(l));for(;g--;)b.splice(d[g],1)}return xa=null,b};Qa=ca.getText=function(b){var c,d="",g=0;if(c=b.nodeType)if(1===c||9===c||11===c){if("string"==typeof b.textContent)return b.textContent;for(b=b.firstChild;b;b=b.nextSibling)d+=Qa(b)}else{if(3===c||4===c)return b.nodeValue}else for(;c=b[g++];)d+=Qa(c);return d};W=ca.selectors={cacheLength:50,createPseudo:pa,match:Jb,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},
"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(b){return b[1]=b[1].replace(Ga,Ha),b[3]=(b[3]||b[4]||b[5]||"").replace(Ga,Ha),"~="===b[2]&&(b[3]=" "+b[3]+" "),b.slice(0,4)},CHILD:function(b){return b[1]=b[1].toLowerCase(),"nth"===b[1].slice(0,3)?(b[3]||ca.error(b[0]),b[4]=+(b[4]?b[5]+(b[6]||1):2*("even"===b[3]||"odd"===b[3])),b[5]=+(b[7]+b[8]||"odd"===b[3])):b[3]&&ca.error(b[0]),b},PSEUDO:function(b){var c,d=!b[6]&&b[2];return Jb.CHILD.test(b[0])?null:(b[3]?
b[2]=b[4]||b[5]||"":d&&Zc.test(d)&&(c=Na(d,!0))&&(c=d.indexOf(")",d.length-c)-d.length)&&(b[0]=b[0].slice(0,c),b[2]=d.slice(0,c)),b.slice(0,3))}},filter:{TAG:function(b){var c=b.replace(Ga,Ha).toLowerCase();return"*"===b?function(){return!0}:function(b){return b.nodeName&&b.nodeName.toLowerCase()===c}},CLASS:function(b){var c=fc[b+" "];return c||(c=RegExp("(^|[\\x20\\t\\r\\n\\f])"+b+"([\\x20\\t\\r\\n\\f]|$)"))&&fc(b,function(b){return c.test("string"==typeof b.className&&b.className||"undefined"!=
typeof b.getAttribute&&b.getAttribute("class")||"")})},ATTR:function(b,c,d){return function(g){g=ca.attr(g,b);return null==g?"!="===c:!c||(g+="","="===c?g===d:"!="===c?g!==d:"^="===c?d&&0===g.indexOf(d):"*="===c?d&&-1<g.indexOf(d):"$="===c?d&&g.slice(-d.length)===d:"~="===c?-1<(" "+g.replace(Vc," ")+" ").indexOf(d):"|="===c&&(g===d||g.slice(0,d.length+1)===d+"-"))}},CHILD:function(b,c,d,g,l){var r="nth"!==b.slice(0,3),e="last"!==b.slice(-4),f="of-type"===c;return 1===g&&0===l?function(b){return!!b.parentNode}:
function(c,d,s){var q,j,m,T,N,t;d=r!==e?"nextSibling":"previousSibling";var u=c.parentNode,p=f&&c.nodeName.toLowerCase();s=!s&&!f;var C=!1;if(u){if(r){for(;d;){for(T=c;T=T[d];)if(f?T.nodeName.toLowerCase()===p:1===T.nodeType)return!1;t=d="only"===b&&!t&&"nextSibling"}return!0}if(t=[e?u.firstChild:u.lastChild],e&&s){T=u;m=T[ia]||(T[ia]={});j=m[T.uniqueID]||(m[T.uniqueID]={});q=j[b]||[];C=(N=q[0]===Da&&q[1])&&q[2];for(T=N&&u.childNodes[N];T=++N&&T&&T[d]||(C=N=0)||t.pop();)if(1===T.nodeType&&++C&&T===
c){j[b]=[Da,N,C];break}}else if(s&&(T=c,m=T[ia]||(T[ia]={}),j=m[T.uniqueID]||(m[T.uniqueID]={}),q=j[b]||[],N=q[0]===Da&&q[1],C=N),!1===C)for(;(T=++N&&T&&T[d]||(C=N=0)||t.pop())&&(!(f?T.nodeName.toLowerCase()===p:1===T.nodeType)||!++C||!(s&&(m=T[ia]||(T[ia]={}),j=m[T.uniqueID]||(m[T.uniqueID]={}),j[b]=[Da,C]),T===c)););return C-=l,C===g||0===C%g&&0<=C/g}}},PSEUDO:function(b,c){var d,g=W.pseudos[b]||W.setFilters[b.toLowerCase()]||ca.error("unsupported pseudo: "+b);return g[ia]?g(c):1<g.length?(d=[b,
b,"",c],W.setFilters.hasOwnProperty(b.toLowerCase())?pa(function(b,d){for(var l,r=g(b,c),aa=r.length;aa--;)l=Xa(b,r[aa]),b[l]=!(d[l]=r[aa])}):function(b){return g(b,0,d)}):g}},pseudos:{not:pa(function(b){var c=[],d=[],g=Za(b.replace(Hb,"$1"));return g[ia]?pa(function(b,c,d,l){var r;d=g(b,null,l,[]);for(l=b.length;l--;)(r=d[l])&&(b[l]=!(c[l]=r))}):function(b,l,r){return c[0]=b,g(c,null,r,d),c[0]=null,!d.pop()}}),has:pa(function(b){return function(c){return 0<ca(b,c).length}}),contains:pa(function(b){return b=
b.replace(Ga,Ha),function(c){return-1<(c.textContent||c.innerText||Qa(c)).indexOf(b)}}),lang:pa(function(b){return $c.test(b||"")||ca.error("unsupported lang: "+b),b=b.replace(Ga,Ha).toLowerCase(),function(c){var d;do if(d=la?c.lang:c.getAttribute("xml:lang")||c.getAttribute("lang"))return d=d.toLowerCase(),d===b||0===d.indexOf(b+"-");while((c=c.parentNode)&&1===c.nodeType);return!1}}),target:function(b){var c=eb.location&&eb.location.hash;return c&&c.slice(1)===b.id},root:function(b){return b===
ma},focus:function(b){return b===Y.activeElement&&(!Y.hasFocus||Y.hasFocus())&&!(!b.type&&!b.href&&!~b.tabIndex)},enabled:ub(!1),disabled:ub(!0),checked:function(b){var c=b.nodeName.toLowerCase();return"input"===c&&!!b.checked||"option"===c&&!!b.selected},selected:function(b){return b.parentNode&&b.parentNode.selectedIndex,!0===b.selected},empty:function(b){for(b=b.firstChild;b;b=b.nextSibling)if(6>b.nodeType)return!1;return!0},parent:function(b){return!W.pseudos.empty(b)},header:function(b){return bd.test(b.nodeName)},
input:function(b){return ad.test(b.nodeName)},button:function(b){var c=b.nodeName.toLowerCase();return"input"===c&&"button"===b.type||"button"===c},text:function(b){var c;return"input"===b.nodeName.toLowerCase()&&"text"===b.type&&(null==(c=b.getAttribute("type"))||"text"===c.toLowerCase())},first:Ca(function(){return[0]}),last:Ca(function(b,c){return[c-1]}),eq:Ca(function(b,c,d){return[0>d?d+c:d]}),even:Ca(function(b,c){for(var d=0;d<c;d+=2)b.push(d);return b}),odd:Ca(function(b,c){for(var d=1;d<
c;d+=2)b.push(d);return b}),lt:Ca(function(b,c,d){for(c=0>d?d+c:d;0<=--c;)b.push(c);return b}),gt:Ca(function(b,c,d){for(d=0>d?d+c:d;++d<c;)b.push(d);return b})}};W.pseudos.nth=W.pseudos.eq;for(Ea in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})W.pseudos[Ea]=tb(Ea);for(Ea in{submit:!0,reset:!0})W.pseudos[Ea]=Ib(Ea);vb.prototype=W.filters=W.pseudos;W.setFilters=new vb;Na=ca.tokenize=function(b,c){var d,g,l,r,e,f,s;if(e=gc[b+" "])return c?0:e.slice(0);e=b;f=[];for(s=W.preFilter;e;){d&&!(g=Wc.exec(e))||
(g&&(e=e.slice(g[0].length)||e),f.push(l=[]));d=!1;(g=Xc.exec(e))&&(d=g.shift(),l.push({value:d,type:g[0].replace(Hb," ")}),e=e.slice(d.length));for(r in W.filter)!(g=Jb[r].exec(e))||s[r]&&!(g=s[r](g))||(d=g.shift(),l.push({value:d,type:r,matches:g}),e=e.slice(d.length));if(!d)break}return c?e.length:e?ca.error(b):gc(b,f).slice(0)};za=(Za=ca.compile=function(b,c){var d,g=[],l=[],r=Gb[b+" "];if(!r){c||(c=Na(b));for(d=c.length;d--;)r=Ya(c[d]),r[ia]?g.push(r):l.push(r);d=Gb;var e=0<g.length,f=0<l.length,
r=function(b,c,d,r,aa){var s,q,j,m=0,N="0",T=b&&[],t=[],u=Pa,p=b||f&&W.find.TAG("*",aa),C=Da+=null==u?1:Math.random()||0.1,V=p.length;for(aa&&(Pa=c===Y||c||aa);N!==V&&null!=(s=p[N]);N++){if(f&&s){q=0;for(c||s.ownerDocument===Y||(wa(s),d=!la);j=l[q++];)if(j(s,c||Y,d)){r.push(s);break}aa&&(Da=C)}e&&((s=!j&&s)&&m--,b&&T.push(s))}if(m+=N,e&&N!==m){for(q=0;j=g[q++];)j(T,t,c,d);if(b){if(0<m)for(;N--;)T[N]||t[N]||(t[N]=Tc.call(r));t=Oa(t)}Ma.apply(r,t);aa&&!b&&0<t.length&&1<m+g.length&&ca.uniqueSort(r)}return aa&&
(Da=C,Pa=u),T},r=e?pa(r):r,r=d(b,r);r.selector=b}return r},gb=ca.select=function(b,c,d,g){var l,r,e,f,s,q="function"==typeof b&&b,j=!g&&Na(b=q.selector||b);if(d=d||[],1===j.length){if(r=j[0]=j[0].slice(0),2<r.length&&"ID"===(e=r[0]).type&&9===c.nodeType&&la&&W.relative[r[1].type]){if(c=(W.find.ID(e.matches[0].replace(Ga,Ha),c)||[])[0],!c)return d;q&&(c=c.parentNode);b=b.slice(r.shift().value.length)}for(l=Jb.needsContext.test(b)?0:r.length;l--&&!(e=r[l],W.relative[f=e.type]);)if((s=W.find[f])&&(g=
s(e.matches[0].replace(Ga,Ha),Sb.test(r[0].type)&&fb(c.parentNode)||c))){if(r.splice(l,1),b=g.length&&Ta(r),!b)return Ma.apply(d,g),d;break}}return(q||Za(b,j))(g,c,!la,d,!c||Sb.test(b)&&fb(c.parentNode)||c),d},ea.sortStable=ia.split("").sort(Tb).join("")===ia,ea.detectDuplicates=!!Fa,wa(),ea.sortDetached=ra(function(b){return 1&b.compareDocumentPosition(Y.createElement("fieldset"))}),ra(function(b){return b.innerHTML="<a href='#'></a>","#"===b.firstChild.getAttribute("href")})||ib("type|href|height|width",
function(b,c,d){if(!d)return b.getAttribute(c,"type"===c.toLowerCase()?1:2)}),ea.attributes&&ra(function(b){return b.innerHTML="<input/>",b.firstChild.setAttribute("value",""),""===b.firstChild.getAttribute("value")})||ib("value",function(b,c,d){if(!d&&"input"===b.nodeName.toLowerCase())return b.defaultValue}),ra(function(b){return null==b.getAttribute("disabled")})||ib("checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",function(b,
c,d){var g;if(!d)return!0===b[c]?c.toLowerCase():(g=b.getAttributeNode(c))&&g.specified?g.value:null}),ca);p.find=za;p.expr=za.selectors;p.expr[":"]=p.expr.pseudos;p.uniqueSort=p.unique=za.uniqueSort;p.text=za.getText;p.isXMLDoc=za.isXML;p.contains=za.contains;p.escapeSelector=za.escape;var kb=function(b,c,d){for(var g=[],l=void 0!==d;(b=b[c])&&9!==b.nodeType;)if(1===b.nodeType){if(l&&p(b).is(d))break;g.push(b)}return g},jc=function(b,c){for(var d=[];b;b=b.nextSibling)1===b.nodeType&&b!==c&&d.push(b);
return d},kc=p.expr.match.needsContext,lc=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,Gc=/^.[^:#\[\.,]*$/;p.filter=function(b,c,d){var g=c[0];return d&&(b=":not("+b+")"),1===c.length&&1===g.nodeType?p.find.matchesSelector(g,b)?[g]:[]:p.find.matches(b,p.grep(c,function(b){return 1===b.nodeType}))};p.fn.extend({find:function(b){var c,d,g=this.length,l=this;if("string"!=typeof b)return this.pushStack(p(b).filter(function(){for(c=0;c<g;c++)if(p.contains(l[c],this))return!0}));d=
this.pushStack([]);for(c=0;c<g;c++)p.find(b,l[c],d);return 1<g?p.uniqueSort(d):d},filter:function(b){return this.pushStack(j(this,b||[],!1))},not:function(b){return this.pushStack(j(this,b||[],!0))},is:function(b){return!!j(this,"string"==typeof b&&kc.test(b)?p(b):b||[],!1).length}});var mc,cd=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(p.fn.init=function(b,c,d){var g,l;if(!b)return this;if(d=d||mc,"string"==typeof b){if(g="<"===b[0]&&">"===b[b.length-1]&&3<=b.length?[null,b,null]:cd.exec(b),!g||!g[1]&&
c)return!c||c.jquery?(c||d).find(b):this.constructor(c).find(b);if(g[1]){if(c=c instanceof p?c[0]:c,p.merge(this,p.parseHTML(g[1],c&&c.nodeType?c.ownerDocument||c:X,!0)),lc.test(g[1])&&p.isPlainObject(c))for(g in c)p.isFunction(this[g])?this[g](c[g]):this.attr(g,c[g]);return this}return l=X.getElementById(g[2]),l&&(this[0]=l,this.length=1),this}return b.nodeType?(this[0]=b,this.length=1,this):p.isFunction(b)?void 0!==d.ready?d.ready(b):b(p):p.makeArray(b,this)}).prototype=p.fn;mc=p(X);var dd=/^(?:parents|prev(?:Until|All))/,
ed={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({has:function(b){var c=p(b,this),d=c.length;return this.filter(function(){for(var b=0;b<d;b++)if(p.contains(this,c[b]))return!0})},closest:function(b,c){var d,g=0,l=this.length,r=[],e="string"!=typeof b&&p(b);if(!kc.test(b))for(;g<l;g++)for(d=this[g];d&&d!==c;d=d.parentNode)if(11>d.nodeType&&(e?-1<e.index(d):1===d.nodeType&&p.find.matchesSelector(d,b))){r.push(d);break}return this.pushStack(1<r.length?p.uniqueSort(r):r)},index:function(b){return b?
"string"==typeof b?Ja.call(p(b),this[0]):Ja.call(this,b.jquery?b[0]:b):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(b,c){return this.pushStack(p.uniqueSort(p.merge(this.get(),p(b,c))))},addBack:function(b){return this.add(null==b?this.prevObject:this.prevObject.filter(b))}});p.each({parent:function(b){return(b=b.parentNode)&&11!==b.nodeType?b:null},parents:function(b){return kb(b,"parentNode")},parentsUntil:function(b,c,d){return kb(b,"parentNode",d)},next:function(b){return n(b,
"nextSibling")},prev:function(b){return n(b,"previousSibling")},nextAll:function(b){return kb(b,"nextSibling")},prevAll:function(b){return kb(b,"previousSibling")},nextUntil:function(b,c,d){return kb(b,"nextSibling",d)},prevUntil:function(b,c,d){return kb(b,"previousSibling",d)},siblings:function(b){return jc((b.parentNode||{}).firstChild,b)},children:function(b){return jc(b.firstChild)},contents:function(b){return f(b,"iframe")?b.contentDocument:(f(b,"template")&&(b=b.content||b),p.merge([],b.childNodes))}},
function(b,c){p.fn[b]=function(d,g){var l=p.map(this,c,d);return"Until"!==b.slice(-5)&&(g=d),g&&"string"==typeof g&&(l=p.filter(g,l)),1<this.length&&(ed[b]||p.uniqueSort(l),dd.test(b)&&l.reverse()),this.pushStack(l)}});var ta=/[^\x20\t\r\n\f]+/g;p.Callbacks=function(b){var c;if("string"==typeof b){var d={};c=(p.each(b.match(ta)||[],function(b,c){d[c]=!0}),d)}else c=p.extend({},b);b=c;var g,l,r,e,f=[],s=[],q=-1,j=function(){e=e||b.once;for(r=g=!0;s.length;q=-1)for(l=s.shift();++q<f.length;)!1===f[q].apply(l[0],
l[1])&&b.stopOnFalse&&(q=f.length,l=!1);b.memory||(l=!1);g=!1;e&&(f=l?[]:"")},m={add:function(){return f&&(l&&!g&&(q=f.length-1,s.push(l)),function Mc(c){p.each(c,function(c,d){p.isFunction(d)?b.unique&&m.has(d)||f.push(d):d&&d.length&&"string"!==p.type(d)&&Mc(d)})}(arguments),l&&!g&&j()),this},remove:function(){return p.each(arguments,function(b,c){for(var d;-1<(d=p.inArray(c,f,d));)f.splice(d,1),d<=q&&q--}),this},has:function(b){return b?-1<p.inArray(b,f):0<f.length},empty:function(){return f&&
(f=[]),this},disable:function(){return e=s=[],f=l="",this},disabled:function(){return!f},lock:function(){return e=s=[],l||g||(f=l=""),this},locked:function(){return!!e},fireWith:function(b,c){return e||(c=c||[],c=[b,c.slice?c.slice():c],s.push(c),g||j()),this},fire:function(){return m.fireWith(this,arguments),this},fired:function(){return!!r}};return m};p.extend({Deferred:function(c){var d=[["notify","progress",p.Callbacks("memory"),p.Callbacks("memory"),2],["resolve","done",p.Callbacks("once memory"),
p.Callbacks("once memory"),0,"resolved"],["reject","fail",p.Callbacks("once memory"),p.Callbacks("once memory"),1,"rejected"]],l="pending",r={state:function(){return l},always:function(){return e.done(arguments).fail(arguments),this},"catch":function(b){return r.then(null,b)},pipe:function(){var b=arguments;return p.Deferred(function(c){p.each(d,function(d,g){var l=p.isFunction(b[g[4]])&&b[g[4]];e[g[1]](function(){var b=l&&l.apply(this,arguments);b&&p.isFunction(b.promise)?b.promise().progress(c.notify).done(c.resolve).fail(c.reject):
c[g[0]+"With"](this,l?[b]:arguments)})});b=null}).promise()},then:function(c,l,r){function e(c,d,l,r){return function(){var s=this,q=arguments,j=function(){var b,j;if(!(c<f)){if(b=l.apply(s,q),b===d.promise())throw new TypeError("Thenable self-resolution");j=b&&("object"==typeof b||"function"==typeof b)&&b.then;p.isFunction(j)?r?j.call(b,e(f,d,m,r),e(f,d,g,r)):(f++,j.call(b,e(f,d,m,r),e(f,d,g,r),e(f,d,m,d.notifyWith))):(l!==m&&(s=void 0,q=[b]),(r||d.resolveWith)(s,q))}},aa=r?j:function(){try{j()}catch(b){p.Deferred.exceptionHook&&
p.Deferred.exceptionHook(b,aa.stackTrace),c+1>=f&&(l!==g&&(s=void 0,q=[b]),d.rejectWith(s,q))}};c?aa():(p.Deferred.getStackHook&&(aa.stackTrace=p.Deferred.getStackHook()),b.setTimeout(aa))}}var f=0;return p.Deferred(function(b){d[0][3].add(e(0,b,p.isFunction(r)?r:m,b.notifyWith));d[1][3].add(e(0,b,p.isFunction(c)?c:m));d[2][3].add(e(0,b,p.isFunction(l)?l:g))}).promise()},promise:function(b){return null!=b?p.extend(b,r):r}},e={};return p.each(d,function(b,c){var g=c[2],f=c[5];r[c[1]]=g.add;f&&g.add(function(){l=
f},d[3-b][2].disable,d[0][2].lock);g.add(c[3].fire);e[c[0]]=function(){return e[c[0]+"With"](this===e?void 0:this,arguments),this};e[c[0]+"With"]=g.fireWith}),r.promise(e),c&&c.call(e,e),e},when:function(b){var c=arguments.length,d=c,g=Array(d),l=ya.call(arguments),r=p.Deferred(),e=function(b){return function(d){g[b]=this;l[b]=1<arguments.length?ya.call(arguments):d;--c||r.resolveWith(g,l)}};if(1>=c&&(t(b,r.done(e(d)).resolve,r.reject,!c),"pending"===r.state()||p.isFunction(l[d]&&l[d].then)))return r.then();
for(;d--;)t(l[d],e(d),r.reject);return r.promise()}});var fd=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;p.Deferred.exceptionHook=function(c,d){b.console&&b.console.warn&&c&&fd.test(c.name)&&b.console.warn("jQuery.Deferred exception: "+c.message,c.stack,d)};p.readyException=function(c){b.setTimeout(function(){throw c;})};var Ub=p.Deferred();p.fn.ready=function(b){return Ub.then(b)["catch"](function(b){p.readyException(b)}),this};p.extend({isReady:!1,readyWait:1,ready:function(b){(!0===
b?--p.readyWait:p.isReady)||(p.isReady=!0,!0!==b&&0<--p.readyWait||Ub.resolveWith(X,[p]))}});p.ready.then=Ub.then;"complete"===X.readyState||"loading"!==X.readyState&&!X.documentElement.doScroll?b.setTimeout(p.ready):(X.addEventListener("DOMContentLoaded",z),b.addEventListener("load",z));var Ia=function(b,c,d,g,l,r,e){var f=0,s=b.length,q=null==d;if("object"===p.type(d))for(f in l=!0,d)Ia(b,c,f,d[f],!0,r,e);else if(void 0!==g&&(l=!0,p.isFunction(g)||(e=!0),q&&(e?(c.call(b,g),c=null):(q=c,c=function(b,
c,d){return q.call(p(b),d)})),c))for(;f<s;f++)c(b[f],d,e?g:g.call(b[f],f,c(b[f],d)));return l?b:q?c.call(b):s?c(b[0],d):r},Kb=function(b){return 1===b.nodeType||9===b.nodeType||!+b.nodeType};y.uid=1;y.prototype={cache:function(b){var c=b[this.expando];return c||(c={},Kb(b)&&(b.nodeType?b[this.expando]=c:Object.defineProperty(b,this.expando,{value:c,configurable:!0}))),c},set:function(b,c,d){var g;b=this.cache(b);if("string"==typeof c)b[p.camelCase(c)]=d;else for(g in c)b[p.camelCase(g)]=c[g];return b},
get:function(b,c){return void 0===c?this.cache(b):b[this.expando]&&b[this.expando][p.camelCase(c)]},access:function(b,c,d){return void 0===c||c&&"string"==typeof c&&void 0===d?this.get(b,c):(this.set(b,c,d),void 0!==d?d:c)},remove:function(b,c){var d,g=b[this.expando];if(void 0!==g){if(void 0!==c){Array.isArray(c)?c=c.map(p.camelCase):(c=p.camelCase(c),c=c in g?[c]:c.match(ta)||[]);for(d=c.length;d--;)delete g[c[d]]}(void 0===c||p.isEmptyObject(g))&&(b.nodeType?b[this.expando]=void 0:delete b[this.expando])}},
hasData:function(b){b=b[this.expando];return void 0!==b&&!p.isEmptyObject(b)}};var S=new y,qa=new y,Ic=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Hc=/[A-Z]/g;p.extend({hasData:function(b){return qa.hasData(b)||S.hasData(b)},data:function(b,c,d){return qa.access(b,c,d)},removeData:function(b,c){qa.remove(b,c)},_data:function(b,c,d){return S.access(b,c,d)},_removeData:function(b,c){S.remove(b,c)}});p.fn.extend({data:function(b,c){var d,g,l,r=this[0],e=r&&r.attributes;if(void 0===b){if(this.length&&(l=qa.get(r),
1===r.nodeType&&!S.get(r,"hasDataAttrs"))){for(d=e.length;d--;)e[d]&&(g=e[d].name,0===g.indexOf("data-")&&(g=p.camelCase(g.slice(5)),A(r,g,l[g])));S.set(r,"hasDataAttrs",!0)}return l}return"object"==typeof b?this.each(function(){qa.set(this,b)}):Ia(this,function(c){var d;if(r&&void 0===c){if((d=qa.get(r,b),void 0!==d)||(d=A(r,b),void 0!==d))return d}else this.each(function(){qa.set(this,b,c)})},null,c,1<arguments.length,null,!0)},removeData:function(b){return this.each(function(){qa.remove(this,b)})}});
p.extend({queue:function(b,c,d){var g;if(b)return c=(c||"fx")+"queue",g=S.get(b,c),d&&(!g||Array.isArray(d)?g=S.access(b,c,p.makeArray(d)):g.push(d)),g||[]},dequeue:function(b,c){c=c||"fx";var d=p.queue(b,c),g=d.length,l=d.shift(),r=p._queueHooks(b,c),e=function(){p.dequeue(b,c)};"inprogress"===l&&(l=d.shift(),g--);l&&("fx"===c&&d.unshift("inprogress"),delete r.stop,l.call(b,e,r));!g&&r&&r.empty.fire()},_queueHooks:function(b,c){var d=c+"queueHooks";return S.get(b,d)||S.access(b,d,{empty:p.Callbacks("once memory").add(function(){S.remove(b,
[c+"queue",d])})})}});p.fn.extend({queue:function(b,c){var d=2;return"string"!=typeof b&&(c=b,b="fx",d--),arguments.length<d?p.queue(this[0],b):void 0===c?this:this.each(function(){var d=p.queue(this,b,c);p._queueHooks(this,b);"fx"===b&&"inprogress"!==d[0]&&p.dequeue(this,b)})},dequeue:function(b){return this.each(function(){p.dequeue(this,b)})},clearQueue:function(b){return this.queue(b||"fx",[])},promise:function(b,c){var d,g=1,l=p.Deferred(),r=this,e=this.length,f=function(){--g||l.resolveWith(r,
[r])};"string"!=typeof b&&(c=b,b=void 0);for(b=b||"fx";e--;)(d=S.get(r[e],b+"queueHooks"))&&d.empty&&(g++,d.empty.add(f));return f(),l.promise(c)}});var nc=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,mb=RegExp("^(?:([+-])=|)("+nc+")([a-z%]*)$","i"),Sa=["Top","Right","Bottom","Left"],Ab=function(b,c){return b=c||b,"none"===b.style.display||""===b.style.display&&p.contains(b.ownerDocument,b)&&"none"===p.css(b,"display")},oc=function(b,c,d,g){var l,r={};for(l in c)r[l]=b.style[l],b.style[l]=c[l];d=
d.apply(b,g||[]);for(l in c)b.style[l]=r[l];return d},Yb={};p.fn.extend({show:function(){return I(this,!0)},hide:function(){return I(this)},toggle:function(b){return"boolean"==typeof b?b?this.show():this.hide():this.each(function(){Ab(this)?p(this).show():p(this).hide()})}});var pc=/^(?:checkbox|radio)$/i,Zb=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,$b=/^$|\/(?:java|ecma)script/i,sa={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],
tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};sa.optgroup=sa.option;sa.tbody=sa.tfoot=sa.colgroup=sa.caption=sa.thead;sa.th=sa.td;var Jc=/<|&#?\w+;/,Lb=X.createDocumentFragment().appendChild(X.createElement("div")),Mb=X.createElement("input");Mb.setAttribute("type","radio");Mb.setAttribute("checked","checked");Mb.setAttribute("name","t");Lb.appendChild(Mb);da.checkClone=Lb.cloneNode(!0).cloneNode(!0).lastChild.checked;Lb.innerHTML=
"<textarea>x</textarea>";da.noCloneChecked=!!Lb.cloneNode(!0).lastChild.defaultValue;!0;var Nb=X.documentElement,gd=/^key/,hd=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,qc=/^([^.]*)(?:\.(.+)|)/;p.event={global:{},add:function(b,c,d,g,l){var r,e,f,s,q,j,m,N,t,u;if(q=S.get(b)){d.handler&&(r=d,d=r.handler,l=r.selector);l&&p.find.matchesSelector(Nb,l);d.guid||(d.guid=p.guid++);(s=q.events)||(s=q.events={});(e=q.handle)||(e=q.handle=function(c){return"undefined"!=typeof p&&p.event.triggered!==c.type?
p.event.dispatch.apply(b,arguments):void 0});c=(c||"").match(ta)||[""];for(q=c.length;q--;)f=qc.exec(c[q])||[],t=u=f[1],f=(f[2]||"").split(".").sort(),t&&(m=p.event.special[t]||{},t=(l?m.delegateType:m.bindType)||t,m=p.event.special[t]||{},j=p.extend({type:t,origType:u,data:g,handler:d,guid:d.guid,selector:l,needsContext:l&&p.expr.match.needsContext.test(l),namespace:f.join(".")},r),(N=s[t])||(N=s[t]=[],N.delegateCount=0,m.setup&&!1!==m.setup.call(b,g,f,e)||b.addEventListener&&b.addEventListener(t,
e)),m.add&&(m.add.call(b,j),j.handler.guid||(j.handler.guid=d.guid)),l?N.splice(N.delegateCount++,0,j):N.push(j),p.event.global[t]=!0)}},remove:function(b,c,d,g,l){var r,e,f,s,q,j,m,N,t,u,C,V=S.hasData(b)&&S.get(b);if(V&&(s=V.events)){c=(c||"").match(ta)||[""];for(q=c.length;q--;)if(f=qc.exec(c[q])||[],t=C=f[1],u=(f[2]||"").split(".").sort(),t){m=p.event.special[t]||{};t=(g?m.delegateType:m.bindType)||t;N=s[t]||[];f=f[2]&&RegExp("(^|\\.)"+u.join("\\.(?:.*\\.|)")+"(\\.|$)");for(e=r=N.length;r--;)j=
N[r],!l&&C!==j.origType||d&&d.guid!==j.guid||f&&!f.test(j.namespace)||g&&g!==j.selector&&("**"!==g||!j.selector)||(N.splice(r,1),j.selector&&N.delegateCount--,m.remove&&m.remove.call(b,j));e&&!N.length&&(m.teardown&&!1!==m.teardown.call(b,u,V.handle)||p.removeEvent(b,t,V.handle),delete s[t])}else for(t in s)p.event.remove(b,t+c[q],d,g,!0);p.isEmptyObject(s)&&S.remove(b,"handle events")}},dispatch:function(b){var c=p.event.fix(b),d,g,l,r,e,f,s=Array(arguments.length);g=(S.get(this,"events")||{})[c.type]||
[];var q=p.event.special[c.type]||{};s[0]=c;for(d=1;d<arguments.length;d++)s[d]=arguments[d];if(c.delegateTarget=this,!q.preDispatch||!1!==q.preDispatch.call(this,c)){f=p.event.handlers.call(this,c,g);for(d=0;(r=f[d++])&&!c.isPropagationStopped();){c.currentTarget=r.elem;for(g=0;(e=r.handlers[g++])&&!c.isImmediatePropagationStopped();)c.rnamespace&&!c.rnamespace.test(e.namespace)||(c.handleObj=e,c.data=e.data,l=((p.event.special[e.origType]||{}).handle||e.handler).apply(r.elem,s),void 0!==l&&!1===
(c.result=l)&&(c.preventDefault(),c.stopPropagation()))}return q.postDispatch&&q.postDispatch.call(this,c),c.result}},handlers:function(b,c){var d,g,l,r,e,f=[],s=c.delegateCount,q=b.target;if(s&&q.nodeType&&!("click"===b.type&&1<=b.button))for(;q!==this;q=q.parentNode||this)if(1===q.nodeType&&("click"!==b.type||!0!==q.disabled)){r=[];e={};for(d=0;d<s;d++)g=c[d],l=g.selector+" ",void 0===e[l]&&(e[l]=g.needsContext?-1<p(l,this).index(q):p.find(l,this,null,[q]).length),e[l]&&r.push(g);r.length&&f.push({elem:q,
handlers:r})}return q=this,s<c.length&&f.push({elem:q,handlers:c.slice(s)}),f},addProp:function(b,c){Object.defineProperty(p.Event.prototype,b,{enumerable:!0,configurable:!0,get:p.isFunction(c)?function(){if(this.originalEvent)return c(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[b]},set:function(c){Object.defineProperty(this,b,{enumerable:!0,configurable:!0,writable:!0,value:c})}})},fix:function(b){return b[p.expando]?b:new p.Event(b)},special:{load:{noBubble:!0},
focus:{trigger:function(){if(this!==M()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===M()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&f(this,"input"))return this.click(),!1},_default:function(b){return f(b.target,"a")}},beforeunload:{postDispatch:function(b){void 0!==b.result&&b.originalEvent&&(b.originalEvent.returnValue=b.result)}}}};p.removeEvent=function(b,c,d){b.removeEventListener&&
b.removeEventListener(c,d)};p.Event=function(b,c){return this instanceof p.Event?(b&&b.type?(this.originalEvent=b,this.type=b.type,this.isDefaultPrevented=b.defaultPrevented||void 0===b.defaultPrevented&&!1===b.returnValue?E:L,this.target=b.target&&3===b.target.nodeType?b.target.parentNode:b.target,this.currentTarget=b.currentTarget,this.relatedTarget=b.relatedTarget):this.type=b,c&&p.extend(this,c),this.timeStamp=b&&b.timeStamp||p.now(),void(this[p.expando]=!0)):new p.Event(b,c)};p.Event.prototype=
{constructor:p.Event,isDefaultPrevented:L,isPropagationStopped:L,isImmediatePropagationStopped:L,isSimulated:!1,preventDefault:function(){var b=this.originalEvent;this.isDefaultPrevented=E;b&&!this.isSimulated&&b.preventDefault()},stopPropagation:function(){var b=this.originalEvent;this.isPropagationStopped=E;b&&!this.isSimulated&&b.stopPropagation()},stopImmediatePropagation:function(){var b=this.originalEvent;this.isImmediatePropagationStopped=E;b&&!this.isSimulated&&b.stopImmediatePropagation();
this.stopPropagation()}};p.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(b){var c=b.button;return null==b.which&&gd.test(b.type)?null!=b.charCode?b.charCode:b.keyCode:!b.which&&void 0!==c&&hd.test(b.type)?
1&c?1:2&c?3:4&c?2:0:b.which}},p.event.addProp);p.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(b,c){p.event.special[b]={delegateType:c,bindType:c,handle:function(b){var d,g=b.relatedTarget,l=b.handleObj;return g&&(g===this||p.contains(this,g))||(b.type=l.origType,d=l.handler.apply(this,arguments),b.type=c),d}}});p.fn.extend({on:function(b,c,d,g){return Q(this,b,c,d,g)},one:function(b,c,d,g){return Q(this,b,c,d,g,1)},off:function(b,
c,d){var g,l;if(b&&b.preventDefault&&b.handleObj)return g=b.handleObj,p(b.delegateTarget).off(g.namespace?g.origType+"."+g.namespace:g.origType,g.selector,g.handler),this;if("object"==typeof b){for(l in b)this.off(l,c,b[l]);return this}return!1!==c&&"function"!=typeof c||(d=c,c=void 0),!1===d&&(d=L),this.each(function(){p.event.remove(this,b,d,c)})}});var id=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,jd=/<script|<style|<link/i,Lc=/checked\s*(?:[^=]|=\s*.checked.)/i,
Kc=/^true\/(.*)/,Nc=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;p.extend({htmlPrefilter:function(b){return b.replace(id,"<$1></$2>")},clone:function(b,c,d){var g,l,r,e,f=b.cloneNode(!0),q=p.contains(b.ownerDocument,b);if(!da.noCloneChecked&&!(1!==b.nodeType&&11!==b.nodeType||p.isXMLDoc(b))){e=D(f);r=D(b);g=0;for(l=r.length;g<l;g++){var s=r[g],j=e[g],m=j.nodeName.toLowerCase();"input"===m&&pc.test(s.type)?j.checked=s.checked:"input"!==m&&"textarea"!==m||(j.defaultValue=s.defaultValue)}}if(c)if(d){r=
r||D(b);e=e||D(f);g=0;for(l=r.length;g<l;g++)P(r[g],e[g])}else P(b,f);return e=D(f,"script"),0<e.length&&x(e,!q&&D(b,"script")),f},cleanData:function(b){for(var c,d,g,l=p.event.special,r=0;void 0!==(d=b[r]);r++)if(Kb(d)){if(c=d[S.expando]){if(c.events)for(g in c.events)l[g]?p.event.remove(d,g):p.removeEvent(d,g,c.handle);d[S.expando]=void 0}d[qa.expando]&&(d[qa.expando]=void 0)}}});p.fn.extend({detach:function(b){return U(this,b,!0)},remove:function(b){return U(this,b)},text:function(b){return Ia(this,
function(b){return void 0===b?p.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=b)})},null,b,arguments.length)},append:function(){return ba(this,arguments,function(b){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&J(this,b).appendChild(b)})},prepend:function(){return ba(this,arguments,function(b){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var c=J(this,b);c.insertBefore(b,c.firstChild)}})},before:function(){return ba(this,
arguments,function(b){this.parentNode&&this.parentNode.insertBefore(b,this)})},after:function(){return ba(this,arguments,function(b){this.parentNode&&this.parentNode.insertBefore(b,this.nextSibling)})},empty:function(){for(var b,c=0;null!=(b=this[c]);c++)1===b.nodeType&&(p.cleanData(D(b,!1)),b.textContent="");return this},clone:function(b,c){return b=null!=b&&b,c=null==c?b:c,this.map(function(){return p.clone(this,b,c)})},html:function(b){return Ia(this,function(b){var c=this[0]||{},d=0,g=this.length;
if(void 0===b&&1===c.nodeType)return c.innerHTML;if("string"==typeof b&&!jd.test(b)&&!sa[(Zb.exec(b)||["",""])[1].toLowerCase()]){b=p.htmlPrefilter(b);try{for(;d<g;d++)c=this[d]||{},1===c.nodeType&&(p.cleanData(D(c,!1)),c.innerHTML=b);c=0}catch(l){}}c&&this.empty().append(b)},null,b,arguments.length)},replaceWith:function(){var b=[];return ba(this,arguments,function(c){var d=this.parentNode;0>p.inArray(this,b)&&(p.cleanData(D(this)),d&&d.replaceChild(c,this))},b)}});p.each({appendTo:"append",prependTo:"prepend",
insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(b,c){p.fn[b]=function(b){for(var d=[],g=p(b),l=g.length-1,r=0;r<=l;r++)b=r===l?this:this.clone(!0),p(g[r])[c](b),cb.apply(d,b.get());return this.pushStack(d)}});var ac=/^margin/,Qb=RegExp("^("+nc+")(?!px)[a-z%]+$","i"),Bb=function(c){var d=c.ownerDocument.defaultView;return d&&d.opener||(d=b),d.getComputedStyle(c)},Pb=function(){if(Ba){Ba.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%";
Ba.innerHTML="";Nb.appendChild(Ob);var c=b.getComputedStyle(Ba);rc="1%"!==c.top;sc="2px"===c.marginLeft;tc="4px"===c.width;Ba.style.marginRight="50%";uc="4px"===c.marginRight;Nb.removeChild(Ob);Ba=null}},rc,tc,uc,sc,Ob=X.createElement("div"),Ba=X.createElement("div");Ba.style&&(Ba.style.backgroundClip="content-box",Ba.cloneNode(!0).style.backgroundClip="",da.clearCloneStyle="content-box"===Ba.style.backgroundClip,Ob.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",
Ob.appendChild(Ba),p.extend(da,{pixelPosition:function(){return Pb(),rc},boxSizingReliable:function(){return Pb(),tc},pixelMarginRight:function(){return Pb(),uc},reliableMarginLeft:function(){return Pb(),sc}}));!0;var kd=/^(none|table(?!-c[ea]).+)/,vc=/^--/,ld={position:"absolute",visibility:"hidden",display:"block"},wc={letterSpacing:"0",fontWeight:"400"},cc=["Webkit","Moz","ms"],bc=X.createElement("div").style;p.extend({cssHooks:{opacity:{get:function(b,c){if(c){var d=s(b,"opacity");return""===
d?"1":d}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(b,c,d,g){if(b&&3!==b.nodeType&&8!==b.nodeType&&b.style){var l,r,e,f=p.camelCase(c),q=vc.test(c),s=b.style;return q||(c=F(f)),e=p.cssHooks[c]||p.cssHooks[f],void 0===d?e&&"get"in e&&void 0!==(l=e.get(b,!1,g))?l:s[c]:(r=typeof d,"string"===r&&(l=mb.exec(d))&&l[1]&&
(d=B(b,c,l),r="number"),null!=d&&d===d&&("number"===r&&(d+=l&&l[3]||(p.cssNumber[f]?"":"px")),da.clearCloneStyle||""!==d||0!==c.indexOf("background")||(s[c]="inherit"),e&&"set"in e&&void 0===(d=e.set(b,d,g))||(q?s.setProperty(c,d):s[c]=d)),void 0)}},css:function(b,c,d,g){var l,r,e,f=p.camelCase(c);return vc.test(c)||(c=F(f)),e=p.cssHooks[c]||p.cssHooks[f],e&&"get"in e&&(l=e.get(b,!0,d)),void 0===l&&(l=s(b,c,g)),"normal"===l&&c in wc&&(l=wc[c]),""===d||d?(r=parseFloat(l),!0===d||isFinite(r)?r||0:l):
l}});p.each(["height","width"],function(b,c){p.cssHooks[c]={get:function(b,d,g){if(d)return!kd.test(p.css(b,"display"))||b.getClientRects().length&&b.getBoundingClientRect().width?Z(b,c,g):oc(b,ld,function(){return Z(b,c,g)})},set:function(b,d,g){var l,r=g&&Bb(b);g=g&&H(b,c,g,"border-box"===p.css(b,"boxSizing",!1,r),r);return g&&(l=mb.exec(d))&&"px"!==(l[3]||"px")&&(b.style[c]=d,d=p.css(b,c)),C(b,d,g)}}});p.cssHooks.marginLeft=u(da.reliableMarginLeft,function(b,c){if(c)return(parseFloat(s(b,"marginLeft"))||
b.getBoundingClientRect().left-oc(b,{marginLeft:0},function(){return b.getBoundingClientRect().left}))+"px"});p.each({margin:"",padding:"",border:"Width"},function(b,c){p.cssHooks[b+c]={expand:function(d){var g=0,l={};for(d="string"==typeof d?d.split(" "):[d];4>g;g++)l[b+Sa[g]+c]=d[g]||d[g-2]||d[0];return l}};ac.test(b)||(p.cssHooks[b+c].set=C)});p.fn.extend({css:function(b,c){return Ia(this,function(b,c,d){var g,l={},r=0;if(Array.isArray(c)){d=Bb(b);for(g=c.length;r<g;r++)l[c[r]]=p.css(b,c[r],!1,
d);return l}return void 0!==d?p.style(b,c,d):p.css(b,c)},b,c,1<arguments.length)}});p.Tween=R;R.prototype={constructor:R,init:function(b,c,d,g,l,r){this.elem=b;this.prop=d;this.easing=l||p.easing._default;this.options=c;this.start=this.now=this.cur();this.end=g;this.unit=r||(p.cssNumber[d]?"":"px")},cur:function(){var b=R.propHooks[this.prop];return b&&b.get?b.get(this):R.propHooks._default.get(this)},run:function(b){var c,d=R.propHooks[this.prop];return this.options.duration?this.pos=c=p.easing[this.easing](b,
this.options.duration*b,0,1,this.options.duration):this.pos=c=b,this.now=(this.end-this.start)*c+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),d&&d.set?d.set(this):R.propHooks._default.set(this),this}};R.prototype.init.prototype=R.prototype;R.propHooks={_default:{get:function(b){var c;return 1!==b.elem.nodeType||null!=b.elem[b.prop]&&null==b.elem.style[b.prop]?b.elem[b.prop]:(c=p.css(b.elem,b.prop,""),c&&"auto"!==c?c:0)},set:function(b){p.fx.step[b.prop]?p.fx.step[b.prop](b):
1!==b.elem.nodeType||null==b.elem.style[p.cssProps[b.prop]]&&!p.cssHooks[b.prop]?b.elem[b.prop]=b.now:p.style(b.elem,b.prop,b.now+b.unit)}}};R.propHooks.scrollTop=R.propHooks.scrollLeft={set:function(b){b.elem.nodeType&&b.elem.parentNode&&(b.elem[b.prop]=b.now)}};p.easing={linear:function(b){return b},swing:function(b){return 0.5-Math.cos(b*Math.PI)/2},_default:"swing"};p.fx=R.prototype.init;p.fx.step={};var bb,Cb,md=/^(?:toggle|show|hide)$/,nd=/queueHooks$/;p.Animation=p.extend(N,{tweeners:{"*":[function(b,
c){var d=this.createTween(b,c);return B(d.elem,b,mb.exec(c),d),d}]},tweener:function(b,c){p.isFunction(b)?(c=b,b=["*"]):b=b.match(ta);for(var d,g=0,l=b.length;g<l;g++)d=b[g],N.tweeners[d]=N.tweeners[d]||[],N.tweeners[d].unshift(c)},prefilters:[function(b,c,d){var g,l,e,f,q,s,j,m,N="width"in c||"height"in c,t=this,u={},C=b.style,V=b.nodeType&&Ab(b),K=S.get(b,"fxshow");d.queue||(f=p._queueHooks(b,"fx"),null==f.unqueued&&(f.unqueued=0,q=f.empty.fire,f.empty.fire=function(){f.unqueued||q()}),f.unqueued++,
t.always(function(){t.always(function(){f.unqueued--;p.queue(b,"fx").length||f.empty.fire()})}));for(g in c)if(l=c[g],md.test(l)){if(delete c[g],e=e||"toggle"===l,l===(V?"hide":"show")){if("show"!==l||!K||void 0===K[g])continue;V=!0}u[g]=K&&K[g]||p.style(b,g)}if(s=!p.isEmptyObject(c),s||!p.isEmptyObject(u))for(g in N&&1===b.nodeType&&(d.overflow=[C.overflow,C.overflowX,C.overflowY],j=K&&K.display,null==j&&(j=S.get(b,"display")),m=p.css(b,"display"),"none"===m&&(j?m=j:(I([b],!0),j=b.style.display||
j,m=p.css(b,"display"),I([b]))),("inline"===m||"inline-block"===m&&null!=j)&&"none"===p.css(b,"float")&&(s||(t.done(function(){C.display=j}),null==j&&(m=C.display,j="none"===m?"":m)),C.display="inline-block")),d.overflow&&(C.overflow="hidden",t.always(function(){C.overflow=d.overflow[0];C.overflowX=d.overflow[1];C.overflowY=d.overflow[2]})),s=!1,u)s||(K?"hidden"in K&&(V=K.hidden):K=S.access(b,"fxshow",{display:j}),e&&(K.hidden=!V),V&&I([b],!0),t.done(function(){V||I([b]);S.remove(b,"fxshow");for(g in u)p.style(b,
g,u[g])})),s=r(V?K[g]:0,g,t),g in K||(K[g]=s.start,V&&(s.end=s.start,s.start=0))}],prefilter:function(b,c){c?N.prefilters.unshift(b):N.prefilters.push(b)}});p.speed=function(b,c,d){var g=b&&"object"==typeof b?p.extend({},b):{complete:d||!d&&c||p.isFunction(b)&&b,duration:b,easing:d&&c||c&&!p.isFunction(c)&&c};return p.fx.off?g.duration=0:"number"!=typeof g.duration&&(g.duration in p.fx.speeds?g.duration=p.fx.speeds[g.duration]:g.duration=p.fx.speeds._default),null!=g.queue&&!0!==g.queue||(g.queue=
"fx"),g.old=g.complete,g.complete=function(){p.isFunction(g.old)&&g.old.call(this);g.queue&&p.dequeue(this,g.queue)},g};p.fn.extend({fadeTo:function(b,c,d,g){return this.filter(Ab).css("opacity",0).show().end().animate({opacity:c},b,d,g)},animate:function(b,c,d,g){var l=p.isEmptyObject(b),r=p.speed(c,d,g);c=function(){var c=N(this,p.extend({},b),r);(l||S.get(this,"finish"))&&c.stop(!0)};return c.finish=c,l||!1===r.queue?this.each(c):this.queue(r.queue,c)},stop:function(b,c,d){var g=function(b){var c=
b.stop;delete b.stop;c(d)};return"string"!=typeof b&&(d=c,c=b,b=void 0),c&&!1!==b&&this.queue(b||"fx",[]),this.each(function(){var c=!0,l=null!=b&&b+"queueHooks",r=p.timers,e=S.get(this);if(l)e[l]&&e[l].stop&&g(e[l]);else for(l in e)e[l]&&e[l].stop&&nd.test(l)&&g(e[l]);for(l=r.length;l--;)r[l].elem!==this||null!=b&&r[l].queue!==b||(r[l].anim.stop(d),c=!1,r.splice(l,1));!c&&d||p.dequeue(this,b)})},finish:function(b){return!1!==b&&(b=b||"fx"),this.each(function(){var c,d=S.get(this),g=d[b+"queue"];
c=d[b+"queueHooks"];var l=p.timers,r=g?g.length:0;d.finish=!0;p.queue(this,b,[]);c&&c.stop&&c.stop.call(this,!0);for(c=l.length;c--;)l[c].elem===this&&l[c].queue===b&&(l[c].anim.stop(!0),l.splice(c,1));for(c=0;c<r;c++)g[c]&&g[c].finish&&g[c].finish.call(this);delete d.finish})}});p.each(["toggle","show","hide"],function(b,c){var d=p.fn[c];p.fn[c]=function(b,g,l){return null==b||"boolean"==typeof b?d.apply(this,arguments):this.animate(K(c,!0),b,g,l)}});p.each({slideDown:K("show"),slideUp:K("hide"),
slideToggle:K("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(b,c){p.fn[b]=function(b,d,g){return this.animate(c,b,d,g)}});p.timers=[];p.fx.tick=function(){var b,c=0,d=p.timers;for(bb=p.now();c<d.length;c++)b=d[c],b()||d[c]!==b||d.splice(c--,1);d.length||p.fx.stop();bb=void 0};p.fx.timer=function(b){p.timers.push(b);p.fx.start()};p.fx.interval=13;p.fx.start=function(){Cb||(Cb=!0,l())};p.fx.stop=function(){Cb=null};p.fx.speeds={slow:600,fast:200,_default:400};
p.fn.delay=function(c,d){return c=p.fx?p.fx.speeds[c]||c:c,d=d||"fx",this.queue(d,function(d,g){var l=b.setTimeout(d,c);g.stop=function(){b.clearTimeout(l)}})};var lb=X.createElement("input"),od=X.createElement("select").appendChild(X.createElement("option"));lb.type="checkbox";da.checkOn=""!==lb.value;da.optSelected=od.selected;lb=X.createElement("input");lb.value="t";lb.type="radio";da.radioValue="t"===lb.value;var xc,xb=p.expr.attrHandle;p.fn.extend({attr:function(b,c){return Ia(this,p.attr,b,
c,1<arguments.length)},removeAttr:function(b){return this.each(function(){p.removeAttr(this,b)})}});p.extend({attr:function(b,c,d){var g,l,r=b.nodeType;if(3!==r&&8!==r&&2!==r)return"undefined"==typeof b.getAttribute?p.prop(b,c,d):(1===r&&p.isXMLDoc(b)||(l=p.attrHooks[c.toLowerCase()]||(p.expr.match.bool.test(c)?xc:void 0)),void 0!==d?null===d?void p.removeAttr(b,c):l&&"set"in l&&void 0!==(g=l.set(b,d,c))?g:(b.setAttribute(c,d+""),d):l&&"get"in l&&null!==(g=l.get(b,c))?g:(g=p.find.attr(b,c),null==
g?void 0:g))},attrHooks:{type:{set:function(b,c){if(!da.radioValue&&"radio"===c&&f(b,"input")){var d=b.value;return b.setAttribute("type",c),d&&(b.value=d),c}}}},removeAttr:function(b,c){var d,g=0,l=c&&c.match(ta);if(l&&1===b.nodeType)for(;d=l[g++];)b.removeAttribute(d)}});xc={set:function(b,c,d){return!1===c?p.removeAttr(b,d):b.setAttribute(d,d),d}};p.each(p.expr.match.bool.source.match(/\w+/g),function(b,c){var d=xb[c]||p.find.attr;xb[c]=function(b,c,g){var l,r,e=c.toLowerCase();return g||(r=xb[e],
xb[e]=l,l=null!=d(b,c,g)?e:null,xb[e]=r),l}});var pd=/^(?:input|select|textarea|button)$/i,qd=/^(?:a|area)$/i;p.fn.extend({prop:function(b,c){return Ia(this,p.prop,b,c,1<arguments.length)},removeProp:function(b){return this.each(function(){delete this[p.propFix[b]||b]})}});p.extend({prop:function(b,c,d){var g,l,r=b.nodeType;if(3!==r&&8!==r&&2!==r)return 1===r&&p.isXMLDoc(b)||(c=p.propFix[c]||c,l=p.propHooks[c]),void 0!==d?l&&"set"in l&&void 0!==(g=l.set(b,d,c))?g:b[c]=d:l&&"get"in l&&null!==(g=l.get(b,
c))?g:b[c]},propHooks:{tabIndex:{get:function(b){var c=p.find.attr(b,"tabindex");return c?parseInt(c,10):pd.test(b.nodeName)||qd.test(b.nodeName)&&b.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}});da.optSelected||(p.propHooks.selected={get:function(b){b=b.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(b){b=b.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}});p.each("tabIndex readOnly maxLength cellSpacing cellPadding rowSpan colSpan useMap frameBorder contentEditable".split(" "),
function(){p.propFix[this.toLowerCase()]=this});p.fn.extend({addClass:function(b){var c,d,g,l,r,e,f=0;if(p.isFunction(b))return this.each(function(c){p(this).addClass(b.call(this,c,ga(this)))});if("string"==typeof b&&b)for(c=b.match(ta)||[];d=this[f++];)if(l=ga(d),g=1===d.nodeType&&" "+V(l)+" "){for(e=0;r=c[e++];)0>g.indexOf(" "+r+" ")&&(g+=r+" ");g=V(g);l!==g&&d.setAttribute("class",g)}return this},removeClass:function(b){var c,d,g,l,r,e,f=0;if(p.isFunction(b))return this.each(function(c){p(this).removeClass(b.call(this,
c,ga(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof b&&b)for(c=b.match(ta)||[];d=this[f++];)if(l=ga(d),g=1===d.nodeType&&" "+V(l)+" "){for(e=0;r=c[e++];)for(;-1<g.indexOf(" "+r+" ");)g=g.replace(" "+r+" "," ");g=V(g);l!==g&&d.setAttribute("class",g)}return this},toggleClass:function(b,c){var d=typeof b;return"boolean"==typeof c&&"string"===d?c?this.addClass(b):this.removeClass(b):p.isFunction(b)?this.each(function(d){p(this).toggleClass(b.call(this,d,ga(this),c),c)}):
this.each(function(){var c,g,l,r;if("string"===d){g=0;l=p(this);for(r=b.match(ta)||[];c=r[g++];)l.hasClass(c)?l.removeClass(c):l.addClass(c)}else void 0!==b&&"boolean"!==d||(c=ga(this),c&&S.set(this,"__className__",c),this.setAttribute&&this.setAttribute("class",c||!1===b?"":S.get(this,"__className__")||""))})},hasClass:function(b){var c,d=0;for(b=" "+b+" ";c=this[d++];)if(1===c.nodeType&&-1<(" "+V(ga(c))+" ").indexOf(b))return!0;return!1}});var rd=/\r/g;p.fn.extend({val:function(b){var c,d,g,l=this[0];
if(arguments.length)return g=p.isFunction(b),this.each(function(d){var l;1===this.nodeType&&(l=g?b.call(this,d,p(this).val()):b,null==l?l="":"number"==typeof l?l+="":Array.isArray(l)&&(l=p.map(l,function(b){return null==b?"":b+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()],c&&"set"in c&&void 0!==c.set(this,l,"value")||(this.value=l))});if(l)return c=p.valHooks[l.type]||p.valHooks[l.nodeName.toLowerCase()],c&&"get"in c&&void 0!==(d=c.get(l,"value"))?d:(d=l.value,"string"==typeof d?
d.replace(rd,""):null==d?"":d)}});p.extend({valHooks:{option:{get:function(b){var c=p.find.attr(b,"value");return null!=c?c:V(p.text(b))}},select:{get:function(b){var c,d,g=b.options,l=b.selectedIndex,r="select-one"===b.type,e=r?null:[],s=r?l+1:g.length;for(d=0>l?s:r?l:0;d<s;d++)if(c=g[d],(c.selected||d===l)&&!c.disabled&&(!c.parentNode.disabled||!f(c.parentNode,"optgroup"))){if(b=p(c).val(),r)return b;e.push(b)}return e},set:function(b,c){for(var d,g,l=b.options,r=p.makeArray(c),e=l.length;e--;)g=
l[e],(g.selected=-1<p.inArray(p.valHooks.option.get(g),r))&&(d=!0);return d||(b.selectedIndex=-1),r}}}});p.each(["radio","checkbox"],function(){p.valHooks[this]={set:function(b,c){if(Array.isArray(c))return b.checked=-1<p.inArray(p(b).val(),c)}};da.checkOn||(p.valHooks[this].get=function(b){return null===b.getAttribute("value")?"on":b.value})});var yc=/^(?:focusinfocus|focusoutblur)$/;p.extend(p.event,{trigger:function(c,d,g,l){var r,e,f,s,q,j,m,N=[g||X],t=La.call(c,"type")?c.type:c;r=La.call(c,"namespace")?
c.namespace.split("."):[];if(e=f=g=g||X,3!==g.nodeType&&8!==g.nodeType&&!yc.test(t+p.event.triggered)&&(-1<t.indexOf(".")&&(r=t.split("."),t=r.shift(),r.sort()),q=0>t.indexOf(":")&&"on"+t,c=c[p.expando]?c:new p.Event(t,"object"==typeof c&&c),c.isTrigger=l?2:3,c.namespace=r.join("."),c.rnamespace=c.namespace?RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,c.result=void 0,c.target||(c.target=g),d=null==d?[c]:p.makeArray(d,[c]),m=p.event.special[t]||{},l||!m.trigger||!1!==m.trigger.apply(g,
d))){if(!l&&!m.noBubble&&!p.isWindow(g)){s=m.delegateType||t;for(yc.test(s+t)||(e=e.parentNode);e;e=e.parentNode)N.push(e),f=e;f===(g.ownerDocument||X)&&N.push(f.defaultView||f.parentWindow||b)}for(r=0;(e=N[r++])&&!c.isPropagationStopped();)c.type=1<r?s:m.bindType||t,(j=(S.get(e,"events")||{})[c.type]&&S.get(e,"handle"))&&j.apply(e,d),(j=q&&e[q])&&j.apply&&Kb(e)&&(c.result=j.apply(e,d),!1===c.result&&c.preventDefault());return c.type=t,l||c.isDefaultPrevented()||m._default&&!1!==m._default.apply(N.pop(),
d)||!Kb(g)||q&&p.isFunction(g[t])&&!p.isWindow(g)&&(f=g[q],f&&(g[q]=null),p.event.triggered=t,g[t](),p.event.triggered=void 0,f&&(g[q]=f)),c.result}},simulate:function(b,c,d){b=p.extend(new p.Event,d,{type:b,isSimulated:!0});p.event.trigger(b,null,c)}});p.fn.extend({trigger:function(b,c){return this.each(function(){p.event.trigger(b,c,this)})},triggerHandler:function(b,c){var d=this[0];if(d)return p.event.trigger(b,c,d,!0)}});p.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),
function(b,c){p.fn[c]=function(b,d){return 0<arguments.length?this.on(c,null,b,d):this.trigger(c)}});p.fn.extend({hover:function(b,c){return this.mouseenter(b).mouseleave(c||b)}});da.focusin="onfocusin"in b;da.focusin||p.each({focus:"focusin",blur:"focusout"},function(b,c){var d=function(b){p.event.simulate(c,b.target,p.event.fix(b))};p.event.special[c]={setup:function(){var g=this.ownerDocument||this,l=S.access(g,c);l||g.addEventListener(b,d,!0);S.access(g,c,(l||0)+1)},teardown:function(){var g=
this.ownerDocument||this,l=S.access(g,c)-1;l?S.access(g,c,l):(g.removeEventListener(b,d,!0),S.remove(g,c))}}});var yb=b.location,zc=p.now(),Vb=/\?/;p.parseXML=function(c){var d;if(!c||"string"!=typeof c)return null;try{d=(new b.DOMParser).parseFromString(c,"text/xml")}catch(g){d=void 0}return d&&!d.getElementsByTagName("parsererror").length||p.error("Invalid XML: "+c),d};var Oc=/\[\]$/,Ac=/\r?\n/g,sd=/^(?:submit|button|image|reset|file)$/i,td=/^(?:input|select|textarea|keygen)/i;p.param=function(b,
c){var d,g=[],l=function(b,c){var d=p.isFunction(c)?c():c;g[g.length]=encodeURIComponent(b)+"="+encodeURIComponent(null==d?"":d)};if(Array.isArray(b)||b.jquery&&!p.isPlainObject(b))p.each(b,function(){l(this.name,this.value)});else for(d in b)ha(d,b[d],c,l);return g.join("&")};p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var b=p.prop(this,"elements");return b?p.makeArray(b):this}).filter(function(){var b=this.type;return this.name&&
!p(this).is(":disabled")&&td.test(this.nodeName)&&!sd.test(b)&&(this.checked||!pc.test(b))}).map(function(b,c){var d=p(this).val();return null==d?null:Array.isArray(d)?p.map(d,function(b){return{name:c.name,value:b.replace(Ac,"\r\n")}}):{name:c.name,value:d.replace(Ac,"\r\n")}}).get()}});var ud=/%20/g,vd=/#.*$/,wd=/([?&])_=[^&]*/,xd=/^(.*?):[ \t]*([^\r\n]*)$/gm,yd=/^(?:GET|HEAD)$/,zd=/^\/\//,Bc={},Rb={},Cc="*/".concat("*"),Wb=X.createElement("a");Wb.href=yb.href;p.extend({active:0,lastModified:{},
etag:{},ajaxSettings:{url:yb.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(yb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Cc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,
"text html":!0,"text json":JSON.parse,"text xml":p.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(b,c){return c?oa(oa(b,p.ajaxSettings),c):oa(p.ajaxSettings,b)},ajaxPrefilter:ka(Bc),ajaxTransport:ka(Rb),ajax:function(c,d){function g(c,d,f,q){var N,t,F,R,ga=d;if(!j){j=!0;s&&b.clearTimeout(s);l=void 0;e=q||"";H.readyState=0<c?4:0;q=200<=c&&300>c||304===c;if(f){F=u;for(var n=H,y,A,Z,ha,B=F.contents,E=F.dataTypes;"*"===E[0];)E.shift(),void 0===y&&(y=F.mimeType||n.getResponseHeader("Content-Type"));
if(y)for(A in B)if(B[A]&&B[A].test(y)){E.unshift(A);break}if(E[0]in f)Z=E[0];else{for(A in f){if(!E[0]||F.converters[A+" "+E[0]]){Z=A;break}ha||(ha=A)}Z=Z||ha}F=f=Z?(Z!==E[0]&&E.unshift(Z),f[Z]):void 0}var oa;a:{f=u;y=F;A=H;Z=q;var ka,G,na;F={};n=f.dataTypes.slice();if(n[1])for(ka in f.converters)F[ka.toLowerCase()]=f.converters[ka];for(ha=n.shift();ha;)if(f.responseFields[ha]&&(A[f.responseFields[ha]]=y),!na&&Z&&f.dataFilter&&(y=f.dataFilter(y,f.dataType)),na=ha,ha=n.shift())if("*"===ha)ha=na;else if("*"!==
na&&na!==ha){if(ka=F[na+" "+ha]||F["* "+ha],!ka)for(oa in F)if(G=oa.split(" "),G[1]===ha&&(ka=F[na+" "+G[0]]||F["* "+G[0]])){!0===ka?ka=F[oa]:!0!==F[oa]&&(ha=G[0],n.unshift(G[1]));break}if(!0!==ka)if(ka&&f["throws"])y=ka(y);else try{y=ka(y)}catch(ua){oa={state:"parsererror",error:ka?ua:"No conversion from "+na+" to "+ha};break a}}oa={state:"success",data:y}}F=oa;q?(u.ifModified&&(R=H.getResponseHeader("Last-Modified"),R&&(p.lastModified[r]=R),R=H.getResponseHeader("etag"),R&&(p.etag[r]=R)),204===
c||"HEAD"===u.type?ga="nocontent":304===c?ga="notmodified":(ga=F.state,N=F.data,t=F.error,q=!t)):(t=ga,!c&&ga||(ga="error",0>c&&(c=0)));H.status=c;H.statusText=(d||ga)+"";q?K.resolveWith(C,[N,ga,H]):K.rejectWith(C,[H,ga,t]);H.statusCode(z);z=void 0;m&&V.trigger(q?"ajaxSuccess":"ajaxError",[H,u,q?N:t]);x.fireWith(C,[H,ga]);m&&(V.trigger("ajaxComplete",[H,u]),--p.active||p.event.trigger("ajaxStop"))}}"object"==typeof c&&(d=c,c=void 0);d=d||{};var l,r,e,f,s,q,j,m,N,t,u=p.ajaxSetup({},d),C=u.context||
u,V=u.context&&(C.nodeType||C.jquery)?p(C):p.event,K=p.Deferred(),x=p.Callbacks("once memory"),z=u.statusCode||{},F={},R={},ga="canceled",H={readyState:0,getResponseHeader:function(b){var c;if(j){if(!f)for(f={};c=xd.exec(e);)f[c[1].toLowerCase()]=c[2];c=f[b.toLowerCase()]}return null==c?null:c},getAllResponseHeaders:function(){return j?e:null},setRequestHeader:function(b,c){return null==j&&(b=R[b.toLowerCase()]=R[b.toLowerCase()]||b,F[b]=c),this},overrideMimeType:function(b){return null==j&&(u.mimeType=
b),this},statusCode:function(b){var c;if(b)if(j)H.always(b[H.status]);else for(c in b)z[c]=[z[c],b[c]];return this},abort:function(b){b=b||ga;return l&&l.abort(b),g(0,b),this}};if(K.promise(H),u.url=((c||u.url||yb.href)+"").replace(zd,yb.protocol+"//"),u.type=d.method||d.type||u.method||u.type,u.dataTypes=(u.dataType||"*").toLowerCase().match(ta)||[""],null==u.crossDomain){q=X.createElement("a");try{q.href=u.url,q.href=q.href,u.crossDomain=Wb.protocol+"//"+Wb.host!=q.protocol+"//"+q.host}catch(n){u.crossDomain=
!0}}if(u.data&&u.processData&&"string"!=typeof u.data&&(u.data=p.param(u.data,u.traditional)),na(Bc,u,d,H),j)return H;(m=p.event&&u.global)&&0===p.active++&&p.event.trigger("ajaxStart");u.type=u.type.toUpperCase();u.hasContent=!yd.test(u.type);r=u.url.replace(vd,"");u.hasContent?u.data&&u.processData&&0===(u.contentType||"").indexOf("application/x-www-form-urlencoded")&&(u.data=u.data.replace(ud,"+")):(t=u.url.slice(r.length),u.data&&(r+=(Vb.test(r)?"&":"?")+u.data,delete u.data),!1===u.cache&&(r=
r.replace(wd,"$1"),t=(Vb.test(r)?"&":"?")+"_="+zc++ +t),u.url=r+t);u.ifModified&&(p.lastModified[r]&&H.setRequestHeader("If-Modified-Since",p.lastModified[r]),p.etag[r]&&H.setRequestHeader("If-None-Match",p.etag[r]));(u.data&&u.hasContent&&!1!==u.contentType||d.contentType)&&H.setRequestHeader("Content-Type",u.contentType);H.setRequestHeader("Accept",u.dataTypes[0]&&u.accepts[u.dataTypes[0]]?u.accepts[u.dataTypes[0]]+("*"!==u.dataTypes[0]?", "+Cc+"; q=0.01":""):u.accepts["*"]);for(N in u.headers)H.setRequestHeader(N,
u.headers[N]);if(u.beforeSend&&(!1===u.beforeSend.call(C,H,u)||j))return H.abort();if(ga="abort",x.add(u.complete),H.done(u.success),H.fail(u.error),l=na(Rb,u,d,H)){if(H.readyState=1,m&&V.trigger("ajaxSend",[H,u]),j)return H;u.async&&0<u.timeout&&(s=b.setTimeout(function(){H.abort("timeout")},u.timeout));try{j=!1,l.send(F,g)}catch(y){if(j)throw y;g(-1,y)}}else g(-1,"No Transport");return H},getJSON:function(b,c,d){return p.get(b,c,d,"json")},getScript:function(b,c){return p.get(b,void 0,c,"script")}});
p.each(["get","post"],function(b,c){p[c]=function(b,d,g,l){return p.isFunction(d)&&(l=l||g,g=d,d=void 0),p.ajax(p.extend({url:b,type:c,dataType:l,data:d,success:g},p.isPlainObject(b)&&b))}});p._evalUrl=function(b){return p.ajax({url:b,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})};p.fn.extend({wrapAll:function(b){var c;return this[0]&&(p.isFunction(b)&&(b=b.call(this[0])),c=p(b,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&c.insertBefore(this[0]),c.map(function(){for(var b=
this;b.firstElementChild;)b=b.firstElementChild;return b}).append(this)),this},wrapInner:function(b){return p.isFunction(b)?this.each(function(c){p(this).wrapInner(b.call(this,c))}):this.each(function(){var c=p(this),d=c.contents();d.length?d.wrapAll(b):c.append(b)})},wrap:function(b){var c=p.isFunction(b);return this.each(function(d){p(this).wrapAll(c?b.call(this,d):b)})},unwrap:function(b){return this.parent(b).not("body").each(function(){p(this).replaceWith(this.childNodes)}),this}});p.expr.pseudos.hidden=
function(b){return!p.expr.pseudos.visible(b)};p.expr.pseudos.visible=function(b){return!(!b.offsetWidth&&!b.offsetHeight&&!b.getClientRects().length)};p.ajaxSettings.xhr=function(){try{return new b.XMLHttpRequest}catch(c){}};var Ad={"0":200,1223:204},zb=p.ajaxSettings.xhr();da.cors=!!zb&&"withCredentials"in zb;da.ajax=zb=!!zb;p.ajaxTransport(function(c){var d,g;if(da.cors||zb&&!c.crossDomain)return{send:function(l,r){var e,f=c.xhr();if(f.open(c.type,c.url,c.async,c.username,c.password),c.xhrFields)for(e in c.xhrFields)f[e]=
c.xhrFields[e];c.mimeType&&f.overrideMimeType&&f.overrideMimeType(c.mimeType);c.crossDomain||l["X-Requested-With"]||(l["X-Requested-With"]="XMLHttpRequest");for(e in l)f.setRequestHeader(e,l[e]);d=function(b){return function(){d&&(d=g=f.onload=f.onerror=f.onabort=f.onreadystatechange=null,"abort"===b?f.abort():"error"===b?"number"!=typeof f.status?r(0,"error"):r(f.status,f.statusText):r(Ad[f.status]||f.status,f.statusText,"text"!==(f.responseType||"text")||"string"!=typeof f.responseText?{binary:f.response}:
{text:f.responseText},f.getAllResponseHeaders()))}};f.onload=d();g=f.onerror=d("error");void 0!==f.onabort?f.onabort=g:f.onreadystatechange=function(){4===f.readyState&&b.setTimeout(function(){d&&g()})};d=d("abort");try{f.send(c.hasContent&&c.data||null)}catch(q){if(d)throw q;}},abort:function(){d&&d()}}});p.ajaxPrefilter(function(b){b.crossDomain&&(b.contents.script=!1)});p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},
converters:{"text script":function(b){return p.globalEval(b),b}}});p.ajaxPrefilter("script",function(b){void 0===b.cache&&(b.cache=!1);b.crossDomain&&(b.type="GET")});p.ajaxTransport("script",function(b){if(b.crossDomain){var c,d;return{send:function(g,l){c=p("<script>").prop({charset:b.scriptCharset,src:b.url}).on("load error",d=function(b){c.remove();d=null;b&&l("error"===b.type?404:200,b.type)});X.head.appendChild(c[0])},abort:function(){d&&d()}}}});var Dc=[],Xb=/(=)\?(?=&|$)|\?\?/;p.ajaxSetup({jsonp:"callback",
jsonpCallback:function(){var b=Dc.pop()||p.expando+"_"+zc++;return this[b]=!0,b}});p.ajaxPrefilter("json jsonp",function(c,d,g){var l,r,e,f=!1!==c.jsonp&&(Xb.test(c.url)?"url":"string"==typeof c.data&&0===(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&Xb.test(c.data)&&"data");if(f||"jsonp"===c.dataTypes[0])return l=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,f?c[f]=c[f].replace(Xb,"$1"+l):!1!==c.jsonp&&(c.url+=(Vb.test(c.url)?"&":"?")+c.jsonp+
"="+l),c.converters["script json"]=function(){return e||p.error(l+" was not called"),e[0]},c.dataTypes[0]="json",r=b[l],b[l]=function(){e=arguments},g.always(function(){void 0===r?p(b).removeProp(l):b[l]=r;c[l]&&(c.jsonpCallback=d.jsonpCallback,Dc.push(l));e&&p.isFunction(r)&&r(e[0]);e=r=void 0}),"script"});var Bd=da,Ec,Fc=X.implementation.createHTMLDocument("").body;Ec=(Fc.innerHTML="<form></form><form></form>",2===Fc.childNodes.length);Bd.createHTMLDocument=Ec;p.parseHTML=function(b,c,d){if("string"!=
typeof b)return[];"boolean"==typeof c&&(d=c,c=!1);var g,l,r;return c||(da.createHTMLDocument?(c=X.implementation.createHTMLDocument(""),g=c.createElement("base"),g.href=X.location.href,c.head.appendChild(g)):c=X),l=lc.exec(b),r=!d&&[],l?[c.createElement(l[1])]:(l=G([b],c,r),r&&r.length&&p(r).remove(),p.merge([],l.childNodes))};p.fn.load=function(b,c,d){var g,l,r,e=this,f=b.indexOf(" ");return-1<f&&(g=V(b.slice(f)),b=b.slice(0,f)),p.isFunction(c)?(d=c,c=void 0):c&&"object"==typeof c&&(l="POST"),0<
e.length&&p.ajax({url:b,type:l||"GET",dataType:"html",data:c}).done(function(b){r=arguments;e.html(g?p("<div>").append(p.parseHTML(b)).find(g):b)}).always(d&&function(b,c){e.each(function(){d.apply(this,r||[b.responseText,c,b])})}),this};p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(b,c){p.fn[c]=function(b){return this.on(c,b)}});p.expr.pseudos.animated=function(b){return p.grep(p.timers,function(c){return b===c.elem}).length};p.offset={setOffset:function(b,
c,d){var g,l,r,e,f,q,s=p.css(b,"position"),j=p(b),m={};"static"===s&&(b.style.position="relative");f=j.offset();r=p.css(b,"top");q=p.css(b,"left");("absolute"===s||"fixed"===s)&&-1<(r+q).indexOf("auto")?(g=j.position(),e=g.top,l=g.left):(e=parseFloat(r)||0,l=parseFloat(q)||0);p.isFunction(c)&&(c=c.call(b,d,p.extend({},f)));null!=c.top&&(m.top=c.top-f.top+e);null!=c.left&&(m.left=c.left-f.left+l);"using"in c?c.using.call(b,m):j.css(m)}};p.fn.extend({offset:function(b){if(arguments.length)return void 0===
b?this:this.each(function(c){p.offset.setOffset(this,b,c)});var c,d,g,l,r=this[0];if(r)return r.getClientRects().length?(g=r.getBoundingClientRect(),c=r.ownerDocument,d=c.documentElement,l=c.defaultView,{top:g.top+l.pageYOffset-d.clientTop,left:g.left+l.pageXOffset-d.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var b,c,d=this[0],g={top:0,left:0};return"fixed"===p.css(d,"position")?c=d.getBoundingClientRect():(b=this.offsetParent(),c=this.offset(),f(b[0],"html")||(g=b.offset()),g={top:g.top+
p.css(b[0],"borderTopWidth",!0),left:g.left+p.css(b[0],"borderLeftWidth",!0)}),{top:c.top-g.top-p.css(d,"marginTop",!0),left:c.left-g.left-p.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var b=this.offsetParent;b&&"static"===p.css(b,"position");)b=b.offsetParent;return b||Nb})}});p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;p.fn[b]=function(g){return Ia(this,function(b,g,l){var r;return p.isWindow(b)?r=b:9===b.nodeType&&
(r=b.defaultView),void 0===l?r?r[c]:b[g]:void(r?r.scrollTo(d?r.pageXOffset:l,d?l:r.pageYOffset):b[g]=l)},b,g,arguments.length)}});p.each(["top","left"],function(b,c){p.cssHooks[c]=u(da.pixelPosition,function(b,d){if(d)return d=s(b,c),Qb.test(d)?p(b).position()[c]+"px":d})});p.each({Height:"height",Width:"width"},function(b,c){p.each({padding:"inner"+b,content:c,"":"outer"+b},function(d,g){p.fn[g]=function(l,r){var e=arguments.length&&(d||"boolean"!=typeof l),f=d||(!0===l||!0===r?"margin":"border");
return Ia(this,function(c,d,l){var r;return p.isWindow(c)?0===g.indexOf("outer")?c["inner"+b]:c.document.documentElement["client"+b]:9===c.nodeType?(r=c.documentElement,Math.max(c.body["scroll"+b],r["scroll"+b],c.body["offset"+b],r["offset"+b],r["client"+b])):void 0===l?p.css(c,d,f):p.style(c,d,l,f)},c,e?l:void 0,e)}})});p.fn.extend({bind:function(b,c,d){return this.on(b,null,c,d)},unbind:function(b,c){return this.off(b,null,c)},delegate:function(b,c,d,g){return this.on(c,b,d,g)},undelegate:function(b,
c,d){return 1===arguments.length?this.off(b,"**"):this.off(c,b||"**",d)}});p.holdReady=function(b){b?p.readyWait++:p.ready(!0)};p.isArray=Array.isArray;p.parseJSON=JSON.parse;p.nodeName=f;"function"==typeof define&&define.amd&&define("jquery",[],function(){return p});var Cd=b.jQuery,Dd=b.$;return p.noConflict=function(c){return b.$===p&&(b.$=Dd),c&&b.jQuery===p&&(b.jQuery=Cd),p},c||(b.jQuery=b.$=p),p});
function getInternetExplorerVersion(){var b=-1;"Microsoft Internet Explorer"==navigator.appName&&null!=/MSIE ([0-9]{1,}[.0-9]{0,})/.exec(navigator.userAgent)&&(b=parseFloat(RegExp.$1));return b}var ie=getInternetExplorerVersion();function getQueryVariable(b){for(var c=window.location.search.substring(1).split("&"),d=0;d<c.length;d++){var e=c[d].split("=");if(decodeURIComponent(e[0])==b)return decodeURIComponent(e[1])}}this.jukebox={};
jukebox.Player=function(b,c){this.id=++jukebox.__jukeboxId;this.origin=c||null;this.settings={};for(var d in this.defaults)this.settings[d]=this.defaults[d];if("[object Object]"===Object.prototype.toString.call(b))for(var e in b)this.settings[e]=b[e];"[object Function]"===Object.prototype.toString.call(jukebox.Manager)&&(jukebox.Manager=new jukebox.Manager);this.resource=this.isPlaying=null;this.resource="[object Object]"===Object.prototype.toString.call(jukebox.Manager)?jukebox.Manager.getPlayableResource(this.settings.resources):
this.settings.resources[0]||null;if(null===this.resource)throw"Your browser can't playback the given resources - or you have missed to include jukebox.Manager";this.__init();return this};jukebox.__jukeboxId=0;
jukebox.Player.prototype={defaults:{resources:[],autoplay:!1,spritemap:{},flashMediaElement:"./swf/FlashMediaElement.swf",timeout:1E3},__addToManager:function(){!0!==this.__wasAddedToManager&&(jukebox.Manager.add(this),this.__wasAddedToManager=!0)},__init:function(){var b=this,c=this.settings,d={},e;jukebox.Manager&&void 0!==jukebox.Manager.features&&(d=jukebox.Manager.features);if(!0===d.html5audio){this.context=new Audio;this.context.src=this.resource;if(null===this.origin){var f=function(c){b.__addToManager(c)};
this.context.addEventListener("canplaythrough",f,!0);window.setTimeout(function(){b.context.removeEventListener("canplaythrough",f,!0);f("timeout")},c.timeout)}this.context.autobuffer=!0;this.context.preload=!0;for(e in this.HTML5API)this[e]=this.HTML5API[e];1<d.channels?!0===c.autoplay?this.context.autoplay=!0:void 0!==c.spritemap[c.autoplay]&&this.play(c.autoplay):1===d.channels&&void 0!==c.spritemap[c.autoplay]&&(this.backgroundMusic=c.spritemap[c.autoplay],this.backgroundMusic.started=Date.now?
Date.now():+new Date,this.play(c.autoplay));1==d.channels&&!0!==c.canPlayBackground&&(window.addEventListener("pagehide",function(){null!==b.isPlaying&&(b.pause(),b.__wasAutoPaused=!0)}),window.addEventListener("pageshow",function(){b.__wasAutoPaused&&(b.resume(),delete b._wasAutoPaused)}))}else if(!0===d.flashaudio){for(e in this.FLASHAPI)this[e]=this.FLASHAPI[e];d=["id=jukebox-flashstream-"+this.id,"autoplay="+c.autoplay,"file="+window.encodeURIComponent(this.resource)];this.__initFlashContext(d);
!0===c.autoplay?this.play(0):c.spritemap[c.autoplay]&&this.play(c.autoplay)}else throw"Your Browser does not support Flash Audio or HTML5 Audio.";},__initFlashContext:function(b){var c,d=this.settings.flashMediaElement,e,f={flashvars:b.join("&"),quality:"high",bgcolor:"#000000",wmode:"transparent",allowscriptaccess:"always",allowfullscreen:"true"};if(navigator.userAgent.match(/MSIE/)){c=document.createElement("div");document.getElementsByTagName("body")[0].appendChild(c);var j=document.createElement("object");
j.id="jukebox-flashstream-"+this.id;j.setAttribute("type","application/x-shockwave-flash");j.setAttribute("classid","clsid:d27cdb6e-ae6d-11cf-96b8-444553540000");j.setAttribute("width","0");j.setAttribute("height","0");f.movie=d+"?x="+(Date.now?Date.now():+new Date);f.flashvars=b.join("&amp;");for(e in f)b=document.createElement("param"),b.setAttribute("name",e),b.setAttribute("value",f[e]),j.appendChild(b);c.outerHTML=j.outerHTML;this.context=document.getElementById("jukebox-flashstream-"+this.id)}else{c=
document.createElement("embed");c.id="jukebox-flashstream-"+this.id;c.setAttribute("type","application/x-shockwave-flash");c.setAttribute("width","100");c.setAttribute("height","100");f.play=!1;f.loop=!1;f.src=d+"?x="+(Date.now?Date.now():+new Date);for(e in f)c.setAttribute(e,f[e]);document.getElementsByTagName("body")[0].appendChild(c);this.context=c}},backgroundHackForiOS:function(){if(void 0!==this.backgroundMusic){var b=Date.now?Date.now():+new Date;void 0===this.backgroundMusic.started?(this.backgroundMusic.started=
b,this.setCurrentTime(this.backgroundMusic.start)):(this.backgroundMusic.lastPointer=(b-this.backgroundMusic.started)/1E3%(this.backgroundMusic.end-this.backgroundMusic.start)+this.backgroundMusic.start,this.play(this.backgroundMusic.lastPointer))}},play:function(b,c){if(null!==this.isPlaying&&!0!==c)void 0!==jukebox.Manager&&jukebox.Manager.addToQueue(b,this.id);else{var d=this.settings.spritemap,e;if(void 0!==d[b])e=d[b].start;else if("number"===typeof b){e=b;for(var f in d)if(e>=d[f].start&&e<=
d[f].end){b=f;break}}void 0!==e&&"[object Object]"===Object.prototype.toString.call(d[b])&&(this.isPlaying=this.settings.spritemap[b],this.context.play&&this.context.play(),this.wasReady=this.setCurrentTime(e))}},stop:function(){this.__lastPosition=0;this.isPlaying=null;this.backgroundMusic?this.backgroundHackForiOS():this.context.pause();return!0},pause:function(){this.isPlaying=null;this.__lastPosition=this.getCurrentTime();this.context.pause();return this.__lastPosition},resume:function(b){b="number"===
typeof b?b:this.__lastPosition;if(null!==b)return this.play(b),this.__lastPosition=null,!0;this.context.play();return!1},HTML5API:{getVolume:function(){return this.context.volume||1},setVolume:function(b){this.context.volume=b;return 1E-4>Math.abs(this.context.volume-b)?!0:!1},getCurrentTime:function(){return this.context.currentTime||0},setCurrentTime:function(b){try{return this.context.currentTime=b,!0}catch(c){return!1}}},FLASHAPI:{getVolume:function(){return this.context&&"function"===typeof this.context.getVolume?
this.context.getVolume():1},setVolume:function(b){return this.context&&"function"===typeof this.context.setVolume?(this.context.setVolume(b),!0):!1},getCurrentTime:function(){return this.context&&"function"===typeof this.context.getCurrentTime?this.context.getCurrentTime():0},setCurrentTime:function(b){return this.context&&"function"===typeof this.context.setCurrentTime?this.context.setCurrentTime(b):!1}}};
if(void 0===this.jukebox)throw"jukebox.Manager requires jukebox.Player (Player.js) to run properly.";
jukebox.Manager=function(b){this.features={};this.codecs={};this.__players={};this.__playersLength=0;this.__clones={};this.__queue=[];this.settings={};for(var c in this.defaults)this.settings[c]=this.defaults[c];if("[object Object]"===Object.prototype.toString.call(b))for(var d in b)this.settings[d]=b[d];this.__detectFeatures();jukebox.Manager.__initialized=!1===this.settings.useGameLoop?window.setInterval(function(){jukebox.Manager.loop()},20):!0};
jukebox.Manager.prototype={defaults:{useFlash:!1,useGameLoop:!1},__detectFeatures:function(){var b=window.Audio&&new Audio;if(b&&b.canPlayType&&!1===this.settings.useFlash){for(var c=[{e:"3gp",m:["audio/3gpp","audio/amr"]},{e:"aac",m:["audio/aac","audio/aacp"]},{e:"amr",m:["audio/amr","audio/3gpp"]},{e:"caf",m:["audio/IMA-ADPCM","audio/x-adpcm",'audio/x-aiff; codecs="IMA-ADPCM, ADPCM"']},{e:"m4a",m:'audio/mp4{audio/mp4; codecs="mp4a.40.2,avc1.42E01E"{audio/mpeg4{audio/mpeg4-generic{audio/mp4a-latm{audio/MP4A-LATM{audio/x-m4a'.split("{")},
{e:"mp3",m:["audio/mp3","audio/mpeg",'audio/mpeg; codecs="mp3"',"audio/MPA","audio/mpa-robust"]},{e:"mpga",m:["audio/MPA","audio/mpa-robust","audio/mpeg","video/mpeg"]},{e:"mp4",m:["audio/mp4","video/mp4"]},{e:"ogg",m:["application/ogg","audio/ogg",'audio/ogg; codecs="theora, vorbis"',"video/ogg",'video/ogg; codecs="theora, vorbis"']},{e:"wav",m:["audio/wave","audio/wav",'audio/wav; codecs="1"',"audio/x-wav","audio/x-pn-wav"]},{e:"webm",m:["audio/webm",'audio/webm; codecs="vorbis"',"video/webm"]}],
d,e,f=0,j=c.length;f<j;f++)if(e=c[f].e,c[f].m.length&&"object"===typeof c[f].m)for(var n=0,m=c[f].m.length;n<m;n++)if(d=c[f].m[n],""!==b.canPlayType(d)){this.codecs[e]=d;break}else this.codecs[e]||(this.codecs[e]=!1);this.features.html5audio=!(!this.codecs.mp3&&!this.codecs.ogg&&!this.codecs.webm&&!this.codecs.wav);this.features.channels=8;b.volume=0.1337;this.features.volume=!!(1E-4>Math.abs(b.volume-0.1337));navigator.userAgent.match(/iPhone|iPod|iPad/i)&&(this.features.channels=1)}this.features.flashaudio=
!!navigator.mimeTypes["application/x-shockwave-flash"]||!!navigator.plugins["Shockwave Flash"]||!1;if(window.ActiveXObject)try{new ActiveXObject("ShockwaveFlash.ShockwaveFlash.10"),this.features.flashaudio=!0}catch(g){}!0===this.settings.useFlash&&(this.features.flashaudio=!0);!0===this.features.flashaudio&&!this.features.html5audio&&(this.codecs.mp3="audio/mp3",this.codecs.mpga="audio/mpeg",this.codecs.mp4="audio/mp4",this.codecs.m4a="audio/mp4",this.codecs["3gp"]="audio/3gpp",this.codecs.amr="audio/amr",
this.features.volume=!0,this.features.channels=1)},__getPlayerById:function(b){return this.__players&&void 0!==this.__players[b]?this.__players[b]:null},__getClone:function(b,c){for(var d in this.__clones){var e=this.__clones[d];if(null===e.isPlaying&&e.origin===b)return e}if("[object Object]"===Object.prototype.toString.call(c)){d={};for(var f in c)d[f]=c[f];d.autoplay=!1;f=new jukebox.Player(d,b);f.isClone=!0;f.wasReady=!1;return this.__clones[f.id]=f}return null},loop:function(){if(0!==this.__playersLength)if(this.__queue.length&&
this.__playersLength<this.features.channels){var b=this.__queue[0],c=this.__getPlayerById(b.origin);if(null!==c){var d=this.__getClone(b.origin,c.settings);null!==d&&(!0===this.features.volume&&(c=this.__players[b.origin])&&d.setVolume(c.getVolume()),this.add(d),d.play(b.pointer,!0))}this.__queue.splice(0,1)}else for(d in this.__queue.length&&1===this.features.channels&&(b=this.__queue[0],c=this.__getPlayerById(b.origin),null!==c&&c.play(b.pointer,!0),this.__queue.splice(0,1)),this.__players)b=this.__players[d],
c=b.getCurrentTime()||0,b.isPlaying&&!1===b.wasReady?b.wasReady=b.setCurrentTime(b.isPlaying.start):b.isPlaying&&!0===b.wasReady?c>b.isPlaying.end&&(!0===b.isPlaying.loop?b.play(b.isPlaying.start,!0):b.stop()):b.isClone&&null===b.isPlaying?this.remove(b):void 0!==b.backgroundMusic&&null===b.isPlaying&&c>b.backgroundMusic.end&&b.backgroundHackForiOS()},getPlayableResource:function(b){"[object Array]"!==Object.prototype.toString.call(b)&&(b=[b]);for(var c=0,d=b.length;c<d;c++){var e=b[c],f=e.match(/\.([^\.]*)$/)[1];
if(f&&this.codecs[f])return e}return null},add:function(b){return b instanceof jukebox.Player&&void 0===this.__players[b.id]?(this.__playersLength++,this.__players[b.id]=b,!0):!1},remove:function(b){return b instanceof jukebox.Player&&void 0!==this.__players[b.id]?(this.__playersLength--,delete this.__players[b.id],!0):!1},addToQueue:function(b,c){return("string"===typeof b||"number"===typeof b)&&void 0!==this.__players[c]?(this.__queue.push({pointer:b,origin:c}),!0):!1}};
(function(){var b=function(){this.init()};b.prototype={init:function(){var b=this||c;b._counter=1E3;b._codecs={};b._howls=[];b._muted=!1;b._volume=1;b._canPlayEvent="canplaythrough";b._navigator="undefined"!==typeof window&&window.navigator?window.navigator:null;b.masterGain=null;b.noAudio=!1;b.usingWebAudio=!0;b.autoSuspend=!0;b.ctx=null;b.mobileAutoEnable=!0;b._setup();return b},volume:function(b){var d=this||c;b=parseFloat(b);d.ctx||m();if("undefined"!==typeof b&&0<=b&&1>=b){d._volume=b;if(d._muted)return d;
d.usingWebAudio&&d.masterGain.gain.setValueAtTime(b,c.ctx.currentTime);for(var e=0;e<d._howls.length;e++)if(!d._howls[e]._webAudio)for(var f=d._howls[e]._getSoundIds(),j=0;j<f.length;j++){var n=d._howls[e]._soundById(f[j]);n&&n._node&&(n._node.volume=n._volume*b)}return d}return d._volume},mute:function(b){var d=this||c;d.ctx||m();d._muted=b;d.usingWebAudio&&d.masterGain.gain.setValueAtTime(b?0:d._volume,c.ctx.currentTime);for(var e=0;e<d._howls.length;e++)if(!d._howls[e]._webAudio)for(var f=d._howls[e]._getSoundIds(),
j=0;j<f.length;j++){var n=d._howls[e]._soundById(f[j]);n&&n._node&&(n._node.muted=b?!0:n._muted)}return d},unload:function(){for(var b=this||c,d=b._howls.length-1;0<=d;d--)b._howls[d].unload();b.usingWebAudio&&b.ctx&&"undefined"!==typeof b.ctx.close&&(b.ctx.close(),b.ctx=null,m());return b},codecs:function(b){return(this||c)._codecs[b.replace(/^x-/,"")]},_setup:function(){var b=this||c;b.state=b.ctx?b.ctx.state||"running":"running";b._autoSuspend();if(!b.usingWebAudio)if("undefined"!==typeof Audio)try{var d=
new Audio;"undefined"===typeof d.oncanplaythrough&&(b._canPlayEvent="canplay")}catch(e){b.noAudio=!0}else b.noAudio=!0;try{d=new Audio,d.muted&&(b.noAudio=!0)}catch(f){}b.noAudio||b._setupCodecs();return b},_setupCodecs:function(){var b=this||c,d=null;try{d="undefined"!==typeof Audio?new Audio:null}catch(e){return b}if(!d||"function"!==typeof d.canPlayType)return b;var f=d.canPlayType("audio/mpeg;").replace(/^no$/,""),j=b._navigator&&b._navigator.userAgent.match(/OPR\/([0-6].)/g),j=j&&33>parseInt(j[0].split("/")[1],
10);b._codecs={mp3:!(j||!f&&!d.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!f,opus:!!d.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!d.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!d.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!d.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),aac:!!d.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!d.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(d.canPlayType("audio/x-m4a;")||
d.canPlayType("audio/m4a;")||d.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(d.canPlayType("audio/x-mp4;")||d.canPlayType("audio/mp4;")||d.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!d.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),webm:!!d.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),dolby:!!d.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(d.canPlayType("audio/x-flac;")||d.canPlayType("audio/flac;")).replace(/^no$/,"")};return b},
_enableMobileAudio:function(){var b=this||c,d=/iPhone|iPad|iPod|Android|BlackBerry|BB10|Silk|Mobi/i.test(b._navigator&&b._navigator.userAgent),e=!!("ontouchend"in window||b._navigator&&0<b._navigator.maxTouchPoints||b._navigator&&0<b._navigator.msMaxTouchPoints);if(!b._mobileEnabled&&b.ctx&&(d||e)){b._mobileEnabled=!1;!b._mobileUnloaded&&44100!==b.ctx.sampleRate&&(b._mobileUnloaded=!0,b.unload());b._scratchBuffer=b.ctx.createBuffer(1,1,22050);var f=function(){c._autoResume();var d=b.ctx.createBufferSource();
d.buffer=b._scratchBuffer;d.connect(b.ctx.destination);"undefined"===typeof d.start?d.noteOn(0):d.start(0);"function"===typeof b.ctx.resume&&b.ctx.resume();d.onended=function(){d.disconnect(0);b._mobileEnabled=!0;b.mobileAutoEnable=!1;document.removeEventListener("touchstart",f,!0);document.removeEventListener("touchend",f,!0)}};document.addEventListener("touchstart",f,!0);document.addEventListener("touchend",f,!0);return b}},_autoSuspend:function(){var b=this;if(b.autoSuspend&&b.ctx&&"undefined"!==
typeof b.ctx.suspend&&c.usingWebAudio){for(var d=0;d<b._howls.length;d++)if(b._howls[d]._webAudio)for(var e=0;e<b._howls[d]._sounds.length;e++)if(!b._howls[d]._sounds[e]._paused)return b;b._suspendTimer&&clearTimeout(b._suspendTimer);b._suspendTimer=setTimeout(function(){b.autoSuspend&&(b._suspendTimer=null,b.state="suspending",b.ctx.suspend().then(function(){b.state="suspended";b._resumeAfterSuspend&&(delete b._resumeAfterSuspend,b._autoResume())}))},3E4);return b}},_autoResume:function(){var b=
this;if(b.ctx&&"undefined"!==typeof b.ctx.resume&&c.usingWebAudio)return"running"===b.state&&b._suspendTimer?(clearTimeout(b._suspendTimer),b._suspendTimer=null):"suspended"===b.state?(b.ctx.resume().then(function(){b.state="running";for(var c=0;c<b._howls.length;c++)b._howls[c]._emit("resume")}),b._suspendTimer&&(clearTimeout(b._suspendTimer),b._suspendTimer=null)):"suspending"===b.state&&(b._resumeAfterSuspend=!0),b}};var c=new b,d=function(b){!b.src||0===b.src.length?console.error("An array of source files must be passed with any new Howl."):
this.init(b)};d.prototype={init:function(b){var d=this;c.ctx||m();d._autoplay=b.autoplay||!1;d._format="string"!==typeof b.format?b.format:[b.format];d._html5=b.html5||!1;d._muted=b.mute||!1;d._loop=b.loop||!1;d._pool=b.pool||5;d._preload="boolean"===typeof b.preload?b.preload:!0;d._rate=b.rate||1;d._sprite=b.sprite||{};d._src="string"!==typeof b.src?b.src:[b.src];d._volume=void 0!==b.volume?b.volume:1;d._xhrWithCredentials=b.xhrWithCredentials||!1;d._duration=0;d._state="unloaded";d._sounds=[];d._endTimers=
{};d._queue=[];d._playLock=!1;d._onend=b.onend?[{fn:b.onend}]:[];d._onfade=b.onfade?[{fn:b.onfade}]:[];d._onload=b.onload?[{fn:b.onload}]:[];d._onloaderror=b.onloaderror?[{fn:b.onloaderror}]:[];d._onplayerror=b.onplayerror?[{fn:b.onplayerror}]:[];d._onpause=b.onpause?[{fn:b.onpause}]:[];d._onplay=b.onplay?[{fn:b.onplay}]:[];d._onstop=b.onstop?[{fn:b.onstop}]:[];d._onmute=b.onmute?[{fn:b.onmute}]:[];d._onvolume=b.onvolume?[{fn:b.onvolume}]:[];d._onrate=b.onrate?[{fn:b.onrate}]:[];d._onseek=b.onseek?
[{fn:b.onseek}]:[];d._onresume=[];d._webAudio=c.usingWebAudio&&!d._html5;"undefined"!==typeof c.ctx&&c.ctx&&c.mobileAutoEnable&&c._enableMobileAudio();c._howls.push(d);d._autoplay&&d._queue.push({event:"play",action:function(){d.play()}});d._preload&&d.load();return d},load:function(){var b=null;if(c.noAudio)this._emit("loaderror",null,"No audio support.");else{"string"===typeof this._src&&(this._src=[this._src]);for(var d=0;d<this._src.length;d++){var m,y;if(this._format&&this._format[d])m=this._format[d];
else{y=this._src[d];if("string"!==typeof y){this._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}(m=/^data:audio\/([^;,]+);/i.exec(y))||(m=/\.([^.]+)$/.exec(y.split("?",1)[0]));m&&(m=m[1].toLowerCase())}m||console.warn('No file extension was found. Consider using the "format" property or specify an extension.');if(m&&c.codecs(m)){b=this._src[d];break}}if(b){this._src=b;this._state="loading";"https:"===window.location.protocol&&"http:"===b.slice(0,5)&&(this._html5=
!0,this._webAudio=!1);new e(this);if(this._webAudio){var A=this,B=A._src;if(f[B])A._duration=f[B].duration,n(A);else if(/^data:[^;]+;base64,/.test(B)){b=atob(B.split(",")[1]);d=new Uint8Array(b.length);for(m=0;m<b.length;++m)d[m]=b.charCodeAt(m);j(d.buffer,A)}else{var I=new XMLHttpRequest;I.open("GET",B,!0);I.withCredentials=A._xhrWithCredentials;I.responseType="arraybuffer";I.onload=function(){var b=(I.status+"")[0];"0"!==b&&"2"!==b&&"3"!==b?A._emit("loaderror",null,"Failed loading audio file with status: "+
I.status+"."):j(I.response,A)};I.onerror=function(){A._webAudio&&(A._html5=!0,A._webAudio=!1,A._sounds=[],delete f[B],A.load())};try{I.send()}catch(D){I.onerror()}}}return this}this._emit("loaderror",null,"No codec support for selected audio sources.")}},play:function(b,d){var e=this,f=null;if("number"===typeof b)f=b,b=null;else{if("string"===typeof b&&"loaded"===e._state&&!e._sprite[b])return null;if("undefined"===typeof b){b="__default";for(var j=0,m=0;m<e._sounds.length;m++)e._sounds[m]._paused&&
!e._sounds[m]._ended&&(j++,f=e._sounds[m]._id);1===j?b=null:f=null}}var n=f?e._soundById(f):e._inactiveSound();if(!n)return null;f&&!b&&(b=n._sprite||"__default");if("loaded"!==e._state){n._sprite=b;n._ended=!1;var D=n._id;e._queue.push({event:"play",action:function(){e.play(D)}});return D}if(f&&!n._paused)return d||e._loadQueue("play"),n._id;e._webAudio&&c._autoResume();var x=Math.max(0,0<n._seek?n._seek:e._sprite[b][0]/1E3),G=Math.max(0,(e._sprite[b][0]+e._sprite[b][1])/1E3-x),E=1E3*G/Math.abs(n._rate);
n._paused=!1;n._ended=!1;n._sprite=b;n._seek=x;n._start=e._sprite[b][0]/1E3;n._stop=(e._sprite[b][0]+e._sprite[b][1])/1E3;n._loop=!(!n._loop&&!e._sprite[b][2]);var L=n._node;if(e._webAudio)f=function(){e._refreshBuffer(n);L.gain.setValueAtTime(n._muted||e._muted?0:n._volume,c.ctx.currentTime);n._playStart=c.ctx.currentTime;"undefined"===typeof L.bufferSource.start?n._loop?L.bufferSource.noteGrainOn(0,x,86400):L.bufferSource.noteGrainOn(0,x,G):n._loop?L.bufferSource.start(0,x,86400):L.bufferSource.start(0,
x,G);Infinity!==E&&(e._endTimers[n._id]=setTimeout(e._ended.bind(e,n),E));d||setTimeout(function(){e._emit("play",n._id)},0)},"running"===c.state?f():(e.once("resume",f),e._clearTimer(n._id));else{var M=function(){L.currentTime=x;L.muted=n._muted||e._muted||c._muted||L.muted;L.volume=n._volume*c.volume();L.playbackRate=n._rate;try{var f=L.play();if("undefined"!==typeof Promise&&f instanceof Promise){e._playLock=!0;var j=function(){e._playLock=!1;d||e._emit("play",n._id)};f.then(j,j)}else d||e._emit("play",
n._id);L.playbackRate=n._rate;L.paused?e._emit("playerror",n._id,"Playback was unable to start. This is most commonly an issue on mobile devices where playback was not within a user interaction."):"__default"!==b||n._loop?e._endTimers[n._id]=setTimeout(e._ended.bind(e,n),E):(e._endTimers[n._id]=function(){e._ended(n);L.removeEventListener("ended",e._endTimers[n._id],!1)},L.addEventListener("ended",e._endTimers[n._id],!1))}catch(m){e._emit("playerror",n._id,m)}},f=window&&window.ejecta||!L.readyState&&
c._navigator.isCocoonJS;if(3<=L.readyState||f)M();else{var Q=function(){M();L.removeEventListener(c._canPlayEvent,Q,!1)};L.addEventListener(c._canPlayEvent,Q,!1);e._clearTimer(n._id)}}return n._id},pause:function(b,c){var d=this;if("loaded"!==d._state||d._playLock)return d._queue.push({event:"pause",action:function(){d.pause(b)}}),d;for(var e=d._getSoundIds(b),f=0;f<e.length;f++){d._clearTimer(e[f]);var j=d._soundById(e[f]);if(j&&!j._paused&&(j._seek=d.seek(e[f]),j._rateSeek=0,j._paused=!0,d._stopFade(e[f]),
j._node))if(d._webAudio){if(!j._node.bufferSource)continue;"undefined"===typeof j._node.bufferSource.stop?j._node.bufferSource.noteOff(0):j._node.bufferSource.stop(0);d._cleanBuffer(j._node)}else(!isNaN(j._node.duration)||Infinity===j._node.duration)&&j._node.pause();c||d._emit("pause",j?j._id:null)}return d},stop:function(b,c){var d=this;if("loaded"!==d._state)return d._queue.push({event:"stop",action:function(){d.stop(b)}}),d;for(var e=d._getSoundIds(b),f=0;f<e.length;f++){d._clearTimer(e[f]);var j=
d._soundById(e[f]);if(j){j._seek=j._start||0;j._rateSeek=0;j._paused=!0;j._ended=!0;d._stopFade(e[f]);if(j._node)if(d._webAudio)j._node.bufferSource&&("undefined"===typeof j._node.bufferSource.stop?j._node.bufferSource.noteOff(0):j._node.bufferSource.stop(0),d._cleanBuffer(j._node));else if(!isNaN(j._node.duration)||Infinity===j._node.duration)j._node.currentTime=j._start||0,j._node.pause();c||d._emit("stop",j._id)}}return d},mute:function(b,d){var e=this;if("loaded"!==e._state)return e._queue.push({event:"mute",
action:function(){e.mute(b,d)}}),e;if("undefined"===typeof d)if("boolean"===typeof b)e._muted=b;else return e._muted;for(var f=e._getSoundIds(d),j=0;j<f.length;j++){var m=e._soundById(f[j]);m&&(m._muted=b,m._interval&&e._stopFade(m._id),e._webAudio&&m._node?m._node.gain.setValueAtTime(b?0:m._volume,c.ctx.currentTime):m._node&&(m._node.muted=c._muted?!0:b),e._emit("mute",m._id))}return e},volume:function(){var b=this,d=arguments,e,f;if(0===d.length)return b._volume;1===d.length||2===d.length&&"undefined"===
typeof d[1]?0<=b._getSoundIds().indexOf(d[0])?f=parseInt(d[0],10):e=parseFloat(d[0]):2<=d.length&&(e=parseFloat(d[0]),f=parseInt(d[1],10));var j;if("undefined"!==typeof e&&0<=e&&1>=e){if("loaded"!==b._state)return b._queue.push({event:"volume",action:function(){b.volume.apply(b,d)}}),b;"undefined"===typeof f&&(b._volume=e);f=b._getSoundIds(f);for(var m=0;m<f.length;m++)if(j=b._soundById(f[m]))j._volume=e,d[2]||b._stopFade(f[m]),b._webAudio&&j._node&&!j._muted?j._node.gain.setValueAtTime(e,c.ctx.currentTime):
j._node&&!j._muted&&(j._node.volume=e*c.volume()),b._emit("volume",j._id)}else return(j=f?b._soundById(f):b._sounds[0])?j._volume:0;return b},fade:function(b,d,e,f){var j=this;if("loaded"!==j._state)return j._queue.push({event:"fade",action:function(){j.fade(b,d,e,f)}}),j;j.volume(b,f);for(var m=j._getSoundIds(f),n=0;n<m.length;n++){var D=j._soundById(m[n]);if(D){f||j._stopFade(m[n]);if(j._webAudio&&!D._muted){var x=c.ctx.currentTime,G=x+e/1E3;D._volume=b;D._node.gain.setValueAtTime(b,x);D._node.gain.linearRampToValueAtTime(d,
G)}j._startFadeInterval(D,b,d,e,m[n],"undefined"===typeof f)}}return j},_startFadeInterval:function(b,c,d,e,f,j){var m=this,n=c,x=d-c;f=Math.abs(x/0.01);f=Math.max(4,0<f?e/f:e);var G=Date.now();b._fadeTo=d;b._interval=setInterval(function(){var f=(Date.now()-G)/e;G=Date.now();n+=x*f;n=Math.max(0,n);n=Math.min(1,n);n=Math.round(100*n)/100;m._webAudio?b._volume=n:m.volume(n,b._id,!0);j&&(m._volume=n);if(d<c&&n<=d||d>c&&n>=d)clearInterval(b._interval),b._interval=null,b._fadeTo=null,m.volume(d,b._id),
m._emit("fade",b._id)},f)},_stopFade:function(b){var d=this._soundById(b);d&&d._interval&&(this._webAudio&&d._node.gain.cancelScheduledValues(c.ctx.currentTime),clearInterval(d._interval),d._interval=null,this.volume(d._fadeTo,b),d._fadeTo=null,this._emit("fade",b));return this},loop:function(){var b=arguments,c,d;if(0===b.length)return this._loop;if(1===b.length)if("boolean"===typeof b[0])this._loop=c=b[0];else return(b=this._soundById(parseInt(b[0],10)))?b._loop:!1;else 2===b.length&&(c=b[0],d=
parseInt(b[1],10));d=this._getSoundIds(d);for(var e=0;e<d.length;e++)if(b=this._soundById(d[e]))if(b._loop=c,this._webAudio&&b._node&&b._node.bufferSource&&(b._node.bufferSource.loop=c))b._node.bufferSource.loopStart=b._start||0,b._node.bufferSource.loopEnd=b._stop;return this},rate:function(){var b=this,d=arguments,e,f;0===d.length?f=b._sounds[0]._id:1===d.length?0<=b._getSoundIds().indexOf(d[0])?f=parseInt(d[0],10):e=parseFloat(d[0]):2===d.length&&(e=parseFloat(d[0]),f=parseInt(d[1],10));var j;
if("number"===typeof e){if("loaded"!==b._state)return b._queue.push({event:"rate",action:function(){b.rate.apply(b,d)}}),b;"undefined"===typeof f&&(b._rate=e);f=b._getSoundIds(f);for(var m=0;m<f.length;m++)if(j=b._soundById(f[m])){j._rateSeek=b.seek(f[m]);j._playStart=b._webAudio?c.ctx.currentTime:j._playStart;j._rate=e;b._webAudio&&j._node&&j._node.bufferSource?j._node.bufferSource.playbackRate.setValueAtTime(e,c.ctx.currentTime):j._node&&(j._node.playbackRate=e);var n=b.seek(f[m]),n=1E3*((b._sprite[j._sprite][0]+
b._sprite[j._sprite][1])/1E3-n)/Math.abs(j._rate);if(b._endTimers[f[m]]||!j._paused)b._clearTimer(f[m]),b._endTimers[f[m]]=setTimeout(b._ended.bind(b,j),n);b._emit("rate",j._id)}}else return(j=b._soundById(f))?j._rate:b._rate;return b},seek:function(){var b=this,d=arguments,e,f;0===d.length?f=b._sounds[0]._id:1===d.length?0<=b._getSoundIds().indexOf(d[0])?f=parseInt(d[0],10):b._sounds.length&&(f=b._sounds[0]._id,e=parseFloat(d[0])):2===d.length&&(e=parseFloat(d[0]),f=parseInt(d[1],10));if("undefined"===
typeof f)return b;if("loaded"!==b._state)return b._queue.push({event:"seek",action:function(){b.seek.apply(b,d)}}),b;var j=b._soundById(f);if(j)if("number"===typeof e&&0<=e){var m=b.playing(f);m&&b.pause(f,!0);j._seek=e;j._ended=!1;b._clearTimer(f);m&&b.play(f,!0);!b._webAudio&&j._node&&(j._node.currentTime=e);if(m&&!b._webAudio){var n=function(){b._playLock?setTimeout(n,0):b._emit("seek",f)};setTimeout(n,0)}else b._emit("seek",f)}else return b._webAudio?(e=b.playing(f)?c.ctx.currentTime-j._playStart:
0,j._seek+((j._rateSeek?j._rateSeek-j._seek:0)+e*Math.abs(j._rate))):j._node.currentTime;return b},playing:function(b){if("number"===typeof b)return(b=this._soundById(b))?!b._paused:!1;for(b=0;b<this._sounds.length;b++)if(!this._sounds[b]._paused)return!0;return!1},duration:function(b){var c=this._duration;(b=this._soundById(b))&&(c=this._sprite[b._sprite][1]/1E3);return c},state:function(){return this._state},unload:function(){for(var b=this._sounds,d=0;d<b.length;d++){b[d]._paused||this.stop(b[d]._id);
this._webAudio||(/MSIE |Trident\//.test(c._navigator&&c._navigator.userAgent)||(b[d]._node.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"),b[d]._node.removeEventListener("error",b[d]._errorFn,!1),b[d]._node.removeEventListener(c._canPlayEvent,b[d]._loadFn,!1));delete b[d]._node;this._clearTimer(b[d]._id);var e=c._howls.indexOf(this);0<=e&&c._howls.splice(e,1)}b=!0;for(d=0;d<c._howls.length;d++)if(c._howls[d]._src===this._src){b=!1;break}f&&b&&delete f[this._src];
c.noAudio=!1;this._state="unloaded";this._sounds=[];return null},on:function(b,c,d,e){b=this["_on"+b];"function"===typeof c&&b.push(e?{id:d,fn:c,once:e}:{id:d,fn:c});return this},off:function(b,c,d){var e=this["_on"+b],f=0;"number"===typeof c&&(d=c,c=null);if(c||d)for(f=0;f<e.length;f++){if(b=d===e[f].id,c===e[f].fn&&b||!c&&b){e.splice(f,1);break}}else if(b)this["_on"+b]=[];else{c=Object.keys(this);for(f=0;f<c.length;f++)0===c[f].indexOf("_on")&&Array.isArray(this[c[f]])&&(this[c[f]]=[])}return this},
once:function(b,c,d){this.on(b,c,d,1);return this},_emit:function(b,c,d){for(var e=this["_on"+b],f=e.length-1;0<=f;f--)if(!e[f].id||e[f].id===c||"load"===b)setTimeout(function(b){b.call(this,c,d)}.bind(this,e[f].fn),0),e[f].once&&this.off(b,e[f].fn,e[f].id);this._loadQueue(b);return this},_loadQueue:function(b){if(0<this._queue.length){var c=this._queue[0];c.event===b&&(this._queue.shift(),this._loadQueue());b||c.action()}return this},_ended:function(b){var d=b._sprite;if(!this._webAudio&&b._node&&
!b._node.paused&&!b._node.ended&&b._node.currentTime<b._stop)return setTimeout(this._ended.bind(this,b),100),this;d=!(!b._loop&&!this._sprite[d][2]);this._emit("end",b._id);!this._webAudio&&d&&this.stop(b._id,!0).play(b._id);if(this._webAudio&&d){this._emit("play",b._id);b._seek=b._start||0;b._rateSeek=0;b._playStart=c.ctx.currentTime;var e=1E3*(b._stop-b._start)/Math.abs(b._rate);this._endTimers[b._id]=setTimeout(this._ended.bind(this,b),e)}this._webAudio&&!d&&(b._paused=!0,b._ended=!0,b._seek=b._start||
0,b._rateSeek=0,this._clearTimer(b._id),this._cleanBuffer(b._node),c._autoSuspend());!this._webAudio&&!d&&this.stop(b._id);return this},_clearTimer:function(b){if(this._endTimers[b]){if("function"!==typeof this._endTimers[b])clearTimeout(this._endTimers[b]);else{var c=this._soundById(b);c&&c._node&&c._node.removeEventListener("ended",this._endTimers[b],!1)}delete this._endTimers[b]}return this},_soundById:function(b){for(var c=0;c<this._sounds.length;c++)if(b===this._sounds[c]._id)return this._sounds[c];
return null},_inactiveSound:function(){this._drain();for(var b=0;b<this._sounds.length;b++)if(this._sounds[b]._ended)return this._sounds[b].reset();return new e(this)},_drain:function(){var b=this._pool,c=0,d=0;if(!(this._sounds.length<b)){for(d=0;d<this._sounds.length;d++)this._sounds[d]._ended&&c++;for(d=this._sounds.length-1;0<=d&&!(c<=b);d--)this._sounds[d]._ended&&(this._webAudio&&this._sounds[d]._node&&this._sounds[d]._node.disconnect(0),this._sounds.splice(d,1),c--)}},_getSoundIds:function(b){if("undefined"===
typeof b){b=[];for(var c=0;c<this._sounds.length;c++)b.push(this._sounds[c]._id);return b}return[b]},_refreshBuffer:function(b){b._node.bufferSource=c.ctx.createBufferSource();b._node.bufferSource.buffer=f[this._src];b._panner?b._node.bufferSource.connect(b._panner):b._node.bufferSource.connect(b._node);if(b._node.bufferSource.loop=b._loop)b._node.bufferSource.loopStart=b._start||0,b._node.bufferSource.loopEnd=b._stop;b._node.bufferSource.playbackRate.setValueAtTime(b._rate,c.ctx.currentTime);return this},
_cleanBuffer:function(b){if(c._scratchBuffer){b.bufferSource.onended=null;b.bufferSource.disconnect(0);try{b.bufferSource.buffer=c._scratchBuffer}catch(d){}}b.bufferSource=null;return this}};var e=function(b){this._parent=b;this.init()};e.prototype={init:function(){var b=this._parent;this._muted=b._muted;this._loop=b._loop;this._volume=b._volume;this._rate=b._rate;this._seek=0;this._ended=this._paused=!0;this._sprite="__default";this._id=++c._counter;b._sounds.push(this);this.create();return this},
create:function(){var b=this._parent,d=c._muted||this._muted||this._parent._muted?0:this._volume;b._webAudio?(this._node="undefined"===typeof c.ctx.createGain?c.ctx.createGainNode():c.ctx.createGain(),this._node.gain.setValueAtTime(d,c.ctx.currentTime),this._node.paused=!0,this._node.connect(c.masterGain)):(this._node=new Audio,this._errorFn=this._errorListener.bind(this),this._node.addEventListener("error",this._errorFn,!1),this._loadFn=this._loadListener.bind(this),this._node.addEventListener(c._canPlayEvent,
this._loadFn,!1),this._node.src=b._src,this._node.preload="auto",this._node.volume=d*c.volume(),this._node.load());return this},reset:function(){var b=this._parent;this._muted=b._muted;this._loop=b._loop;this._volume=b._volume;this._rate=b._rate;this._rateSeek=this._seek=0;this._ended=this._paused=!0;this._sprite="__default";this._id=++c._counter;return this},_errorListener:function(){this._parent._emit("loaderror",this._id,this._node.error?this._node.error.code:0);this._node.removeEventListener("error",
this._errorFn,!1)},_loadListener:function(){var b=this._parent;b._duration=Math.ceil(10*this._node.duration)/10;0===Object.keys(b._sprite).length&&(b._sprite={__default:[0,1E3*b._duration]});"loaded"!==b._state&&(b._state="loaded",b._emit("load"),b._loadQueue());this._node.removeEventListener(c._canPlayEvent,this._loadFn,!1)}};var f={},j=function(b,d){c.ctx.decodeAudioData(b,function(b){b&&0<d._sounds.length&&(f[d._src]=b,n(d,b))},function(){d._emit("loaderror",null,"Decoding audio data failed.")})},
n=function(b,c){c&&!b._duration&&(b._duration=c.duration);0===Object.keys(b._sprite).length&&(b._sprite={__default:[0,1E3*b._duration]});"loaded"!==b._state&&(b._state="loaded",b._emit("load"),b._loadQueue())},m=function(){try{"undefined"!==typeof AudioContext?c.ctx=new AudioContext:"undefined"!==typeof webkitAudioContext?c.ctx=new webkitAudioContext:c.usingWebAudio=!1}catch(b){c.usingWebAudio=!1}var d=/iP(hone|od|ad)/.test(c._navigator&&c._navigator.platform),e=c._navigator&&c._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),
e=e?parseInt(e[1],10):null;if(d&&e&&9>e&&(d=/safari/.test(c._navigator&&c._navigator.userAgent.toLowerCase()),c._navigator&&c._navigator.standalone&&!d||c._navigator&&!c._navigator.standalone&&!d))c.usingWebAudio=!1;c.usingWebAudio&&(c.masterGain="undefined"===typeof c.ctx.createGain?c.ctx.createGainNode():c.ctx.createGain(),c.masterGain.gain.setValueAtTime(c._muted?0:1,c.ctx.currentTime),c.masterGain.connect(c.ctx.destination));c._setup()};"function"===typeof define&&define.amd&&define([],function(){return{Howler:c,
Howl:d}});"undefined"!==typeof exports&&(exports.Howler=c,exports.Howl=d);"undefined"!==typeof window?(window.HowlerGlobal=b,window.Howler=c,window.Howl=d,window.Sound=e):"undefined"!==typeof global&&(global.HowlerGlobal=b,global.Howler=c,global.Howl=d,global.Sound=e)})();
(function(){HowlerGlobal.prototype._pos=[0,0,0];HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0];HowlerGlobal.prototype.stereo=function(b){if(!this.ctx||!this.ctx.listener)return this;for(var c=this._howls.length-1;0<=c;c--)this._howls[c].stereo(b);return this};HowlerGlobal.prototype.pos=function(b,c,d){if(!this.ctx||!this.ctx.listener)return this;c="number"!==typeof c?this._pos[1]:c;d="number"!==typeof d?this._pos[2]:d;if("number"===typeof b)this._pos=[b,c,d],"undefined"!==typeof this.ctx.listener.positionX?
(this.ctx.listener.positionX.setTargetAtTime(this._pos[0],Howler.ctx.currentTime,0.1),this.ctx.listener.positionY.setTargetAtTime(this._pos[1],Howler.ctx.currentTime,0.1),this.ctx.listener.positionZ.setTargetAtTime(this._pos[2],Howler.ctx.currentTime,0.1)):this.ctx.listener.setPosition(this._pos[0],this._pos[1],this._pos[2]);else return this._pos;return this};HowlerGlobal.prototype.orientation=function(b,c,d,e,g,t){if(!this.ctx||!this.ctx.listener)return this;var z=this._orientation;c="number"!==
typeof c?z[1]:c;d="number"!==typeof d?z[2]:d;e="number"!==typeof e?z[3]:e;g="number"!==typeof g?z[4]:g;t="number"!==typeof t?z[5]:t;if("number"===typeof b)this._orientation=[b,c,d,e,g,t],"undefined"!==typeof this.ctx.listener.forwardX?(this.ctx.listener.forwardX.setTargetAtTime(b,Howler.ctx.currentTime,0.1),this.ctx.listener.forwardY.setTargetAtTime(c,Howler.ctx.currentTime,0.1),this.ctx.listener.forwardZ.setTargetAtTime(d,Howler.ctx.currentTime,0.1),this.ctx.listener.upX.setTargetAtTime(b,Howler.ctx.currentTime,
0.1),this.ctx.listener.upY.setTargetAtTime(c,Howler.ctx.currentTime,0.1),this.ctx.listener.upZ.setTargetAtTime(d,Howler.ctx.currentTime,0.1)):this.ctx.listener.setOrientation(b,c,d,e,g,t);else return z;return this};var b=Howl.prototype.init;Howl.prototype.init=function(c){this._orientation=c.orientation||[1,0,0];this._stereo=c.stereo||null;this._pos=c.pos||null;this._pannerAttr={coneInnerAngle:"undefined"!==typeof c.coneInnerAngle?c.coneInnerAngle:360,coneOuterAngle:"undefined"!==typeof c.coneOuterAngle?
c.coneOuterAngle:360,coneOuterGain:"undefined"!==typeof c.coneOuterGain?c.coneOuterGain:0,distanceModel:"undefined"!==typeof c.distanceModel?c.distanceModel:"inverse",maxDistance:"undefined"!==typeof c.maxDistance?c.maxDistance:1E4,panningModel:"undefined"!==typeof c.panningModel?c.panningModel:"HRTF",refDistance:"undefined"!==typeof c.refDistance?c.refDistance:1,rolloffFactor:"undefined"!==typeof c.rolloffFactor?c.rolloffFactor:1};this._onstereo=c.onstereo?[{fn:c.onstereo}]:[];this._onpos=c.onpos?
[{fn:c.onpos}]:[];this._onorientation=c.onorientation?[{fn:c.onorientation}]:[];return b.call(this,c)};Howl.prototype.stereo=function(b,c){var d=this;if(!d._webAudio)return d;if("loaded"!==d._state)return d._queue.push({event:"stereo",action:function(){d.stereo(b,c)}}),d;var m="undefined"===typeof Howler.ctx.createStereoPanner?"spatial":"stereo";if("undefined"===typeof c)if("number"===typeof b)d._stereo=b,d._pos=[b,0,0];else return d._stereo;for(var g=d._getSoundIds(c),t=0;t<g.length;t++){var z=d._soundById(g[t]);
if(z)if("number"===typeof b)z._stereo=b,z._pos=[b,0,0],z._node&&(z._pannerAttr.panningModel="equalpower",(!z._panner||!z._panner.pan)&&e(z,m),"spatial"===m?(z._panner.positionX.setValueAtTime(b,Howler.ctx.currentTime),z._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),z._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):z._panner.pan.setValueAtTime(b,Howler.ctx.currentTime)),d._emit("stereo",z._id);else return z._stereo}return d};Howl.prototype.pos=function(b,c,d,m){var g=this;
if(!g._webAudio)return g;if("loaded"!==g._state)return g._queue.push({event:"pos",action:function(){g.pos(b,c,d,m)}}),g;c="number"!==typeof c?0:c;d="number"!==typeof d?-0.5:d;if("undefined"===typeof m)if("number"===typeof b)g._pos=[b,c,d];else return g._pos;for(var t=g._getSoundIds(m),z=0;z<t.length;z++){var y=g._soundById(t[z]);if(y)if("number"===typeof b)y._pos=[b,c,d],y._node&&((!y._panner||y._panner.pan)&&e(y,"spatial"),y._panner.positionX.setValueAtTime(b,Howler.ctx.currentTime),y._panner.positionY.setValueAtTime(c,
Howler.ctx.currentTime),y._panner.positionZ.setValueAtTime(d,Howler.ctx.currentTime)),g._emit("pos",y._id);else return y._pos}return g};Howl.prototype.orientation=function(b,c,d,m){var g=this;if(!g._webAudio)return g;if("loaded"!==g._state)return g._queue.push({event:"orientation",action:function(){g.orientation(b,c,d,m)}}),g;c="number"!==typeof c?g._orientation[1]:c;d="number"!==typeof d?g._orientation[2]:d;if("undefined"===typeof m)if("number"===typeof b)g._orientation=[b,c,d];else return g._orientation;
for(var t=g._getSoundIds(m),z=0;z<t.length;z++){var y=g._soundById(t[z]);if(y)if("number"===typeof b)y._orientation=[b,c,d],y._node&&(y._panner||(y._pos||(y._pos=g._pos||[0,0,-0.5]),e(y,"spatial")),y._panner.orientationX.setValueAtTime(b,Howler.ctx.currentTime),y._panner.orientationY.setValueAtTime(c,Howler.ctx.currentTime),y._panner.orientationZ.setValueAtTime(d,Howler.ctx.currentTime)),g._emit("orientation",y._id);else return y._orientation}return g};Howl.prototype.pannerAttr=function(){var b=arguments,
c,d;if(!this._webAudio)return this;if(0===b.length)return this._pannerAttr;if(1===b.length)if("object"===typeof b[0])c=b[0],"undefined"===typeof d&&(c.pannerAttr||(c.pannerAttr={coneInnerAngle:c.coneInnerAngle,coneOuterAngle:c.coneOuterAngle,coneOuterGain:c.coneOuterGain,distanceModel:c.distanceModel,maxDistance:c.maxDistance,refDistance:c.refDistance,rolloffFactor:c.rolloffFactor,panningModel:c.panningModel}),this._pannerAttr={coneInnerAngle:"undefined"!==typeof c.pannerAttr.coneInnerAngle?c.pannerAttr.coneInnerAngle:
this._coneInnerAngle,coneOuterAngle:"undefined"!==typeof c.pannerAttr.coneOuterAngle?c.pannerAttr.coneOuterAngle:this._coneOuterAngle,coneOuterGain:"undefined"!==typeof c.pannerAttr.coneOuterGain?c.pannerAttr.coneOuterGain:this._coneOuterGain,distanceModel:"undefined"!==typeof c.pannerAttr.distanceModel?c.pannerAttr.distanceModel:this._distanceModel,maxDistance:"undefined"!==typeof c.pannerAttr.maxDistance?c.pannerAttr.maxDistance:this._maxDistance,refDistance:"undefined"!==typeof c.pannerAttr.refDistance?
c.pannerAttr.refDistance:this._refDistance,rolloffFactor:"undefined"!==typeof c.pannerAttr.rolloffFactor?c.pannerAttr.rolloffFactor:this._rolloffFactor,panningModel:"undefined"!==typeof c.pannerAttr.panningModel?c.pannerAttr.panningModel:this._panningModel});else return(b=this._soundById(parseInt(b[0],10)))?b._pannerAttr:this._pannerAttr;else 2===b.length&&(c=b[0],d=parseInt(b[1],10));d=this._getSoundIds(d);for(var m=0;m<d.length;m++)if(b=this._soundById(d[m])){var g=b._pannerAttr,g={coneInnerAngle:"undefined"!==
typeof c.coneInnerAngle?c.coneInnerAngle:g.coneInnerAngle,coneOuterAngle:"undefined"!==typeof c.coneOuterAngle?c.coneOuterAngle:g.coneOuterAngle,coneOuterGain:"undefined"!==typeof c.coneOuterGain?c.coneOuterGain:g.coneOuterGain,distanceModel:"undefined"!==typeof c.distanceModel?c.distanceModel:g.distanceModel,maxDistance:"undefined"!==typeof c.maxDistance?c.maxDistance:g.maxDistance,refDistance:"undefined"!==typeof c.refDistance?c.refDistance:g.refDistance,rolloffFactor:"undefined"!==typeof c.rolloffFactor?
c.rolloffFactor:g.rolloffFactor,panningModel:"undefined"!==typeof c.panningModel?c.panningModel:g.panningModel},t=b._panner;t?(t.coneInnerAngle=g.coneInnerAngle,t.coneOuterAngle=g.coneOuterAngle,t.coneOuterGain=g.coneOuterGain,t.distanceModel=g.distanceModel,t.maxDistance=g.maxDistance,t.refDistance=g.refDistance,t.rolloffFactor=g.rolloffFactor,t.panningModel=g.panningModel):(b._pos||(b._pos=this._pos||[0,0,-0.5]),e(b,"spatial"))}return this};var c=Sound.prototype.init;Sound.prototype.init=function(){var b=
this._parent;this._orientation=b._orientation;this._stereo=b._stereo;this._pos=b._pos;this._pannerAttr=b._pannerAttr;c.call(this);this._stereo?b.stereo(this._stereo):this._pos&&b.pos(this._pos[0],this._pos[1],this._pos[2],this._id)};var d=Sound.prototype.reset;Sound.prototype.reset=function(){var b=this._parent;this._orientation=b._orientation;this._pos=b._pos;this._pannerAttr=b._pannerAttr;return d.call(this)};var e=function(b,c){"spatial"===(c||"spatial")?(b._panner=Howler.ctx.createPanner(),b._panner.coneInnerAngle=
b._pannerAttr.coneInnerAngle,b._panner.coneOuterAngle=b._pannerAttr.coneOuterAngle,b._panner.coneOuterGain=b._pannerAttr.coneOuterGain,b._panner.distanceModel=b._pannerAttr.distanceModel,b._panner.maxDistance=b._pannerAttr.maxDistance,b._panner.refDistance=b._pannerAttr.refDistance,b._panner.rolloffFactor=b._pannerAttr.rolloffFactor,b._panner.panningModel=b._pannerAttr.panningModel,b._panner.positionX.setValueAtTime(b._pos[0],Howler.ctx.currentTime),b._panner.positionY.setValueAtTime(b._pos[1],Howler.ctx.currentTime),
b._panner.positionZ.setValueAtTime(b._pos[2],Howler.ctx.currentTime),b._panner.orientationX.setValueAtTime(b._orientation[0],Howler.ctx.currentTime),b._panner.orientationY.setValueAtTime(b._orientation[1],Howler.ctx.currentTime),b._panner.orientationZ.setValueAtTime(b._orientation[2],Howler.ctx.currentTime)):(b._panner=Howler.ctx.createStereoPanner(),b._panner.pan.setValueAtTime(b._stereo,Howler.ctx.currentTime));b._panner.connect(b._node);b._paused||b._parent.pause(b._id,!0).play(b._id,!0)}})();
(function(b){Number.prototype.map=function(b,c,d,e){return d+(e-d)*((this-b)/(c-b))};Number.prototype.limit=function(b,c){return Math.min(c,Math.max(b,this))};Number.prototype.round=function(b){b=Math.pow(10,b||0);return Math.round(this*b)/b};Number.prototype.floor=function(){return Math.floor(this)};Number.prototype.ceil=function(){return Math.ceil(this)};Number.prototype.toInt=function(){return this|0};Number.prototype.toRad=function(){return this/180*Math.PI};Number.prototype.toDeg=function(){return 180*
this/Math.PI};Array.prototype.erase=function(b){for(var c=this.length;c--;)this[c]===b&&this.splice(c,1);return this};Array.prototype.random=function(){return this[Math.floor(Math.random()*this.length)]};Function.prototype.bind=Function.prototype.bind||function(b){if("function"!==typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var c=Array.prototype.slice.call(arguments,1),d=this,e=function(){},f=function(){return d.apply(this instanceof e&&b?
this:b,c.concat(Array.prototype.slice.call(arguments)))};e.prototype=this.prototype;f.prototype=new e;return f};b.ig={game:null,debug:null,version:"1.23",global:b,modules:{},resources:[],ready:!1,baked:!1,nocache:"",ua:{},prefix:b.ImpactPrefix||"",lib:"lib/",_current:null,_loadQueue:[],_waitForOnload:0,$:function(b){return"#"==b.charAt(0)?document.getElementById(b.substr(1)):document.getElementsByTagName(b)},$new:function(b){return document.createElement(b)},copy:function(b){if(!b||"object"!=typeof b||
b instanceof HTMLElement||b instanceof ig.Class)return b;if(b instanceof Array)for(var c=[],d=0,e=b.length;d<e;d++)c[d]=ig.copy(b[d]);else for(d in c={},b)c[d]=ig.copy(b[d]);return c},merge:function(b,c){for(var d in c){var e=c[d];if("object"!=typeof e||e instanceof HTMLElement||e instanceof ig.Class||null===e)b[d]=e;else{if(!b[d]||"object"!=typeof b[d])b[d]=e instanceof Array?[]:{};ig.merge(b[d],e)}}return b},ksort:function(b){if(!b||"object"!=typeof b)return[];var c=[],d=[],e;for(e in b)c.push(e);
c.sort();for(e=0;e<c.length;e++)d.push(b[c[e]]);return d},setVendorAttribute:function(b,c,d){var e=c.charAt(0).toUpperCase()+c.substr(1);b[c]="undefined"!==typeof b.imageSmoothingEnabled?b["ms"+e]=b["moz"+e]=b["o"+e]=d:b["ms"+e]=b["moz"+e]=b["webkit"+e]=b["o"+e]=d},getVendorAttribute:function(b,c){var d=c.charAt(0).toUpperCase()+c.substr(1);return"undefined"!==typeof b.imageSmoothingEnabled?b[c]||b["ms"+d]||b["moz"+d]||b["o"+d]:b[c]||b["ms"+d]||b["moz"+d]||b["webkit"+d]||b["o"+d]},normalizeVendorAttribute:function(b,
c){var d=ig.getVendorAttribute(b,c);!b[c]&&d&&(b[c]=d)},getImagePixels:function(b,c,d,e,f){var j=ig.$new("canvas");j.width=b.width;j.height=b.height;var n=j.getContext("2d");ig.System.SCALE.CRISP(j,n);var I=ig.getVendorAttribute(n,"backingStorePixelRatio")||1;ig.normalizeVendorAttribute(n,"getImageDataHD");var D=b.width/I,x=b.height/I;j.width=Math.ceil(D);j.height=Math.ceil(x);n.drawImage(b,0,0,D,x);return 1===I?n.getImageData(c,d,e,f):n.getImageDataHD(c,d,e,f)},module:function(b){if(ig._current)throw"Module '"+
ig._current.name+"' defines nothing";if(ig.modules[b]&&ig.modules[b].body)throw"Module '"+b+"' is already defined";ig._current={name:b,requires:[],loaded:!1,body:null};ig.modules[b]=ig._current;ig._loadQueue.push(ig._current);return ig},requires:function(){ig._current.requires=Array.prototype.slice.call(arguments);return ig},defines:function(b){ig._current.body=b;ig._current=null;ig._initDOMReady()},addResource:function(b){ig.resources.push(b)},setNocache:function(b){ig.nocache=b?"?"+Date.now():""},
log:function(){},assert:function(){},show:function(){},mark:function(){},_loadScript:function(b,c){ig.modules[b]={name:b,requires:[],loaded:!1,body:null};ig._waitForOnload++;var d=ig.prefix+ig.lib+b.replace(/\./g,"/")+".js"+ig.nocache,e=ig.$new("script");e.type="text/javascript";e.src=d;e.onload=function(){ig._waitForOnload--;ig._execModules()};e.onerror=function(){throw"Failed to load module "+b+" at "+d+" required from "+c;};ig.$("head")[0].appendChild(e)},_execModules:function(){for(var b=!1,c=
0;c<ig._loadQueue.length;c++){for(var d=ig._loadQueue[c],e=!0,f=0;f<d.requires.length;f++){var j=d.requires[f];ig.modules[j]?ig.modules[j].loaded||(e=!1):(e=!1,ig._loadScript(j,d.name))}e&&d.body&&(ig._loadQueue.splice(c,1),d.loaded=!0,d.body(),b=!0,c--)}if(b)ig._execModules();else if(!ig.baked&&0==ig._waitForOnload&&0!=ig._loadQueue.length){b=[];for(c=0;c<ig._loadQueue.length;c++){e=[];j=ig._loadQueue[c].requires;for(f=0;f<j.length;f++)d=ig.modules[j[f]],(!d||!d.loaded)&&e.push(j[f]);b.push(ig._loadQueue[c].name+
" (requires: "+e.join(", ")+")")}throw"Unresolved (or circular?) dependencies. Most likely there's a name/path mismatch for one of the listed modules or a previous syntax error prevents a module from loading:\n"+b.join("\n");}},_DOMReady:function(){if(!ig.modules["dom.ready"].loaded){if(!document.body)return setTimeout(ig._DOMReady,13);ig.modules["dom.ready"].loaded=!0;ig._waitForOnload--;ig._execModules()}return 0},_boot:function(){document.location.href.match(/\?nocache/)&&ig.setNocache(!0);ig.ua.pixelRatio=
b.devicePixelRatio||1;ig.ua.viewport={width:b.innerWidth,height:b.innerHeight};ig.ua.screen={width:b.screen.availWidth*ig.ua.pixelRatio,height:b.screen.availHeight*ig.ua.pixelRatio};ig.ua.iPhone=/iPhone/i.test(navigator.userAgent);ig.ua.iPhone4=ig.ua.iPhone&&2==ig.ua.pixelRatio;ig.ua.iPad=/iPad/i.test(navigator.userAgent);ig.ua.android=/android/i.test(navigator.userAgent);ig.ua.winPhone=/Windows Phone/i.test(navigator.userAgent);ig.ua.is_uiwebview=/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent);
ig.ua.is_safari_or_uiwebview=/(iPhone|iPod|iPad).*AppleWebKit/i.test(navigator.userAgent);ig.ua.iOS=ig.ua.iPhone||ig.ua.iPad;ig.ua.iOS6_tag=/OS 6_/i.test(navigator.userAgent);ig.ua.iOS6=(ig.ua.iPhone||ig.ua.iPad)&&ig.ua.iOS6_tag;ig.ua.iOSgt5=ig.ua.iOS&&5<parseInt(navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/)[1]);ig.ua.HTCONE=/HTC_One/i.test(navigator.userAgent);ig.ua.winPhone=/Windows Phone/i.test(navigator.userAgent);ig.ua.Kindle=/Silk/i.test(navigator.userAgent);ig.ua.touchDevice="ontouchstart"in
b||b.navigator.msMaxTouchPoints;ig.ua.mobile=ig.ua.iOS||ig.ua.android||ig.ua.iOS6||ig.ua.winPhone||ig.ua.Kindle||/mobile/i.test(navigator.userAgent)},_initDOMReady:function(){ig.modules["dom.ready"]?ig._execModules():(ig._boot(),ig.modules["dom.ready"]={requires:[],loaded:!1,body:null},ig._waitForOnload++,"complete"===document.readyState?ig._DOMReady():(document.addEventListener("DOMContentLoaded",ig._DOMReady,!1),b.addEventListener("load",ig._DOMReady,!1)))}};ig.normalizeVendorAttribute(b,"requestAnimationFrame");
if(b.requestAnimationFrame){var c=1,d={};b.ig.setAnimation=function(e,g){var f=c++;d[f]=!0;var j=function(){d[f]&&(b.requestAnimationFrame(j,g),e())};b.requestAnimationFrame(j,g);return f};b.ig.clearAnimation=function(b){delete d[b]}}else b.ig.setAnimation=function(c){return b.setInterval(c,1E3/60)},b.ig.clearAnimation=function(c){b.clearInterval(c)};var e=!1,f=/xyz/.test(function(){xyz})?/\bparent\b/:/.*/,j=0;b.ig.Class=function(){};var n=function(b){var c=this.prototype,d={},e;for(e in b)"function"==
typeof b[e]&&"function"==typeof c[e]&&f.test(b[e])?(d[e]=c[e],c[e]=function(b,c){return function(){var e=this.parent;this.parent=d[b];var f=c.apply(this,arguments);this.parent=e;return f}}(e,b[e])):c[e]=b[e]};b.ig.Class.extend=function(c){function d(){if(!e){if(this.staticInstantiate){var b=this.staticInstantiate.apply(this,arguments);if(b)return b}for(var c in this)"object"==typeof this[c]&&(this[c]=ig.copy(this[c]));this.init&&this.init.apply(this,arguments)}return this}var t=this.prototype;e=!0;
var z=new this;e=!1;for(var y in c)z[y]="function"==typeof c[y]&&"function"==typeof t[y]&&f.test(c[y])?function(b,c){return function(){var d=this.parent;this.parent=t[b];var e=c.apply(this,arguments);this.parent=d;return e}}(y,c[y]):c[y];d.prototype=z;d.prototype.constructor=d;d.extend=b.ig.Class.extend;d.inject=n;d.classId=z.classId=++j;return d};b.ImpactMixin&&ig.merge(ig,b.ImpactMixin)})(window);ig.baked=!0;
ig.module("impact.image").defines(function(){ig.Image=ig.Class.extend({data:null,width:0,height:0,loaded:!1,failed:!1,loadCallback:null,path:"",staticInstantiate:function(b){return ig.Image.cache[b]||null},init:function(b){this.path=b;this.load()},load:function(b){this.loaded?b&&b(this.path,!0):(!this.loaded&&ig.ready?(this.loadCallback=b||null,this.data=new Image,this.data.onload=this.onload.bind(this),this.data.onerror=this.onerror.bind(this),this.data.src=ig.prefix+this.path+ig.nocache):ig.addResource(this),
ig.Image.cache[this.path]=this)},reload:function(){this.loaded=!1;this.data=new Image;this.data.onload=this.onload.bind(this);this.data.src=this.path+"?"+Date.now()},onload:function(){this.width=this.data.width;this.height=this.data.height;this.loaded=!0;1!=ig.system.scale&&this.resize(ig.system.scale);this.loadCallback&&this.loadCallback(this.path,!0)},onerror:function(){this.failed=!0;this.loadCallback&&this.loadCallback(this.path,!1)},resize:function(b){var c=ig.getImagePixels(this.data,0,0,this.width,
this.height),d=this.width*b,e=this.height*b,f=ig.$new("canvas");f.width=d;f.height=e;for(var j=f.getContext("2d"),n=j.getImageData(0,0,d,e),m=0;m<e;m++)for(var g=0;g<d;g++){var t=4*(Math.floor(m/b)*this.width+Math.floor(g/b)),z=4*(m*d+g);n.data[z]=c.data[t];n.data[z+1]=c.data[t+1];n.data[z+2]=c.data[t+2];n.data[z+3]=c.data[t+3]}j.putImageData(n,0,0);this.data=f},draw:function(b,c,d,e,f,j){if(this.loaded){var n=ig.system.scale;f=(f?f:this.width)*n;j=(j?j:this.height)*n;ig.system.context.drawImage(this.data,
d?d*n:0,e?e*n:0,f,j,ig.system.getDrawPos(b),ig.system.getDrawPos(c),f,j);ig.Image.drawCount++}},drawTile:function(b,c,d,e,f,j,n){f=f?f:e;if(this.loaded&&!(e>this.width||f>this.height)){var m=ig.system.scale,g=Math.floor(e*m),t=Math.floor(f*m),z=j?-1:1,y=n?-1:1;if(j||n)ig.system.context.save(),ig.system.context.scale(z,y);ig.system.context.drawImage(this.data,Math.floor(d*e)%this.width*m,Math.floor(d*e/this.width)*f*m,g,t,ig.system.getDrawPos(b)*z-(j?g:0),ig.system.getDrawPos(c)*y-(n?t:0),g,t);(j||
n)&&ig.system.context.restore();ig.Image.drawCount++}}});ig.Image.drawCount=0;ig.Image.cache={};ig.Image.reloadCache=function(){for(var b in ig.Image.cache)ig.Image.cache[b].reload()}});ig.baked=!0;
ig.module("impact.font").requires("impact.image").defines(function(){ig.Font=ig.Image.extend({widthMap:[],indices:[],firstChar:32,alpha:1,letterSpacing:1,lineSpacing:0,onload:function(b){this._loadMetrics(this.data);this.parent(b)},widthForString:function(b){if(-1!==b.indexOf("\n")){b=b.split("\n");for(var c=0,d=0;d<b.length;d++)c=Math.max(c,this._widthForLine(b[d]));return c}return this._widthForLine(b)},_widthForLine:function(b){for(var c=0,d=0;d<b.length;d++)c+=this.widthMap[b.charCodeAt(d)-this.firstChar]+
this.letterSpacing;return c},heightForString:function(b){return b.split("\n").length*(this.height+this.lineSpacing)},draw:function(b,c,d,e){"string"!=typeof b&&(b=b.toString());if(-1!==b.indexOf("\n")){b=b.split("\n");for(var f=this.height+this.lineSpacing,j=0;j<b.length;j++)this.draw(b[j],c,d+j*f,e)}else{if(e==ig.Font.ALIGN.RIGHT||e==ig.Font.ALIGN.CENTER)j=this._widthForLine(b),c-=e==ig.Font.ALIGN.CENTER?j/2:j;1!==this.alpha&&(ig.system.context.globalAlpha=this.alpha);for(j=0;j<b.length;j++)e=b.charCodeAt(j),
c+=this._drawChar(e-this.firstChar,c,d);1!==this.alpha&&(ig.system.context.globalAlpha=1);ig.Image.drawCount+=b.length}},_drawChar:function(b,c,d){if(!this.loaded||0>b||b>=this.indices.length)return 0;var e=ig.system.scale,f=this.widthMap[b]*e,j=(this.height-2)*e;ig.system.context.drawImage(this.data,this.indices[b]*e,0,f,j,ig.system.getDrawPos(c),ig.system.getDrawPos(d),f,j);return this.widthMap[b]+this.letterSpacing},_loadMetrics:function(b){this.height=b.height-1;this.widthMap=[];this.indices=
[];for(var c=ig.getImagePixels(b,0,b.height-1,b.width,1),d=0,e=0,f=0;f<b.width;f++){var j=4*f+3;127<c.data[j]?e++:128>c.data[j]&&e&&(this.widthMap.push(e),this.indices.push(f-e),d++,e=0)}this.widthMap.push(e);this.indices.push(f-e)}});ig.Font.ALIGN={LEFT:0,RIGHT:1,CENTER:2}});ig.baked=!0;
ig.module("impact.sound").defines(function(){ig.SoundManager=ig.Class.extend({clips:{},volume:1,format:null,init:function(){if(!ig.Sound.enabled||!window.Audio)ig.Sound.enabled=!1;else{for(var b=new Audio,c=0;c<ig.Sound.use.length;c++){var d=ig.Sound.use[c];if(b.canPlayType(d.mime)){this.format=d;break}}this.format||(ig.Sound.enabled=!1)}},load:function(b,c,d){var e=ig.prefix+b.replace(/[^\.]+$/,this.format.ext)+ig.nocache;if(this.clips[b]){if(c&&this.clips[b].length<ig.Sound.channels)for(c=this.clips[b].length;c<
ig.Sound.channels;c++){var f=new Audio(e);f.load();this.clips[b].push(f)}return this.clips[b][0]}var j=new Audio(e);d&&(j.addEventListener("canplaythrough",function m(c){j.removeEventListener("canplaythrough",m,!1);d(b,!0,c)},!1),j.addEventListener("error",function(c){d(b,!1,c)},!1));j.preload="auto";j.load();this.clips[b]=[j];if(c)for(c=1;c<ig.Sound.channels;c++)f=new Audio(e),f.load(),this.clips[b].push(f);return j},get:function(b){b=this.clips[b];for(var c=0,d;d=b[c++];)if(d.paused||d.ended)return d.ended&&
(d.currentTime=0),d;b[0].pause();b[0].currentTime=0;return b[0]}});ig.Music=ig.Class.extend({tracks:[],namedTracks:{},currentTrack:null,currentIndex:0,random:!1,_volume:1,_loop:!1,_fadeInterval:0,_fadeTimer:null,_endedCallbackBound:null,init:function(){this._endedCallbackBound=this._endedCallback.bind(this);Object.defineProperty?(Object.defineProperty(this,"volume",{get:this.getVolume.bind(this),set:this.setVolume.bind(this)}),Object.defineProperty(this,"loop",{get:this.getLooping.bind(this),set:this.setLooping.bind(this)})):
this.__defineGetter__&&(this.__defineGetter__("volume",this.getVolume.bind(this)),this.__defineSetter__("volume",this.setVolume.bind(this)),this.__defineGetter__("loop",this.getLooping.bind(this)),this.__defineSetter__("loop",this.setLooping.bind(this)))},add:function(b,c){if(ig.Sound.enabled){var d=ig.soundManager.load(b instanceof ig.Sound?b.path:b,!1);d.loop=this._loop;d.volume=this._volume;d.addEventListener("ended",this._endedCallbackBound,!1);this.tracks.push(d);c&&(this.namedTracks[c]=d);this.currentTrack||
(this.currentTrack=d)}},next:function(){this.tracks.length&&(this.stop(),this.currentIndex=this.random?Math.floor(Math.random()*this.tracks.length):(this.currentIndex+1)%this.tracks.length,this.currentTrack=this.tracks[this.currentIndex],this.play())},pause:function(){this.currentTrack&&this.currentTrack.pause()},stop:function(){this.currentTrack&&(this.currentTrack.pause(),this.currentTrack.currentTime=0)},play:function(b){if(b&&this.namedTracks[b])b=this.namedTracks[b],b!=this.currentTrack&&(this.stop(),
this.currentTrack=b);else if(!this.currentTrack)return;this.currentTrack.play()},getLooping:function(){return this._loop},setLooping:function(b){this._loop=b;for(var c in this.tracks)this.tracks[c].loop=b},getVolume:function(){return this._volume},setVolume:function(b){this._volume=b.limit(0,1);for(var c in this.tracks)this.tracks[c].volume=this._volume},fadeOut:function(b){this.currentTrack&&(clearInterval(this._fadeInterval),this.fadeTimer=new ig.Timer(b),this._fadeInterval=setInterval(this._fadeStep.bind(this),
50))},_fadeStep:function(){var b=this.fadeTimer.delta().map(-this.fadeTimer.target,0,1,0).limit(0,1)*this._volume;0.01>=b?(this.stop(),this.currentTrack.volume=this._volume,clearInterval(this._fadeInterval)):this.currentTrack.volume=b},_endedCallback:function(){this._loop?this.play():this.next()}});ig.Sound=ig.Class.extend({path:"",volume:1,currentClip:null,multiChannel:!0,init:function(b,c){this.path=b;this.multiChannel=!1!==c;this.load()},load:function(b){ig.Sound.enabled?ig.ready?ig.soundManager.load(this.path,
this.multiChannel,b):ig.addResource(this):b&&b(this.path,!0)},play:function(){ig.Sound.enabled&&(this.currentClip=ig.soundManager.get(this.path),this.currentClip.volume=ig.soundManager.volume*this.volume,this.currentClip.play())},stop:function(){this.currentClip&&(this.currentClip.pause(),this.currentClip.currentTime=0)}});ig.Sound.FORMAT={MP3:{ext:"mp3",mime:"audio/mpeg"},M4A:{ext:"m4a",mime:"audio/mp4; codecs=mp4a"},OGG:{ext:"ogg",mime:"audio/ogg; codecs=vorbis"},WEBM:{ext:"webm",mime:"audio/webm; codecs=vorbis"},
CAF:{ext:"caf",mime:"audio/x-caf"}};ig.Sound.use=[ig.Sound.FORMAT.OGG,ig.Sound.FORMAT.MP3];ig.Sound.channels=4;ig.Sound.enabled=!0});ig.baked=!0;
ig.module("impact.loader").requires("impact.image","impact.font","impact.sound").defines(function(){ig.Loader=ig.Class.extend({resources:[],gameClass:null,status:0,done:!1,_unloaded:[],_drawStatus:0,_intervalId:0,_loadCallbackBound:null,init:function(b,c){this.gameClass=b;this.resources=c;this._loadCallbackBound=this._loadCallback.bind(this);for(var d=0;d<this.resources.length;d++)this._unloaded.push(this.resources[d].path)},load:function(){ig.system.clear("#000");if(this.resources.length){for(var b=
0;b<this.resources.length;b++)this.loadResource(this.resources[b]);this._intervalId=setInterval(this.draw.bind(this),16)}else this.end()},loadResource:function(b){b.load(this._loadCallbackBound)},end:function(){this.done||(this.done=!0,clearInterval(this._intervalId))},draw:function(){},_loadCallback:function(b,c){if(c)this._unloaded.erase(b);else throw"Failed to load resource: "+b;this.status=1-this._unloaded.length/this.resources.length;0==this._unloaded.length&&setTimeout(this.end.bind(this),250)}})});
ig.baked=!0;
ig.module("impact.timer").defines(function(){ig.Timer=ig.Class.extend({target:0,base:0,last:0,pausedAt:0,init:function(b){this.last=this.base=ig.Timer.time;this.target=b||0},set:function(b){this.target=b||0;this.base=ig.Timer.time;this.pausedAt=0},reset:function(){this.base=ig.Timer.time;this.pausedAt=0},tick:function(){var b=ig.Timer.time-this.last;this.last=ig.Timer.time;return this.pausedAt?0:b},delta:function(){return(this.pausedAt||ig.Timer.time)-this.base-this.target},pause:function(){this.pausedAt||(this.pausedAt=
ig.Timer.time)},unpause:function(){this.pausedAt&&(this.base+=ig.Timer.time-this.pausedAt,this.pausedAt=0)}});ig.Timer._last=0;ig.Timer.time=Number.MIN_VALUE;ig.Timer.timeScale=1;ig.Timer.maxStep=0.05;ig.Timer.step=function(){var b=Date.now();ig.Timer.time+=Math.min((b-ig.Timer._last)/1E3,ig.Timer.maxStep)*ig.Timer.timeScale;ig.Timer._last=b}});ig.baked=!0;
ig.module("impact.system").requires("impact.timer","impact.image").defines(function(){ig.System=ig.Class.extend({fps:30,width:320,height:240,realWidth:320,realHeight:240,scale:1,tick:0,animationId:0,newGameClass:null,running:!1,delegate:null,clock:null,canvas:null,context:null,init:function(b,c,d,e,f){this.fps=c;this.clock=new ig.Timer;this.canvas=ig.$(b);this.resize(d,e,f);this.context=this.canvas.getContext("2d");this.getDrawPos=ig.System.drawMode;1!=this.scale&&(ig.System.scaleMode=ig.System.SCALE.CRISP);
ig.System.scaleMode(this.canvas,this.context)},resize:function(b,c,d){this.width=b;this.height=c;this.scale=d||this.scale;this.realWidth=this.width*this.scale;this.realHeight=this.height*this.scale;this.canvas.width=this.realWidth;this.canvas.height=this.realHeight},setGame:function(b){this.running?this.newGameClass=b:this.setGameNow(b)},setGameNow:function(b){ig.game=new b;ig.system.setDelegate(ig.game)},setDelegate:function(b){if("function"==typeof b.run)this.delegate=b,this.startRunLoop();else throw"System.setDelegate: No run() function in object";
},stopRunLoop:function(){ig.clearAnimation(this.animationId);this.running=!1},startRunLoop:function(){this.stopRunLoop();this.animationId=ig.setAnimation(this.run.bind(this),this.canvas);this.running=!0},clear:function(b){this.context.fillStyle=b;this.context.fillRect(0,0,this.realWidth,this.realHeight)},run:function(){ig.Timer.step();this.tick=this.clock.tick();this.delegate.run();ig.input.clearPressed();this.newGameClass&&(this.setGameNow(this.newGameClass),this.newGameClass=null)},getDrawPos:null});
ig.System.DRAW={AUTHENTIC:function(b){return Math.round(b)*this.scale},SMOOTH:function(b){return Math.round(b*this.scale)},SUBPIXEL:function(b){return b*this.scale}};ig.System.drawMode=ig.System.DRAW.SMOOTH;ig.System.SCALE={CRISP:function(b,c){ig.setVendorAttribute(c,"imageSmoothingEnabled",!1);b.style.imageRendering="-moz-crisp-edges";b.style.imageRendering="-o-crisp-edges";b.style.imageRendering="-webkit-optimize-contrast";b.style.imageRendering="crisp-edges";b.style.msInterpolationMode="nearest-neighbor"},
SMOOTH:function(b,c){ig.setVendorAttribute(c,"imageSmoothingEnabled",!0);b.style.imageRendering="";b.style.msInterpolationMode=""}};ig.System.scaleMode=ig.System.SCALE.SMOOTH});ig.baked=!0;
ig.module("impact.input").defines(function(){ig.KEY={MOUSE1:-1,MOUSE2:-3,MWHEEL_UP:-4,MWHEEL_DOWN:-5,BACKSPACE:8,TAB:9,ENTER:13,PAUSE:19,CAPS:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,_0:48,_1:49,_2:50,_3:51,_4:52,_5:53,_6:54,_7:55,_8:56,_9:57,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,
NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,MULTIPLY:106,ADD:107,SUBSTRACT:109,DECIMAL:110,DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,SHIFT:16,CTRL:17,ALT:18,PLUS:187,COMMA:188,MINUS:189,PERIOD:190};ig.Input=ig.Class.extend({bindings:{},actions:{},presses:{},locks:{},delayedKeyup:{},isUsingMouse:!1,isUsingKeyboard:!1,isUsingAccelerometer:!1,mouse:{x:0,y:0},accel:{x:0,y:0,z:0},initMouse:function(){if(!this.isUsingMouse){this.isUsingMouse=
!0;var b=this.mousewheel.bind(this);ig.system.canvas.addEventListener("mousewheel",b,!1);ig.system.canvas.addEventListener("DOMMouseScroll",b,!1);ig.system.canvas.addEventListener("contextmenu",this.contextmenu.bind(this),!1);ig.system.canvas.addEventListener("mousedown",this.keydown.bind(this),!1);ig.system.canvas.addEventListener("mouseup",this.keyup.bind(this),!1);ig.system.canvas.addEventListener("mousemove",this.mousemove.bind(this),!1);ig.ua.touchDevice&&(ig.system.canvas.addEventListener("touchstart",
this.keydown.bind(this),!1),ig.system.canvas.addEventListener("touchend",this.keyup.bind(this),!1),ig.system.canvas.addEventListener("touchmove",this.mousemove.bind(this),!1),ig.system.canvas.addEventListener("MSPointerDown",this.keydown.bind(this),!1),ig.system.canvas.addEventListener("MSPointerUp",this.keyup.bind(this),!1),ig.system.canvas.addEventListener("MSPointerMove",this.mousemove.bind(this),!1),ig.system.canvas.style.msTouchAction="none")}},initKeyboard:function(){this.isUsingKeyboard||(this.isUsingKeyboard=
!0,window.addEventListener("keydown",this.keydown.bind(this),!1),window.addEventListener("keyup",this.keyup.bind(this),!1))},initAccelerometer:function(){this.isUsingAccelerometer||window.addEventListener("devicemotion",this.devicemotion.bind(this),!1)},mousewheel:function(b){var c=this.bindings[0<(b.wheelDelta?b.wheelDelta:-1*b.detail)?ig.KEY.MWHEEL_UP:ig.KEY.MWHEEL_DOWN];c&&(this.actions[c]=!0,this.presses[c]=!0,this.delayedKeyup[c]=!0,b.stopPropagation(),b.preventDefault())},mousemove:function(b){var c=
parseInt(ig.system.canvas.offsetWidth)||ig.system.realWidth;ig.ua.mobile&&(c=ig.system.realWidth);var c=ig.system.scale*(c/ig.system.realWidth),d={left:0,top:0};ig.system.canvas.getBoundingClientRect&&(d=ig.system.canvas.getBoundingClientRect());b=b.touches?b.touches[0]:b;this.mouse.x=(b.clientX-d.left)/c;this.mouse.y=(b.clientY-d.top)/c},contextmenu:function(b){this.bindings[ig.KEY.MOUSE2]&&(b.stopPropagation(),b.preventDefault())},keydown:function(b){var c=b.target.tagName;if(!("INPUT"==c||"TEXTAREA"==
c))if(c="keydown"==b.type?b.keyCode:2==b.button?ig.KEY.MOUSE2:ig.KEY.MOUSE1,("touchstart"==b.type||"mousedown"==b.type)&&this.mousemove(b),c=this.bindings[c])this.actions[c]=!0,this.locks[c]||(this.presses[c]=!0,this.locks[c]=!0),b.stopPropagation(),b.preventDefault()},keyup:function(b){var c=b.target.tagName;if(!("INPUT"==c||"TEXTAREA"==c))if(c=this.bindings["keyup"==b.type?b.keyCode:2==b.button?ig.KEY.MOUSE2:ig.KEY.MOUSE1])this.delayedKeyup[c]=!0,b.stopPropagation(),b.preventDefault()},devicemotion:function(b){this.accel=
b.accelerationIncludingGravity},bind:function(b,c){0>b?this.initMouse():0<b&&this.initKeyboard();this.bindings[b]=c},bindTouch:function(b,c){var d=ig.$(b),e=this;d.addEventListener("touchstart",function(b){e.touchStart(b,c)},!1);d.addEventListener("touchend",function(b){e.touchEnd(b,c)},!1);d.addEventListener("MSPointerDown",function(b){e.touchStart(b,c)},!1);d.addEventListener("MSPointerUp",function(b){e.touchEnd(b,c)},!1)},unbind:function(b){this.delayedKeyup[this.bindings[b]]=!0;this.bindings[b]=
null},unbindAll:function(){this.bindings={};this.actions={};this.presses={};this.locks={};this.delayedKeyup={}},state:function(b){return this.actions[b]},pressed:function(b){return this.presses[b]},released:function(b){return!!this.delayedKeyup[b]},clearPressed:function(){for(var b in this.delayedKeyup)this.actions[b]=!1,this.locks[b]=!1;this.delayedKeyup={};this.presses={}},touchStart:function(b,c){this.actions[c]=!0;this.presses[c]=!0;b.stopPropagation();b.preventDefault();return!1},touchEnd:function(b,
c){this.delayedKeyup[c]=!0;b.stopPropagation();b.preventDefault();return!1}})});ig.baked=!0;ig.module("impact.impact").requires("dom.ready","impact.loader","impact.system","impact.input","impact.sound").defines(function(){ig.main=function(b,c,d,e,f,j,n){ig.system=new ig.System(b,d,e,f,j||1);ig.input=new ig.Input;ig.soundManager=new ig.SoundManager;ig.music=new ig.Music;ig.ready=!0;(new (n||ig.Loader)(c,ig.resources)).load()}});ig.baked=!0;
ig.module("impact.animation").requires("impact.timer","impact.image").defines(function(){ig.AnimationSheet=ig.Class.extend({width:8,height:8,image:null,init:function(b,c,d){this.width=c;this.height=d;this.image=new ig.Image(b)}});ig.Animation=ig.Class.extend({sheet:null,timer:null,sequence:[],flip:{x:!1,y:!1},pivot:{x:0,y:0},frame:0,tile:0,loopCount:0,alpha:1,angle:0,init:function(b,c,d,e){this.sheet=b;this.pivot={x:b.width/2,y:b.height/2};this.timer=new ig.Timer;this.frameTime=c;this.sequence=d;
this.stop=!!e;this.tile=this.sequence[0]},rewind:function(){this.timer.set();this.frame=this.loopCount=0;this.tile=this.sequence[0];return this},gotoFrame:function(b){this.timer.set(this.frameTime*-b-1E-4);this.update()},gotoRandomFrame:function(){this.gotoFrame(Math.floor(Math.random()*this.sequence.length))},update:function(){var b=Math.floor(this.timer.delta()/this.frameTime);this.loopCount=Math.floor(b/this.sequence.length);this.frame=this.stop&&0<this.loopCount?this.sequence.length-1:b%this.sequence.length;
this.tile=this.sequence[this.frame]},draw:function(b,c){var d=Math.max(this.sheet.width,this.sheet.height);b>ig.system.width||c>ig.system.height||(0>b+d||0>c+d)||(1!=this.alpha&&(ig.system.context.globalAlpha=this.alpha),0==this.angle?this.sheet.image.drawTile(b,c,this.tile,this.sheet.width,this.sheet.height,this.flip.x,this.flip.y):(ig.system.context.save(),ig.system.context.translate(ig.system.getDrawPos(b+this.pivot.x),ig.system.getDrawPos(c+this.pivot.y)),ig.system.context.rotate(this.angle),
this.sheet.image.drawTile(-this.pivot.x,-this.pivot.y,this.tile,this.sheet.width,this.sheet.height,this.flip.x,this.flip.y),ig.system.context.restore()),1!=this.alpha&&(ig.system.context.globalAlpha=1))}})});ig.baked=!0;
ig.module("impact.entity").requires("impact.animation","impact.impact").defines(function(){ig.Entity=ig.Class.extend({id:0,settings:{},size:{x:16,y:16},offset:{x:0,y:0},pos:{x:0,y:0},last:{x:0,y:0},vel:{x:0,y:0},accel:{x:0,y:0},friction:{x:0,y:0},maxVel:{x:100,y:100},zIndex:0,gravityFactor:0,standing:!1,bounciness:0,minBounceVelocity:40,anims:{},animSheet:null,currentAnim:null,health:10,type:0,checkAgainst:0,collides:0,_killed:!1,slopeStanding:{min:(44).toRad(),max:(136).toRad()},init:function(b,
c,d){this.id=++ig.Entity._lastId;this.pos.x=this.last.x=b;this.pos.y=this.last.y=c;ig.merge(this,d)},reset:function(b,c,d){var e=this.constructor.prototype;this.pos.x=b;this.pos.y=c;this.last.x=b;this.last.y=c;this.vel.x=e.vel.x;this.vel.y=e.vel.y;this.accel.x=e.accel.x;this.accel.y=e.accel.y;this.health=e.health;this._killed=e._killed;this.standing=e.standing;this.type=e.type;this.checkAgainst=e.checkAgainst;this.collides=e.collides;ig.merge(this,d)},addAnim:function(b,c,d,e){if(!this.animSheet)throw"No animSheet to add the animation "+
b+" to.";c=new ig.Animation(this.animSheet,c,d,e);this.anims[b]=c;this.currentAnim||(this.currentAnim=c);return c},update:function(){this.last.x=this.pos.x;this.last.y=this.pos.y;this.vel.y+=ig.game.gravity*ig.system.tick*this.gravityFactor;this.vel.x=this.getNewVelocity(this.vel.x,this.accel.x,this.friction.x,this.maxVel.x);this.vel.y=this.getNewVelocity(this.vel.y,this.accel.y,this.friction.y,this.maxVel.y);var b=ig.game.collisionMap.trace(this.pos.x,this.pos.y,this.vel.x*ig.system.tick,this.vel.y*
ig.system.tick,this.size.x,this.size.y);this.handleMovementTrace(b);this.currentAnim&&this.currentAnim.update()},getNewVelocity:function(b,c,d,e){return c?(b+c*ig.system.tick).limit(-e,e):d?(c=d*ig.system.tick,0<b-c?b-c:0>b+c?b+c:0):b.limit(-e,e)},handleMovementTrace:function(b){this.standing=!1;b.collision.y&&(0<this.bounciness&&Math.abs(this.vel.y)>this.minBounceVelocity?this.vel.y*=-this.bounciness:(0<this.vel.y&&(this.standing=!0),this.vel.y=0));b.collision.x&&(this.vel.x=0<this.bounciness&&Math.abs(this.vel.x)>
this.minBounceVelocity?this.vel.x*-this.bounciness:0);if(b.collision.slope){var c=b.collision.slope;if(0<this.bounciness){var d=this.vel.x*c.nx+this.vel.y*c.ny;this.vel.x=(this.vel.x-2*c.nx*d)*this.bounciness;this.vel.y=(this.vel.y-2*c.ny*d)*this.bounciness}else d=(this.vel.x*c.x+this.vel.y*c.y)/(c.x*c.x+c.y*c.y),this.vel.x=c.x*d,this.vel.y=c.y*d,c=Math.atan2(c.x,c.y),c>this.slopeStanding.min&&c<this.slopeStanding.max&&(this.standing=!0)}this.pos=b.pos},draw:function(){this.currentAnim&&this.currentAnim.draw(this.pos.x-
this.offset.x-ig.game._rscreen.x,this.pos.y-this.offset.y-ig.game._rscreen.y)},kill:function(){ig.game.removeEntity(this)},receiveDamage:function(b){this.health-=b;0>=this.health&&this.kill()},touches:function(b){return!(this.pos.x>=b.pos.x+b.size.x||this.pos.x+this.size.x<=b.pos.x||this.pos.y>=b.pos.y+b.size.y||this.pos.y+this.size.y<=b.pos.y)},distanceTo:function(b){var c=this.pos.x+this.size.x/2-(b.pos.x+b.size.x/2);b=this.pos.y+this.size.y/2-(b.pos.y+b.size.y/2);return Math.sqrt(c*c+b*b)},angleTo:function(b){return Math.atan2(b.pos.y+
b.size.y/2-(this.pos.y+this.size.y/2),b.pos.x+b.size.x/2-(this.pos.x+this.size.x/2))},check:function(){},collideWith:function(){},ready:function(){},erase:function(){}});ig.Entity._lastId=0;ig.Entity.COLLIDES={NEVER:0,LITE:1,PASSIVE:2,ACTIVE:4,FIXED:8};ig.Entity.TYPE={NONE:0,A:1,B:2,BOTH:3};ig.Entity.checkPair=function(b,c){b.checkAgainst&c.type&&b.check(c);c.checkAgainst&b.type&&c.check(b);b.collides&&c.collides&&b.collides+c.collides>ig.Entity.COLLIDES.ACTIVE&&ig.Entity.solveCollision(b,c)};ig.Entity.solveCollision=
function(b,c){var d=null;if(b.collides==ig.Entity.COLLIDES.LITE||c.collides==ig.Entity.COLLIDES.FIXED)d=b;else if(c.collides==ig.Entity.COLLIDES.LITE||b.collides==ig.Entity.COLLIDES.FIXED)d=c;b.last.x+b.size.x>c.last.x&&b.last.x<c.last.x+c.size.x?(b.last.y<c.last.y?ig.Entity.seperateOnYAxis(b,c,d):ig.Entity.seperateOnYAxis(c,b,d),b.collideWith(c,"y"),c.collideWith(b,"y")):b.last.y+b.size.y>c.last.y&&b.last.y<c.last.y+c.size.y&&(b.last.x<c.last.x?ig.Entity.seperateOnXAxis(b,c,d):ig.Entity.seperateOnXAxis(c,
b,d),b.collideWith(c,"x"),c.collideWith(b,"x"))};ig.Entity.seperateOnXAxis=function(b,c,d){var e=b.pos.x+b.size.x-c.pos.x;d?(d.vel.x=-d.vel.x*d.bounciness+(b===d?c:b).vel.x,c=ig.game.collisionMap.trace(d.pos.x,d.pos.y,d==b?-e:e,0,d.size.x,d.size.y),d.pos.x=c.pos.x):(d=(b.vel.x-c.vel.x)/2,b.vel.x=-d,c.vel.x=d,d=ig.game.collisionMap.trace(b.pos.x,b.pos.y,-e/2,0,b.size.x,b.size.y),b.pos.x=Math.floor(d.pos.x),b=ig.game.collisionMap.trace(c.pos.x,c.pos.y,e/2,0,c.size.x,c.size.y),c.pos.x=Math.ceil(b.pos.x))};
ig.Entity.seperateOnYAxis=function(b,c,d){var e=b.pos.y+b.size.y-c.pos.y;if(d){c=b===d?c:b;d.vel.y=-d.vel.y*d.bounciness+c.vel.y;var f=0;d==b&&Math.abs(d.vel.y-c.vel.y)<d.minBounceVelocity&&(d.standing=!0,f=c.vel.x*ig.system.tick);b=ig.game.collisionMap.trace(d.pos.x,d.pos.y,f,d==b?-e:e,d.size.x,d.size.y);d.pos.y=b.pos.y;d.pos.x=b.pos.x}else ig.game.gravity&&(c.standing||0<b.vel.y)?(d=ig.game.collisionMap.trace(b.pos.x,b.pos.y,0,-(b.pos.y+b.size.y-c.pos.y),b.size.x,b.size.y),b.pos.y=d.pos.y,0<b.bounciness&&
b.vel.y>b.minBounceVelocity?b.vel.y*=-b.bounciness:(b.standing=!0,b.vel.y=0)):(d=(b.vel.y-c.vel.y)/2,b.vel.y=-d,c.vel.y=d,f=c.vel.x*ig.system.tick,d=ig.game.collisionMap.trace(b.pos.x,b.pos.y,f,-e/2,b.size.x,b.size.y),b.pos.y=d.pos.y,b=ig.game.collisionMap.trace(c.pos.x,c.pos.y,0,e/2,c.size.x,c.size.y),c.pos.y=b.pos.y)}});ig.baked=!0;
ig.module("impact.map").defines(function(){ig.Map=ig.Class.extend({tilesize:8,width:1,height:1,data:[[]],name:null,init:function(b,c){this.tilesize=b;this.data=c;this.height=c.length;this.width=c[0].length;this.pxWidth=this.width*this.tilesize;this.pxHeight=this.height*this.tilesize},getTile:function(b,c){var d=Math.floor(b/this.tilesize),e=Math.floor(c/this.tilesize);return 0<=d&&d<this.width&&0<=e&&e<this.height?this.data[e][d]:0},setTile:function(b,c,d){b=Math.floor(b/this.tilesize);c=Math.floor(c/
this.tilesize);0<=b&&b<this.width&&0<=c&&c<this.height&&(this.data[c][b]=d)}})});ig.baked=!0;
ig.module("impact.collision-map").requires("impact.map").defines(function(){ig.CollisionMap=ig.Map.extend({lastSlope:1,tiledef:null,init:function(b,c,f){this.parent(b,c);this.tiledef=f||ig.CollisionMap.defaultTileDef;for(var j in this.tiledef)j|0>this.lastSlope&&(this.lastSlope=j|0)},trace:function(b,c,f,j,n,m){var g={collision:{x:!1,y:!1,slope:!1},pos:{x:b,y:c},tile:{x:0,y:0}},t=Math.ceil(Math.max(Math.abs(f),Math.abs(j))/this.tilesize);if(1<t)for(var z=f/t,y=j/t,A=0;A<t&&(z||y)&&!(this._traceStep(g,
b,c,z,y,n,m,f,j,A),b=g.pos.x,c=g.pos.y,g.collision.x&&(f=z=0),g.collision.y&&(j=y=0),g.collision.slope);A++);else this._traceStep(g,b,c,f,j,n,m,f,j,0);return g},_traceStep:function(b,c,f,j,n,m,g,t,z,y){b.pos.x+=j;b.pos.y+=n;var A=0;if(j){var B=0<j?m:0,I=0>j?this.tilesize:0,A=Math.max(Math.floor(f/this.tilesize),0),D=Math.min(Math.ceil((f+g)/this.tilesize),this.height);j=Math.floor((b.pos.x+B)/this.tilesize);var x=Math.floor((c+B)/this.tilesize);if(0<y||j==x||0>x||x>=this.width)x=-1;if(0<=j&&j<this.width)for(var G=
A;G<D&&!(-1!=x&&(A=this.data[G][x],1<A&&A<=this.lastSlope&&this._checkTileDef(b,A,c,f,t,z,m,g,x,G)));G++)if(A=this.data[G][j],1==A||A>this.lastSlope||1<A&&this._checkTileDef(b,A,c,f,t,z,m,g,j,G)){if(1<A&&A<=this.lastSlope&&b.collision.slope)break;b.collision.x=!0;b.tile.x=A;c=b.pos.x=j*this.tilesize-B+I;t=0;break}}if(n){B=0<n?g:0;n=0>n?this.tilesize:0;A=Math.max(Math.floor(b.pos.x/this.tilesize),0);I=Math.min(Math.ceil((b.pos.x+m)/this.tilesize),this.width);G=Math.floor((b.pos.y+B)/this.tilesize);
D=Math.floor((f+B)/this.tilesize);if(0<y||G==D||0>D||D>=this.height)D=-1;if(0<=G&&G<this.height)for(j=A;j<I&&!(-1!=D&&(A=this.data[D][j],1<A&&A<=this.lastSlope&&this._checkTileDef(b,A,c,f,t,z,m,g,j,D)));j++)if(A=this.data[G][j],1==A||A>this.lastSlope||1<A&&this._checkTileDef(b,A,c,f,t,z,m,g,j,G)){if(1<A&&A<=this.lastSlope&&b.collision.slope)break;b.collision.y=!0;b.tile.y=A;b.pos.y=G*this.tilesize-B+n;break}}},_checkTileDef:function(b,c,f,j,n,m,g,t,z,y){var A=this.tiledef[c];if(!A)return!1;c=(A[2]-
A[0])*this.tilesize;var B=(A[3]-A[1])*this.tilesize,I=A[4];g=f+n+(0>B?g:0)-(z+A[0])*this.tilesize;t=j+m+(0<c?t:0)-(y+A[1])*this.tilesize;if(0<c*t-B*g){if(0>n*-B+m*c)return I;z=Math.sqrt(c*c+B*B);y=B/z;z=-c/z;var D=g*y+t*z,A=y*D,D=z*D;if(A*A+D*D>=n*n+m*m)return I||0.5>c*(t-m)-B*(g-n);b.pos.x=f+n-A;b.pos.y=j+m-D;b.collision.slope={x:c,y:B,nx:y,ny:z};return!0}return!1}});var b=1/3,c=2/3;ig.CollisionMap.defaultTileDef={5:[0,1,1,c,!0],6:[0,c,1,b,!0],7:[0,b,1,0,!0],3:[0,1,1,0.5,!0],4:[0,0.5,1,0,!0],2:[0,
1,1,0,!0],10:[0.5,1,1,0,!0],21:[0,1,0.5,0,!0],32:[c,1,1,0,!0],43:[b,1,c,0,!0],54:[0,1,b,0,!0],27:[0,0,1,b,!0],28:[0,b,1,c,!0],29:[0,c,1,1,!0],25:[0,0,1,0.5,!0],26:[0,0.5,1,1,!0],24:[0,0,1,1,!0],11:[0,0,0.5,1,!0],22:[0.5,0,1,1,!0],33:[0,0,b,1,!0],44:[b,0,c,1,!0],55:[c,0,1,1,!0],16:[1,b,0,0,!0],17:[1,c,0,b,!0],18:[1,1,0,c,!0],14:[1,0.5,0,0,!0],15:[1,1,0,0.5,!0],13:[1,1,0,0,!0],8:[0.5,1,0,0,!0],19:[1,1,0.5,0,!0],30:[b,1,0,0,!0],41:[c,1,b,0,!0],52:[1,1,c,0,!0],38:[1,c,0,1,!0],39:[1,b,0,c,!0],40:[1,0,
0,b,!0],36:[1,0.5,0,1,!0],37:[1,0,0,0.5,!0],35:[1,0,0,1,!0],9:[1,0,0.5,1,!0],20:[0.5,0,0,1,!0],31:[1,0,c,1,!0],42:[c,0,b,1,!0],53:[b,0,0,1,!0],12:[0,0,1,0,!1],23:[1,1,0,1,!1],34:[1,0,1,1,!1],45:[0,1,0,0,!1]};ig.CollisionMap.staticNoCollision={trace:function(b,c,f,j){return{collision:{x:!1,y:!1,slope:!1},pos:{x:b+f,y:c+j},tile:{x:0,y:0}}}}});ig.baked=!0;
ig.module("impact.background-map").requires("impact.map","impact.image").defines(function(){ig.BackgroundMap=ig.Map.extend({tiles:null,scroll:{x:0,y:0},distance:1,repeat:!1,tilesetName:"",foreground:!1,enabled:!0,preRender:!1,preRenderedChunks:null,chunkSize:512,debugChunks:!1,anims:{},init:function(b,c,d){this.parent(b,c);this.setTileset(d)},setTileset:function(b){this.tilesetName=b instanceof ig.Image?b.path:b;this.tiles=new ig.Image(this.tilesetName);this.preRenderedChunks=null},setScreenPos:function(b,
c){this.scroll.x=b/this.distance;this.scroll.y=c/this.distance},preRenderMapToChunks:function(){var b=this.width*this.tilesize*ig.system.scale,c=this.height*this.tilesize*ig.system.scale;this.chunkSize=Math.min(Math.max(b,c),this.chunkSize);var d=Math.ceil(b/this.chunkSize),e=Math.ceil(c/this.chunkSize);this.preRenderedChunks=[];for(var f=0;f<e;f++){this.preRenderedChunks[f]=[];for(var j=0;j<d;j++)this.preRenderedChunks[f][j]=this.preRenderChunk(j,f,j==d-1?b-j*this.chunkSize:this.chunkSize,f==e-1?
c-f*this.chunkSize:this.chunkSize)}},preRenderChunk:function(b,c,d,e){var f=d/this.tilesize/ig.system.scale+1,j=e/this.tilesize/ig.system.scale+1,n=b*this.chunkSize/ig.system.scale%this.tilesize,m=c*this.chunkSize/ig.system.scale%this.tilesize;b=Math.floor(b*this.chunkSize/this.tilesize/ig.system.scale);c=Math.floor(c*this.chunkSize/this.tilesize/ig.system.scale);var g=ig.$new("canvas");g.width=d;g.height=e;g.retinaResolutionEnabled=!1;e=g.getContext("2d");ig.System.scaleMode(g,e);d=ig.system.context;
ig.system.context=e;for(e=0;e<f;e++)for(var t=0;t<j;t++)if(e+b<this.width&&t+c<this.height){var z=this.data[t+c][e+b];z&&this.tiles.drawTile(e*this.tilesize-n,t*this.tilesize-m,z-1,this.tilesize)}ig.system.context=d;return g},draw:function(){this.tiles.loaded&&this.enabled&&(this.preRender?this.drawPreRendered():this.drawTiled())},drawPreRendered:function(){this.preRenderedChunks||this.preRenderMapToChunks();var b=ig.system.getDrawPos(this.scroll.x),c=ig.system.getDrawPos(this.scroll.y);if(this.repeat)var d=
this.width*this.tilesize*ig.system.scale,b=(b%d+d)%d,d=this.height*this.tilesize*ig.system.scale,c=(c%d+d)%d;var d=Math.max(Math.floor(b/this.chunkSize),0),e=Math.max(Math.floor(c/this.chunkSize),0),f=Math.ceil((b+ig.system.realWidth)/this.chunkSize),j=Math.ceil((c+ig.system.realHeight)/this.chunkSize),n=this.preRenderedChunks[0].length,m=this.preRenderedChunks.length;this.repeat||(f=Math.min(f,n),j=Math.min(j,m));for(var g=0;e<j;e++){for(var t=0,z=d;z<f;z++){var y=this.preRenderedChunks[e%m][z%n],
A=-b+z*this.chunkSize-t,B=-c+e*this.chunkSize-g;ig.system.context.drawImage(y,A,B);ig.Image.drawCount++;this.debugChunks&&(ig.system.context.strokeStyle="#f0f",ig.system.context.strokeRect(A,B,this.chunkSize,this.chunkSize));this.repeat&&y.width<this.chunkSize&&A+y.width<ig.system.realWidth&&(t+=this.chunkSize-y.width,f++)}this.repeat&&y.height<this.chunkSize&&B+y.height<ig.system.realHeight&&(g+=this.chunkSize-y.height,j++)}},drawTiled:function(){for(var b=0,c=null,d=(this.scroll.x/this.tilesize).toInt(),
e=(this.scroll.y/this.tilesize).toInt(),f=this.scroll.x%this.tilesize,j=this.scroll.y%this.tilesize,n=-f-this.tilesize,f=ig.system.width+this.tilesize-f,m=ig.system.height+this.tilesize-j,g=-1,j=-j-this.tilesize;j<m;g++,j+=this.tilesize){var t=g+e;if(t>=this.height||0>t){if(!this.repeat)continue;t=(t%this.height+this.height)%this.height}for(var z=-1,y=n;y<f;z++,y+=this.tilesize){b=z+d;if(b>=this.width||0>b){if(!this.repeat)continue;b=(b%this.width+this.width)%this.width}if(b=this.data[t][b])(c=this.anims[b-
1])?c.draw(y,j):this.tiles.drawTile(y,j,b-1,this.tilesize)}}}})});ig.baked=!0;
ig.module("impact.game").requires("impact.impact","impact.entity","impact.collision-map","impact.background-map").defines(function(){ig.Game=ig.Class.extend({clearColor:"#000000",gravity:0,screen:{x:0,y:0},_rscreen:{x:0,y:0},entities:[],namedEntities:{},collisionMap:ig.CollisionMap.staticNoCollision,backgroundMaps:[],backgroundAnims:{},autoSort:!1,sortBy:null,cellSize:64,_deferredKill:[],_levelToLoad:null,_doSortEntities:!1,staticInstantiate:function(){this.sortBy=this.sortBy||ig.Game.SORT.Z_INDEX;
ig.game=this;return null},loadLevel:function(b){this.screen={x:0,y:0};this.entities=[];this.namedEntities={};for(var c=0;c<b.entities.length;c++){var d=b.entities[c];this.spawnEntity(d.type,d.x,d.y,d.settings)}this.sortEntities();this.collisionMap=ig.CollisionMap.staticNoCollision;this.backgroundMaps=[];for(c=0;c<b.layer.length;c++)if(d=b.layer[c],"collision"==d.name)this.collisionMap=new ig.CollisionMap(d.tilesize,d.data);else{var e=new ig.BackgroundMap(d.tilesize,d.data,d.tilesetName);e.anims=this.backgroundAnims[d.tilesetName]||
{};e.repeat=d.repeat;e.distance=d.distance;e.foreground=!!d.foreground;e.preRender=!!d.preRender;e.name=d.name;this.backgroundMaps.push(e)}for(c=0;c<this.entities.length;c++)this.entities[c].ready()},loadLevelDeferred:function(b){this._levelToLoad=b},getMapByName:function(b){if("collision"==b)return this.collisionMap;for(var c=0;c<this.backgroundMaps.length;c++)if(this.backgroundMaps[c].name==b)return this.backgroundMaps[c];return null},getEntityByName:function(b){return this.namedEntities[b]},getEntitiesByType:function(b){b=
"string"===typeof b?ig.global[b]:b;for(var c=[],d=0;d<this.entities.length;d++){var e=this.entities[d];e instanceof b&&!e._killed&&c.push(e)}return c},spawnEntity:function(b,c,d,e){var f="string"===typeof b?ig.global[b]:b;if(!f)throw"Can't spawn entity of type "+b;b=new f(c,d,e||{});this.entities.push(b);b.name&&(this.namedEntities[b.name]=b);return b},sortEntities:function(){this.entities.sort(this.sortBy)},sortEntitiesDeferred:function(){this._doSortEntities=!0},removeEntity:function(b){b.name&&
delete this.namedEntities[b.name];b._killed=!0;b.type=ig.Entity.TYPE.NONE;b.checkAgainst=ig.Entity.TYPE.NONE;b.collides=ig.Entity.COLLIDES.NEVER;this._deferredKill.push(b)},run:function(){this.update();this.draw()},update:function(){this._levelToLoad&&(this.loadLevel(this._levelToLoad),this._levelToLoad=null);this.updateEntities();this.checkEntities();for(var b=0;b<this._deferredKill.length;b++)this._deferredKill[b].erase(),this.entities.erase(this._deferredKill[b]);this._deferredKill=[];if(this._doSortEntities||
this.autoSort)this.sortEntities(),this._doSortEntities=!1;for(var c in this.backgroundAnims){var b=this.backgroundAnims[c],d;for(d in b)b[d].update()}},updateEntities:function(){for(var b=0;b<this.entities.length;b++){var c=this.entities[b];c._killed||c.update()}},draw:function(){this.clearColor&&ig.system.clear(this.clearColor);this._rscreen.x=ig.system.getDrawPos(this.screen.x)/ig.system.scale;this._rscreen.y=ig.system.getDrawPos(this.screen.y)/ig.system.scale;var b;for(b=0;b<this.backgroundMaps.length;b++){var c=
this.backgroundMaps[b];if(c.foreground)break;c.setScreenPos(this.screen.x,this.screen.y);c.draw()}this.drawEntities();for(b;b<this.backgroundMaps.length;b++)c=this.backgroundMaps[b],c.setScreenPos(this.screen.x,this.screen.y),c.draw()},drawEntities:function(){for(var b=0;b<this.entities.length;b++)this.entities[b].draw()},checkEntities:function(){for(var b={},c=0;c<this.entities.length;c++){var d=this.entities[c];if(!(d.type==ig.Entity.TYPE.NONE&&d.checkAgainst==ig.Entity.TYPE.NONE&&d.collides==ig.Entity.COLLIDES.NEVER))for(var e=
{},f=Math.floor(d.pos.y/this.cellSize),j=Math.floor((d.pos.x+d.size.x)/this.cellSize)+1,n=Math.floor((d.pos.y+d.size.y)/this.cellSize)+1,m=Math.floor(d.pos.x/this.cellSize);m<j;m++)for(var g=f;g<n;g++)if(b[m])if(b[m][g]){for(var t=b[m][g],z=0;z<t.length;z++)d.touches(t[z])&&!e[t[z].id]&&(e[t[z].id]=!0,ig.Entity.checkPair(d,t[z]));t.push(d)}else b[m][g]=[d];else b[m]={},b[m][g]=[d]}}});ig.Game.SORT={Z_INDEX:function(b,c){return b.zIndex-c.zIndex},POS_X:function(b,c){return b.pos.x+b.size.x-(c.pos.x+
c.size.x)},POS_Y:function(b,c){return b.pos.y+b.size.y-(c.pos.y+c.size.y)}}});ig.baked=!0;
ig.module("plugins.patches.webkit-image-smoothing-patch").defines(function(){ig.System&&(ig.System.SCALE={CRISP:function(b,c){c.imageSmoothingEnabled=c.msImageSmoothingEnabled=c.mozImageSmoothingEnabled=c.oImageSmoothingEnabled=!1;b.style.imageRendering="-moz-crisp-edges";b.style.imageRendering="-o-crisp-edges";b.style.imageRendering="-webkit-optimize-contrast";b.style.imageRendering="crisp-edges";b.style.msInterpolationMode="nearest-neighbor"},SMOOTH:function(b,c){c.imageSmoothingEnabled=c.msImageSmoothingEnabled=
c.mozImageSmoothingEnabled=c.oImageSmoothingEnabled=!0;b.style.imageRendering="";b.style.msInterpolationMode=""}},ig.System.scaleMode=ig.System.SCALE.SMOOTH)});ig.baked=!0;
ig.module("plugins.patches.windowfocus-onMouseDown-patch").requires("impact.input").defines(function(){var b=!1;try{b=window.self!==window.top,!1===b&&(b=0<window.frames.length)}catch(c){b=!0}ig.Input.inject({keydown:function(c){var e=c.target.tagName;if(!("INPUT"==e||"TEXTAREA"==e))if(e="keydown"==c.type?c.keyCode:2==c.button?ig.KEY.MOUSE2:ig.KEY.MOUSE1,b&&0>e&&window.focus(),("touchstart"==c.type||"mousedown"==c.type)&&this.mousemove(c),e=this.bindings[e])this.actions[e]=!0,this.locks[e]||(this.presses[e]=
!0,this.locks[e]=!0),c.stopPropagation(),c.preventDefault()}})});ig.baked=!0;
ig.module("plugins.handlers.dom-handler").defines(function(){ig.DomHandler=ig.Class.extend({JQUERYAVAILABLE:!1,init:function(){this.JQUERYAVAILABLE=this._jqueryAvailable()},_jqueryAvailable:function(){return"undefined"!==typeof jQuery},addEvent:function(b,c,d,e){if(this.JQUERYAVAILABLE)b.on(c,d);else b.addEventListener(c,d,e)},create:function(b){return this.JQUERYAVAILABLE?$("<"+b+">"):ig.$new(b)},getElementByClass:function(b){return this.JQUERYAVAILABLE?$("."+b):document.getElementsByClassName(b)},
getElementById:function(b){return this.JQUERYAVAILABLE?0<$(b).length?$(b):null:ig.$(b)},appendChild:function(b,c){this.JQUERYAVAILABLE?b.append(c):b.appendChild(c)},appendToBody:function(b){this.JQUERYAVAILABLE?$("body").append(b):document.body.appendChild(b)},resize:function(b,c,d){if(this.JQUERYAVAILABLE)b.width(c.toFixed(2)),b.height(d.toFixed(2));else{var e=b.style.visibility;c="width:"+c.toFixed(2)+"px; height:"+d.toFixed(2)+"px;";this.attr(b,"style",c);b.style.visibility=e}},resizeOffsetLeft:function(b,
c,d,e){if(this.JQUERYAVAILABLE)b.width(c.toFixed(2)),b.height(d.toFixed(2)),b.css("left",e);else{var f=b.style.visibility;c="width:"+c.toFixed(2)+"px; height:"+d.toFixed(2)+"px; left: "+e.toFixed(2)+"px;";this.attr(b,"style",c);b.style.visibility=f}},resizeOffset:function(b,c,d,e,f){if(this.JQUERYAVAILABLE)b.width(c.toFixed(2)),b.height(d.toFixed(2)),b.css("left",e),b.css("top",f);else{var j=b.style.visibility;c="width:"+c.toFixed(2)+"px; height:"+d.toFixed(2)+"px; left: "+e.toFixed(2)+"px; top: "+
f.toFixed(2)+"px;";this.attr(b,"style",c);b.style.visibility=j}},css:function(b,c){if(this.JQUERYAVAILABLE)b.css(c);else{var d="",e;for(e in c)d+=e+":"+c[e]+";";this.attr(b,"style",d)}},getOffsets:function(b){return this.JQUERYAVAILABLE?(b=b.offset(),{left:b.left,top:b.top}):{left:b.offsetLeft,top:b.offsetTop}},attr:function(b,c,d){if("undefined"===typeof d)return this.JQUERYAVAILABLE?b.attr(c):b.getAttribute(c);this.JQUERYAVAILABLE?b.attr(c,d):b.setAttribute(c,d)},show:function(b){this.JQUERYAVAILABLE?
(b.show(),b.css("visibility","visible")):b&&(b.style?b.style.visibility="visible":b[0]&&(b[0].style.visibility="visible"))},hide:function(b){this.JQUERYAVAILABLE?(b.hide(),b.css("visibility","hidden")):b&&(b.style?b.style.visibility="hidden":b[0]&&(b[0].style.visibility="hidden"))},getQueryVariable:function(b){for(var c=window.location.search.substring(1).split("&"),d=0;d<c.length;d++){var e=c[d].split("=");if(decodeURIComponent(e[0])==b)return decodeURIComponent(e[1])}},forcedDeviceDetection:function(){var b=
this.getQueryVariable("device");if(b)switch(b){case "mobile":console.log("serving mobile version ...");ig.ua.mobile=!0;break;case "desktop":console.log("serving desktop version ...");ig.ua.mobile=!1;break;default:console.log("serving universal version ...")}else console.log("serving universal version ...")},forcedDeviceRotation:function(){var b=this.getQueryVariable("force-rotate");if(b)switch(b){case "portrait":console.log("force rotate to portrait");window.orientation=0;break;case "landscape":console.log("force rotate to horizontal");
window.orientation=90;break;default:alert("wrong command/type in param force-rotate. Defaulting value to portrait"),window.orientation=0}}})});ig.baked=!0;
ig.module("plugins.data.vector").defines(function(){Vector2=function(b,c){this.x=b||0;this.y=c||0};Vector2.prototype={valType:"number",neg:function(){this.x=-this.x;this.y=-this.y;return this},row:function(b){typeof b===this.valType&&(this.y=b);return this.y},col:function(b){typeof b===this.valType&&(this.x=b);return this.x},add:function(b){b instanceof Vector2?(this.x+=b.x,this.y+=b.y):(this.x+=b,this.y+=b);return this},sub:function(b){b instanceof Vector2?(this.x-=b.x,this.y-=b.y):(this.x-=b,this.y-=
b);return this},mul:function(b){b instanceof Vector2?(this.x*=b.x,this.y*=b.y):(this.x*=b,this.y*=b);return this},div:function(b){b instanceof Vector2?(0!=b.x&&(this.x/=b.x),0!=b.y&&(this.y/=b.y)):0!=b&&(this.x/=b,this.y/=b);return this},equals:function(b){return this.x==b.x&&this.y==b.y},dot:function(b){return this.x*b.x+this.y*b.y},cross:function(b){return this.x*b.y-this.y*b.x},length:function(){return Math.sqrt(this.dot(this))},norm:function(){return this.divide(this.length())},min:function(){return Math.min(this.x,
this.y)},max:function(){return Math.max(this.x,this.y)},toAngles:function(){return-Math.atan2(-this.y,this.x)},angleTo:function(b){return Math.acos(this.dot(b)/(this.length()*b.length()))},toArray:function(b){return[this.x,this.y].slice(0,b||2)},clone:function(){return new Vector2(this.x,this.y)},set:function(b,c){this.x=b;this.y=c;return this},unit:function(){var b=this.length();if(0<b)return new Vector2(this.x/b,this.y/b);throw"Divide by 0 error in unitVector function of vector:"+this;},turnRight:function(){var b=
this.x;this.x=-this.y;this.y=b;return this},turnLeft:function(){var b=this.x;this.x=this.y;this.y=-b;return this},rotate:function(b){var c=this.clone();this.x=c.x*Math.cos(b)-c.y*Math.sin(b);this.y=c.x*Math.sin(b)+c.y*Math.cos(b);return this}};Vector2.negative=function(b){return new Vector2(-b.x,-b.y)};Vector2.add=function(b,c){return c instanceof Vector2?new Vector2(b.x+c.x,b.y+c.y):new Vector2(b.x+v,b.y+v)};Vector2.subtract=function(b,c){return c instanceof Vector2?new Vector2(b.x-c.x,b.y-c.y):
new Vector2(b.x-v,b.y-v)};Vector2.multiply=function(b,c){return c instanceof Vector2?new Vector2(b.x*c.x,b.y*c.y):new Vector2(b.x*v,b.y*v)};Vector2.divide=function(b,c){return c instanceof Vector2?new Vector2(b.x/c.x,b.y/c.y):new Vector2(b.x/v,b.y/v)};Vector2.equals=function(b,c){return b.x==c.x&&b.y==c.y};Vector2.dot=function(b,c){return b.x*c.x+b.y*c.y};Vector2.cross=function(b,c){return b.x*c.y-b.y*c.x}});ig.baked=!0;
ig.module("plugins.handlers.size-handler").requires("plugins.data.vector").defines(function(){ig.SizeHandler=ig.Class.extend({portraitMode:!0,disableStretchToFitOnMobileFlag:!1,enableStretchToFitOnAntiPortraitModeFlag:!0,enableScalingLimitsOnMobileFlag:!1,minScalingOnMobile:0,maxScalingOnMobile:1,enableStretchToFitOnDesktopFlag:!1,enableScalingLimitsOnDesktopFlag:!1,minScalingOnDesktop:0,maxScalingOnDesktop:1,desktop:{actualSize:new Vector2(window.innerWidth,window.innerHeight),actualResolution:new Vector2(540,
960)},mobile:{actualSize:new Vector2(window.innerWidth,window.innerHeight),actualResolution:new Vector2(540,960)},windowSize:new Vector2(window.innerWidth,window.innerHeight),scaleRatioMultiplier:new Vector2(1,1),sizeRatio:new Vector2(1,1),scale:1,domHandler:null,dynamicClickableEntityDivs:{},coreDivsToResize:["#canvas","#play","#orientate"],adsToResize:{MobileAdInGamePreroll:{"box-width":_SETTINGS.Ad.Mobile.Preroll.Width+2,"box-height":_SETTINGS.Ad.Mobile.Preroll.Height+20},MobileAdInGameEnd:{"box-width":_SETTINGS.Ad.Mobile.End.Width+
2,"box-height":_SETTINGS.Ad.Mobile.End.Height+20},MobileAdInGamePreroll2:{"box-width":_SETTINGS.Ad.Mobile.Preroll.Width+2,"box-height":_SETTINGS.Ad.Mobile.Preroll.Height+20},MobileAdInGameEnd2:{"box-width":_SETTINGS.Ad.Mobile.End.Width+2,"box-height":_SETTINGS.Ad.Mobile.End.Height+20},MobileAdInGamePreroll3:{"box-width":_SETTINGS.Ad.Mobile.Preroll.Width+2,"box-height":_SETTINGS.Ad.Mobile.Preroll.Height+20},MobileAdInGameEnd3:{"box-width":_SETTINGS.Ad.Mobile.End.Width+2,"box-height":_SETTINGS.Ad.Mobile.End.Height+
20}},init:function(b){this.domHandler=b;if("undefined"===typeof b)throw"undefined Dom Handler for Size Handler";this.sizeCalcs();this.eventListenerSetup();this.samsungFix()},sizeCalcs:function(){this.windowSize=new Vector2(window.innerWidth,window.innerHeight);if(ig.ua.mobile){this.mobile.actualSize=new Vector2(window.innerWidth,window.innerHeight);var b=new Vector2(this.mobile.actualResolution.x,this.mobile.actualResolution.y);this.scaleRatioMultiplier=new Vector2(this.mobile.actualSize.x/b.x,this.mobile.actualSize.y/
b.y);if(this.disableStretchToFitOnMobileFlag){var c=Math.min(this.scaleRatioMultiplier.x,this.scaleRatioMultiplier.y);this.enableScalingLimitsOnMobileFlag&&(c>this.maxScalingOnMobile&&(c=this.maxScalingOnMobile),c<this.maxScalingOnMobile&&(c=this.maxScalingOnMobile));this.mobile.actualSize.x=b.x*c;this.mobile.actualSize.y=b.y*c;this.scaleRatioMultiplier.x=c;this.scaleRatioMultiplier.y=c}else this.sizeRatio.x=this.scaleRatioMultiplier.x,this.sizeRatio.y=this.scaleRatioMultiplier.y,this.scaleRatioMultiplier.x=
1,this.scaleRatioMultiplier.y=1}else this.desktop.actualSize=new Vector2(window.innerWidth,window.innerHeight),b=new Vector2(this.desktop.actualResolution.x,this.desktop.actualResolution.y),this.scaleRatioMultiplier=new Vector2(this.desktop.actualSize.x/b.x,this.desktop.actualSize.y/b.y),this.enableStretchToFitOnDesktopFlag?(this.sizeRatio.x=this.scaleRatioMultiplier.x,this.sizeRatio.y=this.scaleRatioMultiplier.y,this.scaleRatioMultiplier.x=1,this.scaleRatioMultiplier.y=1):(c=Math.min(this.scaleRatioMultiplier.x,
this.scaleRatioMultiplier.y),this.enableScalingLimitsOnDesktopFlag&&(c>this.maxScalingOnDesktop&&(c=this.maxScalingOnDesktop),c<this.minScalingOnDesktop&&(c=this.minScalingOnDesktop)),this.desktop.actualSize.x=b.x*c,this.desktop.actualSize.y=b.y*c,this.scaleRatioMultiplier.x=c,this.scaleRatioMultiplier.y=c)},resizeLayers:function(){for(var b=0;b<this.coreDivsToResize.length;b++){var c=ig.domHandler.getElementById(this.coreDivsToResize[b]);if(ig.ua.mobile)if(this.disableStretchToFitOnMobileFlag){var d=
Math.floor(ig.sizeHandler.windowSize.x/2-ig.sizeHandler.mobile.actualSize.x/2),e=Math.floor(ig.sizeHandler.windowSize.y/2-ig.sizeHandler.mobile.actualSize.y/2);0>d&&(d=0);0>e&&(e=0);ig.domHandler.resizeOffset(c,Math.floor(ig.sizeHandler.mobile.actualSize.x),Math.floor(ig.sizeHandler.mobile.actualSize.y),d,e);var f=!1;if(this.portraitMode?window.innerHeight<window.innerWidth:window.innerHeight>window.innerWidth)if(this.enableStretchToFitOnAntiPortraitModeFlag)ig.domHandler.resizeOffset(c,Math.floor(window.innerWidth),
Math.floor(window.innerHeight),0,0);else{var f=new Vector2(window.innerWidth/this.mobile.actualResolution.y,window.innerHeight/this.mobile.actualResolution.x),d=Math.min(f.x,f.y),f=this.mobile.actualResolution.y*d,j=this.mobile.actualResolution.x*d,d=Math.floor(ig.sizeHandler.windowSize.x/2-f/2),e=Math.floor(ig.sizeHandler.windowSize.y/2-j/2);0>d&&(d=0);0>e&&(e=0);ig.domHandler.resizeOffset(c,Math.floor(f),Math.floor(j),d,e)}}else ig.domHandler.resize(c,Math.floor(ig.sizeHandler.mobile.actualSize.x),
Math.floor(ig.sizeHandler.mobile.actualSize.y));else this.enableStretchToFitOnDesktopFlag?ig.domHandler.resize(c,Math.floor(ig.sizeHandler.desktop.actualSize.x),Math.floor(ig.sizeHandler.desktop.actualSize.y)):(d=Math.floor(ig.sizeHandler.windowSize.x/2-ig.sizeHandler.desktop.actualSize.x/2),e=Math.floor(ig.sizeHandler.windowSize.y/2-ig.sizeHandler.desktop.actualSize.y/2),0>d&&(d=0),0>e&&(e=0),ig.domHandler.resizeOffset(c,Math.floor(ig.sizeHandler.desktop.actualSize.x),Math.floor(ig.sizeHandler.desktop.actualSize.y),
d,e))}for(var n in this.adsToResize)b=ig.domHandler.getElementById("#"+n),c=ig.domHandler.getElementById("#"+n+"-Box"),f=(window.innerWidth-this.adsToResize[n]["box-width"])/2+"px",d=(window.innerHeight-this.adsToResize[n]["box-height"])/2+"px",b&&ig.domHandler.css(b,{width:window.innerWidth,height:window.innerHeight}),c&&ig.domHandler.css(c,{left:f,top:d});for(n in this.dynamicClickableEntityDivs){b=Math.min(ig.sizeHandler.scaleRatioMultiplier.x,ig.sizeHandler.scaleRatioMultiplier.y);c=ig.domHandler.getElementById("#"+
n);if(ig.ua.mobile)var m=this.dynamicClickableEntityDivs[n].entity_pos_x,j=this.dynamicClickableEntityDivs[n].entity_pos_y,d=this.dynamicClickableEntityDivs[n].width,f=this.dynamicClickableEntityDivs[n].height,e=Math.floor(m*this.scaleRatioMultiplier.x)+"px",j=Math.floor(j*this.scaleRatioMultiplier.y)+"px",d=Math.floor(d*this.scaleRatioMultiplier.x)+"px",f=Math.floor(f*this.scaleRatioMultiplier.y)+"px";else var f=ig.domHandler.getElementById("#canvas"),f=ig.domHandler.getOffsets(f),e=f.left,g=f.top,
m=this.dynamicClickableEntityDivs[n].entity_pos_x,j=this.dynamicClickableEntityDivs[n].entity_pos_y,d=this.dynamicClickableEntityDivs[n].width,f=this.dynamicClickableEntityDivs[n].height,e=Math.floor(e+m*b)+"px",j=Math.floor(g+j*b)+"px",d=Math.floor(d*b)+"px",f=Math.floor(f*b)+"px";ig.domHandler.css(c,{"float":"left",position:"absolute",left:e,top:j,width:d,height:f,"z-index":3});this.dynamicClickableEntityDivs[n]["font-size"]&&ig.domHandler.css(c,{"font-size":this.dynamicClickableEntityDivs[n]["font-size"]*
b+"px"})}$("#ajaxbar").width(this.windowSize.x);$("#ajaxbar").height(this.windowSize.y)},resize:function(){this.sizeCalcs();this.resizeLayers()},reorient:function(){console.log("changing orientation ...");if(ig.ua.mobile){var b=!1,b=this.portraitMode?window.innerHeight<window.innerWidth:window.innerHeight>window.innerWidth,c=this.domHandler.getElementById("#orientate"),d=this.domHandler.getElementById("#game");b?(this.domHandler.show(c),this.domHandler.hide(d),console.log("portrait"+window.innerWidth+
","+window.innerHeight)):(this.domHandler.show(d),this.domHandler.hide(c),console.log("landscape"+window.innerWidth+","+window.innerHeight))}ig.ua.mobile?(this.resize(),this.resizeAds()):this.resize()},resizeAds:function(){for(var b in this.adsToResize){var c=ig.domHandler.getElementById("#"+b),d=ig.domHandler.getElementById("#"+b+"-Box"),e=(window.innerWidth-this.adsToResize[b]["box-width"])/2+"px",f=(window.innerHeight-this.adsToResize[b]["box-height"])/2+"px";c&&ig.domHandler.css(c,{width:window.innerWidth,
height:window.innerHeight});d&&ig.domHandler.css(d,{left:e,top:f})}},samsungFix:function(){ig.ua.android&&!(4.2>parseFloat(navigator.userAgent.slice(navigator.userAgent.indexOf("Android")+8,navigator.userAgent.indexOf("Android")+11)))&&(!(0>navigator.userAgent.indexOf("GT"))&&!(0<navigator.userAgent.indexOf("Chrome"))&&!(0<navigator.userAgent.indexOf("Firefox")))&&(document.addEventListener("touchstart",function(b){b.preventDefault();return!1},!1),document.addEventListener("touchmove",function(b){b.preventDefault();
return!1},!1),document.addEventListener("touchend",function(b){b.preventDefault();return!1},!1))},orientationInterval:null,orientationTimeout:null,orientationHandler:function(){this.reorient();window.scrollTo(0,1)},orientationDelayHandler:function(){null==this.orientationInterval&&(this.orientationInterval=window.setInterval(this.orientationHandler.bind(this),100));null==this.orientationTimeout&&(this.orientationTimeout=window.setTimeout(function(){this.clearAllIntervals()}.bind(this),2E3))},clearAllIntervals:function(){window.clearInterval(this.orientationInterval);
this.orientationInterval=null;window.clearTimeout(this.orientationTimeout);this.orientationTimeout=null},eventListenerSetup:function(){ig.ua.iOS?(window.addEventListener("orientationchange",this.orientationDelayHandler.bind(this)),window.addEventListener("resize",this.orientationDelayHandler.bind(this))):(window.addEventListener("orientationchange",this.orientationHandler.bind(this)),window.addEventListener("resize",this.orientationHandler.bind(this)));document.ontouchmove=function(b){window.scrollTo(0,
1);b.preventDefault()}}})});ig.baked=!0;
ig.module("plugins.handlers.api-handler").defines(function(){ig.ApiHandler=ig.Class.extend({apiAvailable:{MJSPreroll:function(){ig.ua.mobile&&ig.domHandler.JQUERYAVAILABLE&&_SETTINGS&&_SETTINGS.Ad.Mobile.Preroll.Enabled&&MobileAdInGamePreroll.Initialize()},MJSHeader:function(){ig.ua.mobile&&ig.domHandler.JQUERYAVAILABLE&&_SETTINGS.Ad.Mobile.Header.Enabled&&MobileAdInGameHeader.Initialize()},MJSFooter:function(){ig.ua.mobile&&ig.domHandler.JQUERYAVAILABLE&&_SETTINGS.Ad.Mobile.Footer.Enabled&&MobileAdInGameFooter.Initialize()},
MJSEnd:function(){ig.ua.mobile&&ig.domHandler.JQUERYAVAILABLE&&_SETTINGS.Ad.Mobile.End.Enabled&&MobileAdInGameEnd.Initialize()}},run:function(b,c){if(this.apiAvailable[b])this.apiAvailable[b](c)}})});ig.baked=!0;
ig.module("plugins.audio.sound-player").defines(function(){SoundPlayer=ig.Class.extend({tagName:"SoundPlayer",stayMuteFlag:!1,debug:!1,init:function(){this.debug&&console.log(this.tagName)},play:function(b){this.debug&&console.log("play sound ",b)},stop:function(){this.debug&&console.log("stop sound ")},volume:function(){this.debug&&console.log("set volume")},mute:function(b){this.debug&&console.log("mute");"undefined"===typeof b?this.stayMuteFlag=!0:b&&(this.stayMuteFlag=!0)},unmute:function(b){this.debug&&
console.log("unmute");"undefined"===typeof b?this.stayMuteFlag=!1:b&&(this.stayMuteFlag=!1)}})});ig.baked=!0;
ig.module("plugins.audio.impact-music-player").requires("plugins.audio.sound-player").defines(function(){ImpactMusicPlayer=SoundPlayer.extend({tagName:"ImpactMusicPlayer",bgmPlaying:!1,soundList:{},init:function(b,c){this.parent(b,c);for(var d in b)this.soundList[d]=d,ig.music.add(b[d].path+".*",d);c&&c.loop&&(ig.music.loop=c.loop)},play:function(b){this.stayMuteFlag||(this.bgmPlaying=!0,"undefined"===typeof b?ig.music.play(b):ig.music.play())},stop:function(){this.bgmPlaying=!1;ig.music.pause()},
volume:function(b){console.log("impactmusic:",b);ig.music.volume=0>b?0:isNaN(b)?1:1<b?1:b},getVolume:function(){return ig.music.volume},mute:function(b){this.parent(b);this.bgmPlaying&&this.stop()},unmute:function(b){this.parent(b);this.play()}})});ig.baked=!0;
ig.module("plugins.audio.impact-sound-player").requires("plugins.audio.sound-player").defines(function(){ImpactSoundPlayer=SoundPlayer.extend({tagName:"ImpactSoundPlayer",soundList:{},init:function(b,c){this.parent(b,c);for(var d in b){var e=new ig.Sound(b[d].path+".*");this.soundList[d]=e}},play:function(b){this.stayMuteFlag||("object"===typeof b?(console.log(b+" exists"),b.play()):"string"===typeof b&&this.soundList[b].play())},stop:function(b){this.parent(b);b.stop()},volume:function(b){ig.soundManager.volume=
0>b?0:isNaN(b)?1:1<b?1:b},getVolume:function(){return ig.soundManager.volume},mute:function(b){this.parent(b);ig.Sound.enabled=!1},unmute:function(b){this.parent(b);ig.Sound.enabled=!0}})});ig.baked=!0;
ig.module("plugins.audio.howler-player").requires("plugins.audio.sound-player").defines(function(){HowlerPlayer=SoundPlayer.extend({tagName:"HowlerPlayer",soundList:{},init:function(b,c){this.parent(b,c);for(var d in b){var e=b[d].path,e=new Howl({src:[e+"."+ig.Sound.FORMAT.OGG.ext,e+"."+ig.Sound.FORMAT.MP3.ext]});this.soundList[d]=e}},play:function(b){this.stayMuteFlag||("object"===typeof b?b.play():"string"===typeof b&&this.soundList[b].play())},stop:function(b){this.parent(b);"object"===typeof b?
b.stop():"string"===typeof b&&this.soundList[b].stop()},volume:function(b){for(var c in this.soundList){if(0>b){this.soundList[c].volume(0);break}isNaN(b)?this.soundList[c].volume(1):1<b?this.soundList[c].volume(1):this.soundList[c].volume(b)}},getVolume:function(){for(var b in this.soundList)return this.soundList[b].volume()},mute:function(b){this.parent(b);Howler.mute(!0)},unmute:function(b){this.parent(b);Howler.mute(!1)}})});ig.baked=!0;
ig.module("plugins.audio.howler-music-player").requires("plugins.audio.sound-player").defines(function(){HowlerMusicPlayer=SoundPlayer.extend({tagName:"HowlerMusicPlayer",bgmPlaying:!1,soundList:{},init:function(b,c){this.parent(b,c);for(var d in b){var e=b[d].path,e=new Howl({src:[e+"."+ig.Sound.FORMAT.OGG.ext,e+"."+ig.Sound.FORMAT.MP3.ext],loop:!0,autoplay:!1,onend:function(){}.bind(this)});this.soundList[d]=e}},play:function(b){if(!this.stayMuteFlag&&!this.bgmPlaying)if("object"===typeof b)this.bgmPlaying=
!0,b.play();else if("string"===typeof b)this.bgmPlaying=!0,this.soundList[b].play();else for(var c in this.soundList){this.soundList[c].play();this.bgmPlaying=!0;break}},stop:function(b){this.parent(b);if(this.bgmPlaying){for(var c in this.soundList)this.soundList[c].stop();this.bgmPlaying=!1}},volume:function(b){console.log("howler",b);for(var c in this.soundList){if(0>b){this.soundList[c].volume(0);break}isNaN(b)?this.soundList[c].volume(1):1<b?this.soundList[c].volume(1):this.soundList[c].volume(b)}},
getVolume:function(){for(var b in this.soundList)return this.soundList[b].volume()},mute:function(b){this.parent(b);Howler.mute(!0)},unmute:function(b){this.parent(b);Howler.mute(!1)}})});ig.baked=!0;
ig.module("plugins.audio.jukebox-player").requires("plugins.audio.sound-player").defines(function(){JukeboxPlayer=SoundPlayer.extend({tagName:"JukeboxPlayer",bgmPlaying:!1,soundList:{},jukeboxPlayer:null,pausePosition:0,premuteVolume:0,minVolume:0.001,init:function(b,c){this.parent(b,c);for(var d in b){this.soundList[d]=d;var e=b[d].path;this.jukeboxPlayer=new jukebox.Player({resources:[e+"."+ig.Sound.FORMAT.OGG.ext,e+"."+ig.Sound.FORMAT.MP3.ext],autoplay:!1,spritemap:{music:{start:b[d].startMp3,
end:b[d].endMp3,loop:!0}}})}},play:function(){this.stayMuteFlag||(this.bgmPlaying=!0,this.pausePosition?(console.log("resume"),this.jukeboxPlayer.resume(this.pausePosition)):(console.log("play"),this.jukeboxPlayer.play(this.jukeboxPlayer.settings.spritemap.music.start,!0)),this.premuteVolume=this.getVolume())},stop:function(){this.bgmPlaying=!1;this.pausePosition=this.jukeboxPlayer.pause()},volume:function(b){console.log("jukebox:",b);0>=b?this.jukeboxPlayer.setVolume(this.minVolume):isNaN(b)?this.jukeboxPlayer.setVolume(1):
1<b?this.jukeboxPlayer.setVolume(1):this.jukeboxPlayer.setVolume(b)},getVolume:function(){return this.jukeboxPlayer.getVolume()},mute:function(b){this.parent(b);this.bgmPlaying&&(console.log("jukebox",this.premuteVolume),this.stayMuteFlag||(this.premuteVolume=this.getVolume()),this.jukeboxPlayer.pause(),this.jukeboxPlayer.setVolume(this.minVolume))},unmute:function(b){this.parent(b);this.stayMuteFlag||(console.log("jukebox",this.premuteVolume),this.jukeboxPlayer.setVolume(this.premuteVolume),this.jukeboxPlayer.resume())}})});
ig.baked=!0;
ig.module("plugins.audio.webaudio-music-player").requires("plugins.audio.sound-player").defines(function(){WebaudioMusicPlayer=SoundPlayer.extend({tagName:"WebaudioMusicPlayer",bgmPlaying:!1,isSupported:!1,muteFlag:!1,pausedTime:0,webaudio:null,useHTML5Audio:!1,audio:null,inactiveAudio:null,codecs:null,reinitOnPlay:!1,inputList:null,_volume:1,soundList:{},init:function(b){this.webaudio={compatibility:{},gainNode:null,buffer:null,source_loop:{},source_once:{}};try{Howler&&Howler.ctx?this.webaudio.context=Howler.ctx:
ig&&ig.webaudio_ctx?this.webaudio.context=ig.webaudio_ctx:(this.AudioContext=window.AudioContext||window.webkitAudioContext,this.webaudio.context=new this.AudioContext,ig.webaudio_ctx=this.webaudio.context),this.isSupported=!0}catch(c){console.log("Web Audio API not supported in this browser."),this.webaudio=null,this.useHTML5Audio=!0}if(this.useHTML5Audio)if("undefined"!==typeof Audio)try{new Audio}catch(d){this.useHTML5Audio=!1}else this.useHTML5Audio=!1;this.useHTML5Audio&&(this.audio=new Audio,
this.isSupported=!0,this.initHTML5Audio(b));if(!this.isSupported)return null;this.webaudio&&(this.inputList=b,this.initWebAudio(b))},initWebAudio:function(b){ig.ua.iOS&&this.initIOSWebAudioUnlock();this.webaudio.gainNode=this.webaudio.context.createGain();this.webaudio.gainNode.connect(this.webaudio.context.destination);this.webaudio.gainNode.gain.value=this._volume;this.webaudio.buffer=null;var c="start",d="stop",e=this.webaudio.context.createBufferSource();"function"!==typeof e.start&&(c="noteOn");
this.webaudio.compatibility.start=c;"function"!==typeof e.stop&&(d="noteOff");this.webaudio.compatibility.stop=d;for(var f in b){this.soundList[f]=f;var d=b[f].path,c=d+"."+ig.Sound.FORMAT.MP3.ext,j=d+"."+ig.Sound.FORMAT.OGG.ext;ig.ua.mobile?ig.ua.iOS&&(j=c):(d=navigator.userAgent.toLowerCase(),-1!=d.indexOf("safari")&&-1>=d.indexOf("chrome")&&(j=c),d.indexOf("win64")&&(j=c));var n=new XMLHttpRequest;n.open("GET",j,!0);n.responseType="arraybuffer";n.onload=function(){this.webaudio.context.decodeAudioData(n.response,
function(b){this.webaudio.buffer=b;this.webaudio.source_loop={};this.bgmPlaying?this.play(null,!0):this.stop()}.bind(this),function(){console.log('Error decoding audio "'+j+'".')})}.bind(this);n.send();if(4==n.readyState&&"undefined"!==typeof Audio){this.useHTML5Audio=!0;try{new Audio}catch(m){this.useHTML5Audio=!1}this.useHTML5Audio&&(console.log("Using HTML5 Audio"),this.webaudio=null,this.audio=new Audio,this.isSupported=!0,this.initHTML5Audio(b))}break}},initIOSWebAudioUnlock:function(){if(this.webaudio){webaudio=
this.webaudio;var b=function(){var c=webaudio.context,d=c.createBuffer(1,1,22050),e=c.createBufferSource();e.buffer=d;e.connect(c.destination);"undefined"===typeof e.start?e.noteOn(0):e.start(0);setTimeout(function(){(e.playbackState===e.PLAYING_STATE||e.playbackState===e.FINISHED_STATE)&&window.removeEventListener("touchend",b,!1)}.bind(this),0)};window.addEventListener("touchend",b,!1)}},initHTML5Audio:function(b){if(this.useHTML5Audio&&this.audio){var c=this.audio;this.codecs={};this.codecs={mp3:!!c.canPlayType("audio/mpeg;").replace(/^no$/,
""),opus:!!c.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!c.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!c.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),aac:!!c.canPlayType("audio/aac;").replace(/^no$/,""),m4a:!!(c.canPlayType("audio/x-m4a;")||c.canPlayType("audio/m4a;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(c.canPlayType("audio/x-mp4;")||c.canPlayType("audio/mp4;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!c.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,
"")};this.is={ff:Boolean(null!=window.mozInnerScreenX&&/firefox/.test(navigator.userAgent.toLowerCase())),ie:Boolean(document.all&&!window.opera),opera:Boolean(window.opera),chrome:Boolean(window.chrome),safari:Boolean(!window.chrome&&/safari/.test(navigator.userAgent.toLowerCase())&&window.getComputedStyle&&!window.globalStorage&&!window.opera)};this.playDelay=-60;this.stopDelay=30;this.is.chrome&&(this.playDelay=-25);this.is.chrome&&(this.stopDelay=25);this.is.ff&&(this.playDelay=-25);this.is.ff&&
(this.stopDelay=85);this.is.opera&&(this.playDelay=5);this.is.opera&&(this.stopDelay=0);for(var d in b){this.soundList[d]=d;var e=b[d].path,c=e+"."+ig.Sound.FORMAT.OGG.ext,e=e+"."+ig.Sound.FORMAT.MP3.ext,f=null;this.codecs[ig.Sound.FORMAT.OGG.ext.toLowerCase()]?f=c:this.codecs[ig.Sound.FORMAT.MP3.ext.toLowerCase()]&&(f=e);if(f){ig.ua.mobile?ig.ua.iOS&&(f=e):(b=navigator.userAgent.toLowerCase(),-1!=b.indexOf("safari")&&-1>=b.indexOf("chrome")&&(f=e));this.audio.addEventListener("error",function(){this.audio.error&&
4===this.audio.error.code&&(this.isSupported=!1)},!1);this.audio.src=f;this.audio._pos=0;this.audio.preload="auto";this.audio.volume=this._volume;this.inactiveAudio=new Audio;this.inactiveAudio.src=f;this.inactiveAudio._pos=0;this.inactiveAudio.preload="auto";this.inactiveAudio.volume=this._volume;this.inactiveAudio.load();var j=function(){this._duration=this.audio.duration;this._loaded||(this._loaded=!0);this.bgmPlaying?this.play(null,!0):this.stop();this.audio.removeEventListener("canplaythrough",
j,!1)}.bind(this);this.audio.addEventListener("canplaythrough",j,!1);this.audio.load();break}}}},play:function(b,c){if(this.isSupported)if(this.bgmPlaying=!0,this.webaudio){if(!c&&this.reinitOnPlay&&this.webaudio.source_loop.buffer==this.webaudio.buffer){if(this.webaudio.source_loop._playing&&(this.webaudio.source_loop[this.webaudio.compatibility.stop](0),this.webaudio.source_loop._playing=!1,this.pausedTime+=this.webaudio.context.currentTime-this.webaudio.source_loop._startTime,this.pausedTime%=
this.webaudio.source_loop.buffer.duration,this.webaudio.source_loop._startTime=0,"noteOn"===this.webaudio.compatibility.start))this.webaudio.source_once[this.webaudio.compatibility.stop](0);try{this.webaudio.context.close();this.webaudio.context=new this.AudioContext;this.webaudio.gainNode=this.webaudio.context.createGain();this.webaudio.gainNode.connect(this.webaudio.context.destination);this.webaudio.gainNode.gain.value=this._volume;var d="start",e="stop",f=this.webaudio.context.createBufferSource();
"function"!==typeof f.start&&(d="noteOn");this.webaudio.compatibility.start=d;"function"!==typeof f.stop&&(e="noteOff");this.webaudio.compatibility.stop=e;this.webaudio.source_loop={};this.play(null,!0)}catch(j){}}if(this.webaudio.buffer){if(!this.muteFlag&&(this.bgmPlaying=!0,!this.webaudio.source_loop._playing)){this.webaudio.source_loop=this.webaudio.context.createBufferSource();this.webaudio.source_loop.buffer=this.webaudio.buffer;this.webaudio.source_loop.loop=!0;this.webaudio.source_loop.connect(this.webaudio.gainNode);
if(null==b||isNaN(b))b=0,this.pausedTime&&(b=this.pausedTime);this.webaudio.source_loop._startTime=this.webaudio.context.currentTime;if("noteOn"===this.webaudio.compatibility.start)this.webaudio.source_once=this.webaudio.context.createBufferSource(),this.webaudio.source_once.buffer=this.webaudio.buffer,this.webaudio.source_once.connect(this.webaudio.gainNode),this.webaudio.source_once.noteGrainOn(0,b,this.webaudio.buffer.duration-b),this.webaudio.source_loop[this.webaudio.compatibility.start](this.webaudio.context.currentTime+
(this.webaudio.buffer.duration-b));else this.webaudio.source_loop[this.webaudio.compatibility.start](0,b);this.webaudio.source_loop._playing=!0}}else this.bgmPlaying=!0}else if(this.audio){var n=this.audio;if(!this.muteFlag)if(this.bgmPlaying=!0,isNaN(b)&&(b=0,this.pausedTime&&(b=this.pausedTime)),d=this._duration-b,this._onEndTimer&&(clearTimeout(this._onEndTimer),this._onEndTimer=null),this._onEndTimer=setTimeout(function(){this.audio.currentTime=0;this.audio.pause();this.pausedTime=0;if(this.inactiveAudio){var b=
this.audio;this.audio=this.inactiveAudio;this.inactiveAudio=b}this.play()}.bind(this),1E3*d+this.playDelay),4===n.readyState||!n.readyState&&navigator.isCocoonJS)n.readyState=4,n.currentTime=b,n.muted=this.muteFlag||n.muted,n.volume=this._volume,setTimeout(function(){n.play()},0);else{clearTimeout(this._onEndTimer);this._onEndTimer=null;var m=function(){typeof("function"==this.play)&&(this.play(),n.removeEventListener("canplaythrough",m,!1))}.bind(this);n.addEventListener("canplaythrough",m,!1)}}},
stop:function(){this.bgmPlaying=!1;if(this.isSupported)if(this.webaudio){if(this.webaudio.source_loop._playing&&(this.webaudio.source_loop[this.webaudio.compatibility.stop](0),this.webaudio.source_loop._playing=!1,this.pausedTime+=this.webaudio.context.currentTime-this.webaudio.source_loop._startTime,this.pausedTime%=this.webaudio.source_loop.buffer.duration,this.webaudio.source_loop._startTime=0,"noteOn"===this.webaudio.compatibility.start))this.webaudio.source_once[this.webaudio.compatibility.stop](0)}else if(this.audio){var b=
this.audio;4==b.readyState&&(this.pausedTime=b.currentTime,b.currentTime=0,b.pause(),clearTimeout(this._onEndTimer),this._onEndTimer=null)}},volume:function(b){if(isNaN(b)||null==b)return this.getVolume();this.isSupported&&(this._volume=b,0>this._volume?this._volume=0:1<this._volume&&(this._volume=1),this.webaudio?this.webaudio.gainNode&&(this.webaudio.gainNode.gain.value=this._volume):this.audio&&(this.audio.volume=this._volume,this.inactiveAudio&&(this.inactiveAudio.volume=this._volume)))},getVolume:function(){return!this.isSupported?
0:this._volume},mute:function(b){this.parent(b);!1==this.muteFlag&&(this.muteFlag=!0,this.bgmPlaying&&(this.stop(),this.bgmPlaying=!0))},unmute:function(b){this.parent(b);!this.stayMuteFlag&&!0==this.muteFlag&&(this.muteFlag=!1,this.bgmPlaying&&this.play())}})});ig.baked=!0;
ig.module("plugins.audio.sound-info").defines(function(){SoundInfo=ig.Class.extend({FORMATS:{OGG:".ogg",MP3:".mp3"},sfx:{kittyopeningSound:{path:"media/audio/opening/kittyopening"},staticSound:{path:"media/audio/sfx/static"},button:{path:"media/audio/games/button"},over:{path:"media/audio/games/over"},win:{path:"media/audio/games/win"},lose:{path:"media/audio/games/lose"},openingSound:{path:"media/audio/opening/opening"}},bgm:{background:{path:"media/audio/bgm",startOgg:0,endOgg:21.463,startMp3:0,
endMp3:21.463}}})});ig.baked=!0;
ig.module("plugins.audio.sound-handler").requires("plugins.audio.impact-music-player","plugins.audio.impact-sound-player","plugins.audio.howler-player","plugins.audio.howler-music-player","plugins.audio.jukebox-player","plugins.audio.webaudio-music-player","plugins.audio.sound-info").defines(function(){ig.SoundHandler=ig.Class.extend({bgmPlayer:null,sfxPlayer:null,focusBlurMute:!1,soundInfo:new SoundInfo,init:function(){console.log("Initiating sound handler");this.initWindowHandler();ig.ua.mobile?
(this.initPowerButtonFix(),this.bgmPlayer=new WebaudioMusicPlayer(this.soundInfo.bgm,{loop:!0}),this.bgmPlayer.isSupported||(this.bgmPlayer=new JukeboxPlayer(this.soundInfo.bgm,{loop:!0}))):(this.bgmPlayer=new WebaudioMusicPlayer(this.soundInfo.bgm,{loop:!0}),this.bgmPlayer.isSupported||(this.bgmPlayer=new ImpactMusicPlayer(this.soundInfo.bgm,{loop:!0})));this.sfxPlayer=new HowlerPlayer(this.soundInfo.sfx)},checkBGM:function(){return this.bgmPlayer.stayMuteFlag},checkSFX:function(){return this.sfxPlayer.stayMuteFlag},
muteSFX:function(b){this.sfxPlayer&&this.sfxPlayer.mute(b)},muteBGM:function(b){this.bgmPlayer&&this.bgmPlayer.mute(b)},unmuteSFX:function(b){this.sfxPlayer&&this.sfxPlayer.unmute(b)},unmuteBGM:function(b){this.bgmPlayer&&this.bgmPlayer.unmute(b)},muteAll:function(b){this.muteSFX(b);this.muteBGM(b)},unmuteAll:function(b){this.unmuteSFX(b);this.unmuteBGM(b)},forceMuteAll:function(){this.focusBlurMute||this.muteAll(!1);this.focusBlurMute=!0},forceUnMuteAll:function(){this.focusBlurMute&&(this.unmuteAll(!1),
this.focusBlurMute=!1)},initWindowHandler:function(){"true"===ig.domHandler.getQueryVariable("webview")?($(window).focus(function(){ig.game&&ig.game.resumeGame();ig.soundHandler&&ig.soundHandler.forceUnMuteAll()}),$(window).blur(function(){ig.game&&ig.game.pauseGame();ig.soundHandler&&ig.soundHandler.forceMuteAll()})):(window.onfocus=function(){ig.game&&ig.game.resumeGame();ig.soundHandler&&ig.soundHandler.forceUnMuteAll()},window.onblur=function(){ig.game&&ig.game.pauseGame();ig.soundHandler&&ig.soundHandler.forceMuteAll()})},
initPowerButtonFix:function(){var b=this.getHiddenProp();b&&(b=b.replace(/[H|h]idden/,"")+"visibilitychange",document.addEventListener(b,this.visChange));window.addEventListener("pagehide",function(){ig.game&&ig.game.pauseGame();ig.soundHandler&&ig.soundHandler.forceMuteAll()},!1);window.addEventListener("pageshow",function(){ig.game&&ig.game.resumeGame();ig.soundHandler&&ig.soundHandler.forceUnMuteAll()},!1)},getHiddenProp:function(){var b=["webkit","moz","ms","o"];if("hidden"in document)return"hidden";
for(var c=0;c<b.length;c++)if(b[c]+"Hidden"in document)return b[c]+"Hidden";return null},isHidden:function(){var b=this.getHiddenProp();return!b?!1:document[b]},visChange:function(){ig.soundHandler.isHidden()?(ig.ua.mobile&&ig.game&&ig.game.pauseGame(),ig.soundHandler&&ig.soundHandler.forceMuteAll()):(ig.ua.mobile&&ig.game&&ig.game.resumeGame(),ig.soundHandler&&ig.soundHandler.forceUnMuteAll())},saveVolume:function(){this.sfxPlayer&&ig.game.io.storageSet("soundVolume",this.sfxPlayer.getVolume());
this.bgmPlayer&&ig.game.io.storageSet("musicVolume",this.bgmPlayer.getVolume())},forceLoopBGM:function(){var b;if(!this.focusBlurMute&&this.bgmPlayer.bgmPlaying&&this.bgmPlayer){var c=this.bgmPlayer.jukeboxPlayer;if(c){null!=window.mozInnerScreenX&&/firefox/.test(navigator.userAgent.toLowerCase());b=Boolean(window.chrome);!window.chrome&&/safari/.test(navigator.userAgent.toLowerCase());var d=0.1;ig.ua.mobile&&(d=0.115,ig.ua.android&&(d=0.45,b&&(d=0.3)));c.settings.spritemap.music&&(b=c.settings.spritemap.music.end-
d,c.getCurrentTime()>=b&&(b=c.settings.spritemap.music.start,ig.ua.android?this.forcelooped||(c.play(b,!0),this.forcelooped=!0,setTimeout(function(){ig.soundHandler.forcelooped=!1},d)):c.setCurrentTime(b)))}else"ImpactMusicPlayer"==this.bgmPlayer.tagName&&(null!=window.mozInnerScreenX&&/firefox/.test(navigator.userAgent.toLowerCase()),b=Boolean(window.chrome),!window.chrome&&/safari/.test(navigator.userAgent.toLowerCase()),d=0.1,ig.ua.mobile&&(d=0.115,ig.ua.android&&(d=0.45,b&&(d=0.3))),c=0,"mp3"==
ig.soundManager.format.ext&&(c=0.05),ig.music.currentTrack&&(b=ig.music.currentTrack.duration-d,ig.music.currentTrack.currentTime>=b&&(ig.ua.android?this.forcelooped||(ig.music.currentTrack.pause(),ig.music.currentTrack.currentTime=c,ig.music.currentTrack.play(),this.forcelooped=!0,setTimeout(function(){ig.soundHandler.forcelooped=!1},d)):ig.music.currentTrack.currentTime=c)))}}})});ig.baked=!0;
ig.module("plugins.io.storage").defines(function(){ig.Storage=ig.Class.extend({staticInstantiate:function(){return!ig.Storage.instance?null:ig.Storage.instance},init:function(){ig.Storage.instance=this},isCapable:function(){return"undefined"!==typeof window.localStorage},isSet:function(b){return null!==this.get(b)},initUnset:function(b,c){null===this.get(b)&&this.set(b,c)},get:function(b){if(!this.isCapable())return null;try{return JSON.parse(localStorage.getItem(b))}catch(c){return window.localStorage.getItem(b)}},
getInt:function(b){return~~this.get(b)},getFloat:function(b){return parseFloat(this.get(b))},getBool:function(b){return!!this.get(b)},key:function(b){return this.isCapable()?window.localStorage.key(b):null},set:function(b,c){if(!this.isCapable())return null;try{window.localStorage.setItem(b,JSON.stringify(c))}catch(d){console.log(d)}},setHighest:function(b,c){c>this.getFloat(b)&&this.set(b,c)},remove:function(b){if(!this.isCapable())return null;window.localStorage.removeItem(b)},clear:function(){if(!this.isCapable())return null;
window.localStorage.clear()}})});ig.baked=!0;
ig.module("plugins.io.mouse").defines(function(){Mouse=ig.Class.extend({bindings:{click:[ig.KEY.MOUSE1]},init:function(){ig.input.initMouse();for(var b in this.bindings){this[b]=b;for(var c=0;c<this.bindings[b].length;c++)ig.input.bind(this.bindings[b][c],b)}},getPos:function(){if(ig.ua.mobile){var b=ig.input.mouse.x/ig.sizeHandler.sizeRatio.x,c=ig.input.mouse.y/ig.sizeHandler.sizeRatio.y;return new Vector2(b/ig.sizeHandler.scaleRatioMultiplier.x,c/ig.sizeHandler.scaleRatioMultiplier.y)}b=ig.input.mouse.x/
ig.sizeHandler.sizeRatio.x;c=ig.input.mouse.y/ig.sizeHandler.sizeRatio.y;return new Vector2(b,c)}})});ig.baked=!0;ig.module("plugins.io.keyboard").defines(function(){Keyboard=ig.Class.extend({bindings:{jump:[ig.KEY.W,ig.KEY.UP_ARROW],moveright:[ig.KEY.D,ig.KEY.RIGHT_ARROW],moveleft:[ig.KEY.A,ig.KEY.LEFT_ARROW],shoot:[ig.KEY.S,ig.KEY.DOWN_ARROW,ig.KEY.SPACE]},init:function(){for(var b in this.bindings){this[b]=b;for(var c=0;c<this.bindings[b].length;c++)ig.input.bind(this.bindings[b][c],b)}}})});
ig.baked=!0;
ig.module("plugins.io.gamepad-input").defines(function(){ig.PADKEY={BUTTON_0:0,PADBUTTON_1:1,BUTTON_2:2,BUTTON_3:3,BUTTON_LEFT_BUMPER:4,BUTTON_RIGHT_BUMPER:5,BUTTON_LEFT_TRIGGER:6,BUTTON_RIGHT_TRIGGER:7,BUTTON_LEFT_JOYSTICK:10,BUTTON_RIGHT_JOYSTICK:11,BUTTON_DPAD_UP:12,BUTTON_DPAD_DOWN:13,BUTTON_DPAD_LEFT:14,BUTTON_DPAD_RIGHT:15,BUTTON_MENU:16,AXIS_LEFT_JOYSTICK_X:0,AXIS_LEFT_JOYSTICK_Y:1,AXIS_RIGHT_JOYSTICK_X:2,AXIS_RIGHT_JOYSTICK_Y:3};ig.GamepadInput=ig.Class.extend({isInit:!1,isSupported:!1,list:[],
bindings:{},states:{},presses:{},releases:{},downLocks:{},upLocks:{},leftStick:{x:0,y:0},rightStick:{x:0,y:0},start:function(){if(!this.isInit){this.isInit=!0;var b=navigator.getGamepads||navigator.webkitGetGamepads;b&&(!navigator.getGamepads&&navigator.webkitGetGamepads&&(navigator.getGamepads=navigator.webkitGetGamepads),this.list=navigator.getGamepads());this.isSupported=b}},isAvailable:function(){return this.isInit&&this.isSupported},buttonPressed:function(b){return"object"==typeof b?b.pressed:
1==b},buttonDown:function(b){if(b=this.bindings[b])this.states[b]=!0,this.downLocks[b]||(this.presses[b]=!0,this.downLocks[b]=!0)},buttonUp:function(b){if((b=this.bindings[b])&&this.downLocks[b]&&!this.upLocks[b])this.states[b]=!1,this.releases[b]=!0,this.upLocks[b]=!0},clearPressed:function(){for(var b in this.releases)this.states[b]=!1,this.downLocks[b]=!1;this.releases={};this.presses={};this.upLocks={}},bind:function(b,c){this.bindings[b]=c},unbind:function(b){this.releases[this.bindings[b]]=
!0;this.bindings[b]=null},unbindAll:function(){this.bindings={};this.states={};this.presses={};this.releases={};this.downLocks={};this.upLocks={}},state:function(b){return this.states[b]},pressed:function(b){return this.presses[b]},released:function(b){return this.releases[b]},clamp:function(b,c,d){return b<c?c:b>d?d:b},pollGamepads:function(){if(this.isSupported){this.leftStick.x=0;this.leftStick.y=0;this.rightStick.x=0;this.rightStick.y=0;this.list=navigator.getGamepads();for(var b in this.bindings){for(var c=
!1,d=0;d<this.list.length;d++){var e=this.list[d];if(e&&e.buttons&&this.buttonPressed(e.buttons[b])){c=!0;break}}c?this.buttonDown(b):this.buttonUp(b)}for(d=0;d<this.list.length;d++)if((e=this.list[d])&&e.axes){b=e.axes[ig.GAMEPADINPUT.AXIS_LEFT_JOYSTICK_X];var c=e.axes[ig.GAMEPADINPUT.AXIS_LEFT_JOYSTICK_Y],f=e.axes[ig.GAMEPADINPUT.AXIS_RIGHT_JOYSTICK_X],e=e.axes[ig.GAMEPADINPUT.AXIS_RIGHT_JOYSTICK_Y];this.leftStick.x+=isNaN(b)?0:b;this.leftStick.y+=isNaN(c)?0:c;this.rightStick.x+=isNaN(f)?0:f;this.rightStick.y+=
isNaN(e)?0:e}0<this.list.length&&(this.leftStick.x=this.clamp(this.leftStick.x,-1,1),this.leftStick.y=this.clamp(this.leftStick.y,-1,1),this.rightStick.x=this.clamp(this.rightStick.x,-1,1),this.rightStick.y=this.clamp(this.rightStick.y,-1,1))}}})});ig.baked=!0;
ig.module("plugins.io.gamepad").requires("plugins.io.gamepad-input").defines(function(){Gamepad=ig.Class.extend({bindings:{padJump:[ig.PADKEY.BUTTON_0]},init:function(){ig.gamepadInput.start();for(var b in this.bindings)for(var c=0;c<this.bindings[b].length;c++)ig.gamepadInput.bind(this.bindings[b][c],b)},press:function(){},held:function(){},release:function(){}})});ig.baked=!0;
ig.module("plugins.io.multitouch").defines(function(){Multitouch=ig.Class.extend({init:function(){ig.multitouchInput.start()},getTouchesPos:function(){if(ig.ua.mobile){if(0<ig.multitouchInput.touches.length){for(var b=[],c=0;c<ig.multitouchInput.touches.length;c++){var d=ig.multitouchInput.touches[c];b.push({x:d.x,y:d.y})}return b}return null}}})});ig.baked=!0;
ig.module("plugins.io.multitouch-input").defines(function(){ig.MultitouchInput=ig.Class.extend({isStart:!1,touches:[],multitouchCapable:!1,lastEventUp:null,start:function(){this.isStart||(this.isStart=!0,navigator.maxTouchPoints&&1<navigator.maxTouchPoints&&(this.multitouchCapable=!0),ig.ua.touchDevice&&(window.navigator.msPointerEnabled&&(ig.system.canvas.addEventListener("MSPointerDown",this.touchdown.bind(this),!1),ig.system.canvas.addEventListener("MSPointerUp",this.touchup.bind(this),!1),ig.system.canvas.addEventListener("MSPointerMove",
this.touchmove.bind(this),!1),ig.system.canvas.style.msContentZooming="none",ig.system.canvas.style.msTouchAction="none"),ig.system.canvas.addEventListener("touchstart",this.touchdown.bind(this),!1),ig.system.canvas.addEventListener("touchend",this.touchup.bind(this),!1),ig.system.canvas.addEventListener("touchmove",this.touchmove.bind(this),!1)))},touchmove:function(b){if(ig.ua.touchDevice){var c=parseInt(ig.system.canvas.offsetWidth)||ig.system.realWidth,d=parseInt(ig.system.canvas.offsetHeight)||
ig.system.realHeight,c=ig.system.scale*(c/ig.system.realWidth),d=ig.system.scale*(d/ig.system.realHeight);if(b.touches){for(;0<this.touches.length;)this.touches.pop();!this.multitouchCapable&&1<b.touches.length&&(this.multitouchCapable=!0);var e={left:0,top:0};ig.system.canvas.getBoundingClientRect&&(e=ig.system.canvas.getBoundingClientRect());for(var f=0;f<b.touches.length;f++){var j=b.touches[f];j&&this.touches.push({x:(j.clientX-e.left)/c,y:(j.clientY-e.top)/d})}}else this.windowMove(b)}},touchdown:function(b){var c=
parseInt(ig.system.canvas.offsetWidth)||ig.system.realWidth,d=parseInt(ig.system.canvas.offsetHeight)||ig.system.realHeight,c=ig.system.scale*(c/ig.system.realWidth),d=ig.system.scale*(d/ig.system.realHeight);if(window.navigator.msPointerEnabled)this.windowKeyDown(b);else if(ig.ua.touchDevice&&b.touches){for(;0<this.touches.length;)this.touches.pop();!this.multitouchCapable&&1<b.touches.length&&(this.multitouchCapable=!0);var e={left:0,top:0};ig.system.canvas.getBoundingClientRect&&(e=ig.system.canvas.getBoundingClientRect());
for(var f=0;f<b.touches.length;f++){var j=b.touches[f];j&&this.touches.push({x:(j.clientX-e.left)/c,y:(j.clientY-e.top)/d})}}},touchup:function(b){var c=parseInt(ig.system.canvas.offsetWidth)||ig.system.realWidth;parseInt(ig.system.canvas.offsetHeight);c=ig.system.scale*(c/ig.system.realWidth);if(window.navigator.msPointerEnabled)this.windowKeyUp(b);else{this.lastEventUp=b;var d={left:0,top:0};ig.system.canvas.getBoundingClientRect&&(d=ig.system.canvas.getBoundingClientRect());if(ig.ua.touchDevice){b=
(b.changedTouches[0].clientX-d.left)/c;for(c=0;c<this.touches.length;c++)this.touches[c].x>=b-40&&this.touches[c].x<=b+40&&this.touches.splice(c,1)}}},windowKeyDown:function(b){var c=parseInt(ig.system.canvas.offsetWidth)||ig.system.realWidth,d=parseInt(ig.system.canvas.offsetHeight)||ig.system.realHeight,c=ig.system.scale*(c/ig.system.realWidth),d=ig.system.scale*(d/ig.system.realHeight);if(window.navigator.msPointerEnabled){var e={left:0,top:0};ig.system.canvas.getBoundingClientRect&&(e=ig.system.canvas.getBoundingClientRect());
b=b.changedTouches?b.changedTouches:[b];for(var f=0;f<b.length;++f){for(var j=b[f],n="undefined"!=typeof j.identifier?j.identifier:"undefined"!=typeof j.pointerId?j.pointerId:1,m=(j.clientX-e.left)/c,j=(j.clientY-e.top)/d,g=0;g<this.touches.length;++g)this.touches[g].identifier==n&&this.touches.splice(g,1);this.touches.push({x:m,y:j,identifier:n})}for(c=0;c<this.touches.length;c++);}},windowKeyUp:function(b){b="undefined"!=typeof b.identifier?b.identifier:"undefined"!=typeof b.pointerId?b.pointerId:
1;for(var c=0;c<this.touches.length;++c)this.touches[c].identifier==b&&this.touches.splice(c,1);for(;0<this.touches.length;)this.touches.pop()},windowMove:function(b){var c=parseInt(ig.system.canvas.offsetWidth)||ig.system.realWidth,d=parseInt(ig.system.canvas.offsetHeight)||ig.system.realHeight,c=ig.system.scale*(c/ig.system.realWidth),d=ig.system.scale*(d/ig.system.realHeight),e={left:0,top:0};ig.system.canvas.getBoundingClientRect&&(e=ig.system.canvas.getBoundingClientRect());if(window.navigator.msPointerEnabled)for(var f=
"undefined"!=typeof b.identifier?b.identifier:"undefined"!=typeof b.pointerId?b.pointerId:1,j=0;j<this.touches.length;++j)if(this.touches[j].identifier==f){var n=(b.clientY-e.top)/d;this.touches[j].x=(b.clientX-e.left)/c;this.touches[j].y=n}}})});ig.baked=!0;
ig.module("plugins.io.fake-storage").requires("impact.game").defines(function(){ig.FakeStorage=ig.Class.extend({tempData:{},init:function(){ig.FakeStorage.instance=this},initUnset:function(b,c){null===this.get(b)&&this.set(b,c)},set:function(b,c){this.tempData[b]=JSON.stringify(c)},setHighest:function(b,c){c>this.getFloat(b)&&this.set(b,c)},get:function(b){return"undefined"==typeof this.tempData[b]?null:JSON.parse(this.tempData[b])},getInt:function(b){return~~this.get(b)},getFloat:function(b){return parseFloat(this.get(b))},
getBool:function(b){return!!this.get(b)},isSet:function(b){return null!==this.get(b)},remove:function(b){delete this.tempData[b]},clear:function(){this.tempData={}}})});ig.baked=!0;
ig.module("plugins.io.io-manager").requires("plugins.io.storage","plugins.io.mouse","plugins.io.keyboard","plugins.io.gamepad","plugins.io.multitouch","plugins.io.multitouch-input","plugins.io.gamepad-input","plugins.io.fake-storage").defines(function(){IoManager=ig.Class.extend({storage:null,localStorageSupport:!1,mouse:null,keyboard:null,multitouch:null,gamepad:null,init:function(){ig.multitouchInput=new ig.MultitouchInput;ig.gamepadInput=new ig.GamepadInput;this.unbindAll();this.initStorage();
this.initMouse();this.initKeyboard()},unbindAll:function(){ig.input.unbindAll();ig.gamepadInput.unbindAll()},initStorage:function(){try{window.localStorage.setItem("test","test"),this.storage=new ig.Storage}catch(b){console.log("using fake storage"),this.storage=new ig.FakeStorage}finally{window.localStorage.removeItem("test")}},initMouse:function(){this.mouse=new Mouse},initKeyboard:function(){this.keyboard=new Keyboard},initMultitouch:function(){this.multitouch=new Multitouch},initGamepad:function(){this.gamepad=
new Gamepad},press:function(b){return ig.input.pressed(b)||this.gamepad&&this.gamepad.press(b)?!0:!1},held:function(b){return ig.input.state(b)||this.gamepad&&this.gamepad.state(b)?!0:!1},release:function(b){return ig.input.released(b)||this.gamepad&&this.gamepad.released(b)?!0:!1},getClickPos:function(){return this.mouse.getPos()},getTouchesPos:function(){return this.multitouch.getTouchesPos()},checkOverlap:function(b,c,d,e,f){return b.x>c+e||b.x<c||b.y>d+f||b.y<d?!1:!0},_supportsLocalStorage:function(){try{return localStorage.setItem("test",
"test"),localStorage.removeItem("test"),this.localStorageSupport="localStorage"in window&&null!==window.localStorage}catch(b){return this.localStorageSupport}},storageIsSet:function(b){return!this.localStorageSupport?null:this.storage.isSet(b)},storageGet:function(b){return!this.localStorageSupport?null:this.storage.get(b)},storageSet:function(b,c){if(!this.localStorageSupport)return null;this.storage.set(b,c)},assert:function(b,c,d){if(c!==d)throw"actualValue:"+c+" not equal to testValue:"+d+" at "+
b;}})});ig.baked=!0;
ig.module("plugins.io.storage-manager").requires("impact.game","plugins.io.io-manager").defines(function(){ig.Game.prototype.name="MJS-Game";ig.Game.prototype.version="1.0";ig.Game.prototype.sessionData={};ig.Game.prototype.initData=function(){return this.sessionData={sound:0.5,music:0.5,level:1,score:0}};ig.Game.prototype.setupStorageManager=function(){"undefined"===typeof this.name?console.error("Cannot found Game Name, Storage Manager Cancelled."):"undefined"===typeof this.version?console.error("Cannot found Game Version, Storage Manager Cancelled."):
(this.io||(this.io=new IoManager,console.log("IO Manager doesn't existed. Initialize...")),console.log("Plug in Storage Manager"),this.storage=this.io.storage,this.storageName=this.name+"-v"+this.version,this.loadAll())};ig.Game.prototype.loadAll=function(){var b=this.storage.get(this.storageName);if(null===b||"undefined"===typeof b)b=this.initData();for(var c in b)this.sessionData[c]=b[c];this.storage.set(this.storageName,b)};ig.Game.prototype.saveAll=function(){var b=this.storage.get(this.storageName),
c;for(c in b)b[c]=this.sessionData[c];this.storage.set(this.storageName,b)};ig.Game.prototype.load=function(b){return this.storage.get(this.storageName)[b]};ig.Game.prototype.save=function(b,c){var d=this.storage.get(this.storageName);d[b]=c;this.storage.set(this.storageName,d)}});ig.baked=!0;
ig.module("plugins.splash-loader").requires("impact.loader","impact.animation").defines(function(){ig.SplashLoader=ig.Loader.extend({desktopCoverDIVID:"play-desktop",splash:new ig.Image("media/graphics/games/ui/cover.png"),loadingbar0:new ig.Image("media/graphics/games/ui/loading-bar0.png"),loadingbar1:new ig.Image("media/graphics/games/ui/loading-bar1.png"),init:function(b,c){this.parent(b,c);ig.apiHandler.run("MJSPreroll")},end:function(){this.parent();if(ig.ua.mobile){var b=ig.domHandler.getElementById("#play");
ig.domHandler.show(b);setTimeout(function(){ig.system.setGame(MyGame)},500)}else this.tapToStartDiv()},draw:function(){this._drawStatus+=(this.status-this._drawStatus)/5;if(!(0.15>this._drawStatus)){ig.system.context.fillStyle="#000";ig.system.context.fillRect(0,0,ig.system.width,ig.system.height);var b,c,d;b=this.loadingbar0.width;w2=this.loadingbar1.width;c=this.loadingbar0.height;h2=this.loadingbar1.height;d=0.5*ig.system.width-b/2;b=(b-w2)/2;c=(c-h2)/2;this.splash.draw(0,0);this.loadingbar0.draw(d,
380);0.96<=this._drawStatus&&(this._drawStatus=1);ig.system.context.drawImage(this.loadingbar1.data,0,0,w2*this._drawStatus,h2,d+b,380+c,w2*this._drawStatus,h2);ig.system.context.fillStyle="#FFFFFF";ig.system.context.textAlign="center";ig.system.context.font="22pt mainfont";ig.system.context.fillText(_STRINGS.Splash.Loading,ig.system.width/2,450)}},tapToStartDiv:function(b){this.desktopCoverDIV=document.createElement("div");this.desktopCoverDIV.id=this.desktopCoverDIVID;this.desktopCoverDIV.setAttribute("class",
"play");this.desktopCoverDIV.setAttribute("style","position: absolute; display: block; z-index: 999999; background-color: rgba(23, 32, 53, 0.7); visibility: visible; font-size: 10vmin; text-align: center; vertical-align: middle; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;");this.desktopCoverDIV.innerHTML="<div style='color:white;background-color: rgba(255, 255, 255, 0.3); border: 2px solid #fff; font-size:20px; border-radius: 5px; position: relative; float: left; top: 50%; left: 50%; transform: translate(-50%, -50%);'><div style='padding:20px 50px; font-family: Arial;'>"+
_STRINGS.Splash.TapToStart+"</div></div>";(document.getElementById("play").parentNode||document.getElementById("ajaxbar")).appendChild(this.desktopCoverDIV);try{"undefined"!==typeof ig.sizeHandler?"undefined"!==typeof ig.sizeHandler.coreDivsToResize&&(ig.sizeHandler.coreDivsToResize.push("#"+this.desktopCoverDIVID),"function"===typeof ig.sizeHandler.reorient&&ig.sizeHandler.reorient()):"undefined"!==typeof coreDivsToResize&&(coreDivsToResize.push(this.desktopCoverDIVID),"function"===typeof sizeHandler&&
sizeHandler())}catch(c){console.log(c)}this.desktopCoverDIV.addEventListener("click",function(){try{"undefined"!==typeof ig.soundHandler?("undefined"!==typeof ig.soundHandler.bgmPlayer?"undefined"!==typeof ig.soundHandler.bgmPlayer.webaudio&&"undefined"!==typeof ig.soundHandler.bgmPlayer.webaudio.context&&ig.soundHandler.bgmPlayer.webaudio.context.resume():(ig.soundHandler=null,ig.soundHandler="undefined"!==typeof ig.soundList?new ig.SoundHandler(ig.soundList):new ig.SoundHandler),"undefined"!==typeof ig.soundHandler.sfxPlayer?
"function"===typeof ig.soundHandler.sfxPlayer.play&&ig.soundHandler.sfxPlayer.play("staticSound"):"undefined"!==typeof ig.soundHandler.staticSound?"function"===typeof ig.soundHandler.staticSound.play&&ig.soundHandler.staticSound.play():"function"===typeof ig.soundHandler.playSound&&ig.soundHandler.playSound("staticSound")):"undefined"!==typeof Howl?(ig.global.staticSound=new Howl({src:["media/audio/play/static.ogg","media/audio/play/static.mp3"]}),ig.global.staticSound.play()):"undefined"!==typeof createjs&&
"undefined"!==typeof createjs.Sound&&"function"===typeof createjs.Sound.play&&createjs.Sound.play("opening")}catch(c){console.log(c)}this.setAttribute("style","visibility: hidden;");"function"===typeof b&&b();ig.system.setGame(MyGame)})}})});ig.baked=!0;
ig.module("plugins.tween").requires("impact.entity").defines(function(){Array.prototype.indexOf||(Array.prototype.indexOf=function(b){for(var c=0;c<this.length;++c)if(this[c]===b)return c;return-1});ig.Entity.prototype.tweens=[];ig.Entity.prototype._preTweenUpdate=ig.Entity.prototype.update;ig.Entity.prototype.update=function(){this._preTweenUpdate();if(0<this.tweens.length){for(var b=[],c=0;c<this.tweens.length;c++)this.tweens[c].update(),this.tweens[c].complete||b.push(this.tweens[c]);this.tweens=
b}};ig.Entity.prototype.tween=function(b,c,d){b=new ig.Tween(this,b,c,d);this.tweens.push(b);return b};ig.Entity.prototype.pauseTweens=function(){for(var b=0;b<this.tweens.length;b++)this.tweens[b].pause()};ig.Entity.prototype.resumeTweens=function(){for(var b=0;b<this.tweens.length;b++)this.tweens[b].resume()};ig.Entity.prototype.stopTweens=function(b){for(var c=0;c<this.tweens.length;c++)this.tweens[c].stop(b)};ig.Tween=function(b,c,d,e){var f={},j={},n={},m=0,g=!1,t=!1,z=!1;this.duration=d;this.paused=
this.complete=!1;this.easing=ig.Tween.Easing.Linear.EaseNone;this.onComplete=!1;this.loop=this.delay=0;this.loopCount=-1;ig.merge(this,e);this.loopNum=this.loopCount;this.chain=function(b){z=b};this.initEnd=function(b,c,d){if("object"!==typeof c[b])d[b]=c[b];else for(subprop in c[b])d[b]||(d[b]={}),this.initEnd(subprop,c[b],d[b])};this.initStart=function(b,c,d,e){if("object"!==typeof d[b])"undefined"!==typeof c[b]&&(e[b]=d[b]);else for(subprop in d[b])e[b]||(e[b]={}),"undefined"!==typeof c[b]&&this.initStart(subprop,
c[b],d[b],e[b])};this.start=function(){this.paused=this.complete=!1;this.loopNum=this.loopCount;m=0;-1==b.tweens.indexOf(this)&&b.tweens.push(this);t=!0;g=new ig.Timer;for(var d in c)this.initEnd(d,c,j);for(d in j)this.initStart(d,j,b,f),this.initDelta(d,n,b,j)};this.initDelta=function(b,c,d,e){if("object"!==typeof e[b])c[b]=e[b]-d[b];else for(subprop in e[b])c[b]||(c[b]={}),this.initDelta(subprop,c[b],d[b],e[b])};this.propUpdate=function(b,c,d,e,f){if("object"!==typeof d[b])c[b]="undefined"!=typeof d[b]?
d[b]+e[b]*f:c[b];else for(subprop in d[b])this.propUpdate(subprop,c[b],d[b],e[b],f)};this.propSet=function(b,c,d){if("object"!==typeof c[b])d[b]=c[b];else for(subprop in c[b])d[b]||(d[b]={}),this.propSet(subprop,c[b],d[b])};this.update=function(){if(!t)return!1;if(this.delay){if(g.delta()<this.delay)return;this.delay=0;g.reset()}if(this.paused||this.complete)return!1;var c=(g.delta()+m)/this.duration,c=1<c?1:c,d=this.easing(c);for(property in n)this.propUpdate(property,b,f,n,d);if(1<=c){if(0==this.loopNum||
!this.loop){this.complete=!0;if(this.onComplete)this.onComplete();z&&z.start();return!1}if(this.loop==ig.Tween.Loop.Revert){for(property in f)this.propSet(property,f,b);m=0;g.reset();-1!=this.loopNum&&this.loopNum--}else if(this.loop==ig.Tween.Loop.Reverse){c={};d={};ig.merge(c,j);ig.merge(d,f);ig.merge(f,c);ig.merge(j,d);for(property in j)this.initDelta(property,n,b,j);m=0;g.reset();-1!=this.loopNum&&this.loopNum--}}};this.pause=function(){this.paused=!0;g&&g.delta&&(m+=g.delta())};this.resume=function(){this.paused=
!1;g&&g.reset&&g.reset()};this.stop=function(b){b&&(this.loop=this.complete=this.paused=!1,m+=d,this.update());this.complete=!0}};ig.Tween.Loop={Revert:1,Reverse:2};ig.Tween.Easing={Linear:{},Quadratic:{},Cubic:{},Quartic:{},Quintic:{},Sinusoidal:{},Exponential:{},Circular:{},Elastic:{},Back:{},Bounce:{}};ig.Tween.Easing.Linear.EaseNone=function(b){return b};ig.Tween.Easing.Quadratic.EaseIn=function(b){return b*b};ig.Tween.Easing.Quadratic.EaseOut=function(b){return-b*(b-2)};ig.Tween.Easing.Quadratic.EaseInOut=
function(b){return 1>(b*=2)?0.5*b*b:-0.5*(--b*(b-2)-1)};ig.Tween.Easing.Cubic.EaseIn=function(b){return b*b*b};ig.Tween.Easing.Cubic.EaseOut=function(b){return--b*b*b+1};ig.Tween.Easing.Cubic.EaseInOut=function(b){return 1>(b*=2)?0.5*b*b*b:0.5*((b-=2)*b*b+2)};ig.Tween.Easing.Quartic.EaseIn=function(b){return b*b*b*b};ig.Tween.Easing.Quartic.EaseOut=function(b){return-(--b*b*b*b-1)};ig.Tween.Easing.Quartic.EaseInOut=function(b){return 1>(b*=2)?0.5*b*b*b*b:-0.5*((b-=2)*b*b*b-2)};ig.Tween.Easing.Quintic.EaseIn=
function(b){return b*b*b*b*b};ig.Tween.Easing.Quintic.EaseOut=function(b){return(b-=1)*b*b*b*b+1};ig.Tween.Easing.Quintic.EaseInOut=function(b){return 1>(b*=2)?0.5*b*b*b*b*b:0.5*((b-=2)*b*b*b*b+2)};ig.Tween.Easing.Sinusoidal.EaseIn=function(b){return-Math.cos(b*Math.PI/2)+1};ig.Tween.Easing.Sinusoidal.EaseOut=function(b){return Math.sin(b*Math.PI/2)};ig.Tween.Easing.Sinusoidal.EaseInOut=function(b){return-0.5*(Math.cos(Math.PI*b)-1)};ig.Tween.Easing.Exponential.EaseIn=function(b){return 0==b?0:Math.pow(2,
10*(b-1))};ig.Tween.Easing.Exponential.EaseOut=function(b){return 1==b?1:-Math.pow(2,-10*b)+1};ig.Tween.Easing.Exponential.EaseInOut=function(b){return 0==b?0:1==b?1:1>(b*=2)?0.5*Math.pow(2,10*(b-1)):0.5*(-Math.pow(2,-10*(b-1))+2)};ig.Tween.Easing.Circular.EaseIn=function(b){return-(Math.sqrt(1-b*b)-1)};ig.Tween.Easing.Circular.EaseOut=function(b){return Math.sqrt(1- --b*b)};ig.Tween.Easing.Circular.EaseInOut=function(b){return 1>(b/=0.5)?-0.5*(Math.sqrt(1-b*b)-1):0.5*(Math.sqrt(1-(b-=2)*b)+1)};ig.Tween.Easing.Elastic.EaseIn=
function(b){var c,d=0.1,e=0.4;if(0==b)return 0;if(1==b)return 1;e||(e=0.3);!d||1>d?(d=1,c=e/4):c=e/(2*Math.PI)*Math.asin(1/d);return-(d*Math.pow(2,10*(b-=1))*Math.sin(2*(b-c)*Math.PI/e))};ig.Tween.Easing.Elastic.EaseOut=function(b){var c,d=0.1,e=0.4;if(0==b)return 0;if(1==b)return 1;e||(e=0.3);!d||1>d?(d=1,c=e/4):c=e/(2*Math.PI)*Math.asin(1/d);return d*Math.pow(2,-10*b)*Math.sin(2*(b-c)*Math.PI/e)+1};ig.Tween.Easing.Elastic.EaseInOut=function(b){var c,d=0.1,e=0.4;if(0==b)return 0;if(1==b)return 1;
e||(e=0.3);!d||1>d?(d=1,c=e/4):c=e/(2*Math.PI)*Math.asin(1/d);return 1>(b*=2)?-0.5*d*Math.pow(2,10*(b-=1))*Math.sin(2*(b-c)*Math.PI/e):0.5*d*Math.pow(2,-10*(b-=1))*Math.sin(2*(b-c)*Math.PI/e)+1};ig.Tween.Easing.Back.EaseIn=function(b){return b*b*(2.70158*b-1.70158)};ig.Tween.Easing.Back.EaseOut=function(b){return(b-=1)*b*(2.70158*b+1.70158)+1};ig.Tween.Easing.Back.EaseInOut=function(b){return 1>(b*=2)?0.5*b*b*(3.5949095*b-2.5949095):0.5*((b-=2)*b*(3.5949095*b+2.5949095)+2)};ig.Tween.Easing.Bounce.EaseIn=
function(b){return 1-ig.Tween.Easing.Bounce.EaseOut(1-b)};ig.Tween.Easing.Bounce.EaseOut=function(b){return(b/=1)<1/2.75?7.5625*b*b:b<2/2.75?7.5625*(b-=1.5/2.75)*b+0.75:b<2.5/2.75?7.5625*(b-=2.25/2.75)*b+0.9375:7.5625*(b-=2.625/2.75)*b+0.984375};ig.Tween.Easing.Bounce.EaseInOut=function(b){return 0.5>b?0.5*ig.Tween.Easing.Bounce.EaseIn(2*b):0.5*ig.Tween.Easing.Bounce.EaseOut(2*b-1)+0.5};ig.Tween.Interpolation={Linear:function(b,c){var d=b.length-1,e=d*c,f=Math.floor(e),j=TWEEN.Interpolation.Utils.Linear;
return 0>c?j(b[0],b[1],e):1<c?j(b[d],b[d-1],d-e):j(b[f],b[f+1>d?d:f+1],e-f)}}});ig.baked=!0;
ig.module("plugins.patches.entity-patch").requires("impact.entity").defines(function(){ig.Entity.inject({handleMovementTrace:function(b){this.standing=!1;b.collision.y&&(0<this.bounciness&&Math.abs(this.vel.y)>this.minBounceVelocity?this.vel.y*=-this.bounciness:(0<this.vel.y&&(this.standing=!0),this.vel.y=0));b.collision.x&&(this.vel.x=0<this.bounciness&&Math.abs(this.vel.x)>this.minBounceVelocity?this.vel.x*-this.bounciness:0);if(b.collision.slope){var c=b.collision.slope;if(0<this.bounciness){var d=
this.vel.x*c.nx+this.vel.y*c.ny;this.vel.x=(this.vel.x-2*c.nx*d)*this.bounciness;this.vel.y=(this.vel.y-2*c.ny*d)*this.bounciness}else d=(this.vel.x*c.x+this.vel.y*c.y)/(c.x*c.x+c.y*c.y),this.vel.x=c.x*d,this.vel.y=c.y*d,c=Math.atan2(c.x,c.y),c>this.slopeStanding.min&&c<this.slopeStanding.max&&(this.standing=!0)}this.pos.x=b.pos.x;this.pos.y=b.pos.y}})});ig.baked=!0;
ig.module("plugins.tweens-handler").requires("impact.entity","plugins.tween","plugins.patches.entity-patch").defines(function(){Array.prototype.indexOf||(Array.prototype.indexOf=function(b){for(var d=0;d<this.length;++d)if(this[d]===b)return d;return-1});ig.TweensHandler=ig.Class.extend({_tweens:[],_systemPausedTweens:[],init:function(){},getAll:function(){return this._tweens},removeAll:function(){this._tweens=[]},add:function(b){this._tweens.push(b)},remove:function(b){b=this._tweens.indexOf(b);
-1!==b&&this._tweens.splice(b,1)},onSystemPause:function(){if(0===this._tweens.length)return!1;for(var b=0,d=null;b<this._tweens.length;)d=this._tweens[b],d._isPlaying&&(this._systemPausedTweens.push(d),d.pause()),b++;return!0},onSystemResume:function(){if(0===this._systemPausedTweens.length)return!1;for(var b=0;b<this._systemPausedTweens.length;)this._systemPausedTweens[b].resume(),b++;this._systemPausedTweens=[];return!0},update:function(b,d){if(0===this._tweens.length)return!1;var e=0;for(b=void 0!==
b?b:ig.game.tweens.now();e<this._tweens.length;)this._tweens[e].update(b)||d?e++:this._tweens.splice(e,1);return!0},now:function(){return Date.now()}});ig.TweenDef=ig.Class.extend({_ent:null,_valuesStart:{},_valuesEnd:{},_valuesStartRepeat:{},_duration:1E3,_repeat:0,_yoyo:!1,_isPlaying:!1,_reversed:!1,_delayTime:0,_startTime:null,_pauseTime:null,_easingFunction:ig.Tween.Easing.Linear.EaseNone,_interpolationFunction:ig.Tween.Interpolation.Linear,_chainedTweens:[],_onStartCallback:null,_onStartCallbackFired:!1,
_onUpdateCallback:null,_onCompleteCallback:null,_onStopCallback:null,_onPauseCallback:null,_onResumeCallback:null,_currentElapsed:0,init:function(b){this._object=b},to:function(b,d){this._valuesEnd=b;void 0!==d&&(this._duration=d);return this},start:function(b){if(this._isPlaying)return this;ig.game.tweens.add(this);this._isPlaying=!0;this._onStartCallbackFired=!1;this._startTime=void 0!==b?b:ig.game.tweens.now();this._startTime+=this._delayTime;for(var d in this._valuesEnd){if(this._valuesEnd[d]instanceof
Array){if(0===this._valuesEnd[d].length)continue;this._valuesEnd[d]=[this._object[d]].concat(this._valuesEnd[d])}void 0!==this._object[d]&&(this._valuesStart[d]=this._object[d],!1===this._valuesStart[d]instanceof Array&&(this._valuesStart[d]*=1),this._valuesStartRepeat[d]=this._valuesStart[d]||0)}return this},stop:function(){if(!this._isPlaying)return this;ig.game.tweens.remove(this);this._isPlaying=!1;null!==this._onStopCallback&&this._onStopCallback.call(this._object,this._object);this.stopChainedTweens();
return this},pause:function(){if(!this._isPlaying)return this;ig.game.tweens.remove(this);this._isPlaying=!1;this._pauseTime=ig.game.tweens.now();null!==this._onPauseCallback&&this._onPauseCallback.call(this._object,this._object);return this},resume:function(){if(this._isPlaying||!this._pauseTime)return this;var b=ig.game.tweens.now()-this._pauseTime;this._startTime+=b;ig.game.tweens.add(this);this._isPlaying=!0;null!==this._onResumeCallback&&this._onResumeCallback.call(this._object,this._object);
this._pauseTime=null;return this},end:function(){this.update(this._startTime+this._duration);return this},stopChainedTweens:function(){for(var b=0,d=this._chainedTweens.length;b<d;b++)this._chainedTweens[b].stop()},delay:function(b){this._delayTime=b;return this},repeat:function(b){this._repeat=b;return this},repeatDelay:function(b){this._repeatDelayTime=b;return this},yoyo:function(b){this._yoyo=b;return this},easing:function(b){this._easingFunction=b;return this},interpolation:function(b){this._interpolationFunction=
b;return this},chain:function(){this._chainedTweens=arguments;return this},onStart:function(b){this._onStartCallback=b;return this},onUpdate:function(b){this._onUpdateCallback=b;return this},onComplete:function(b){this._onCompleteCallback=b;return this},onStop:function(b){this._onStopCallback=b;return this},onPause:function(b){this._onPauseCallback=b;return this},onResume:function(b){this._onResumeCallback=b;return this},update:function(b){var d,e,f;if(b<this._startTime)return!0;!1===this._onStartCallbackFired&&
(null!==this._onStartCallback&&this._onStartCallback.call(this._object,this._object),this._onStartCallbackFired=!0);e=(b-this._startTime)/this._duration;this._currentElapsed=e=1<e?1:e;f=this._easingFunction(e);for(d in this._valuesEnd)if(void 0!==this._valuesStart[d]){var j=this._valuesStart[d]||0,n=this._valuesEnd[d];n instanceof Array?this._object[d]=this._interpolationFunction(n,f):("string"===typeof n&&(n="+"===n.charAt(0)||"-"===n.charAt(0)?j+parseFloat(n):parseFloat(n)),"number"===typeof n&&
(this._object[d]=j+(n-j)*f))}null!==this._onUpdateCallback&&this._onUpdateCallback.call(this._object,this._object,f);if(1===e)if(0<this._repeat){isFinite(this._repeat)&&this._repeat--;for(d in this._valuesStartRepeat)"string"===typeof this._valuesEnd[d]&&(this._valuesStartRepeat[d]=_valuesStartRepeat[d]+parseFloat(_valuesEnd[d])),this._yoyo&&(e=this._valuesStartRepeat[d],this._valuesStartRepeat[d]=this._valuesEnd[d],this._valuesEnd[d]=e),this._valuesStart[d]=this._valuesStartRepeat[d];this._yoyo&&
(this._reversed=!this._reversed);this._startTime=void 0!==this._repeatDelayTime?b+this._repeatDelayTime:b+this._delayTime}else{null!==this._onCompleteCallback&&this._onCompleteCallback.call(this._object,this._object);b=0;for(d=this._chainedTweens.length;b<d;b++)this._chainedTweens[b].start(this._startTime+this._duration);return!1}return!0}});var b=[1];ig.Tween.Interpolation={Linear:function(b,d){var e=b.length-1,f=e*d,j=Math.floor(f),n=ig.Tween.Interpolation.Utils.Linear;return 0>d?n(b[0],b[1],f):
1<d?n(b[e],b[e-1],e-f):n(b[j],b[j+1>e?e:j+1],f-j)},Bezier:function(b,d){for(var e=0,f=b.length-1,j=Math.pow,n=ig.Tween.Interpolation.Utils.Bernstein,m=0;m<=f;m++)e+=j(1-d,f-m)*j(d,m)*b[m]*n(f,m);return e},CatmullRom:function(b,d){var e=b.length-1,f=e*d,j=Math.floor(f),n=ig.Tween.Interpolation.Utils.CatmullRom;return b[0]===b[e]?(0>d&&(j=Math.floor(f=e*(1+d))),n(b[(j-1+e)%e],b[j],b[(j+1)%e],b[(j+2)%e],f-j)):0>d?b[0]-(n(b[0],b[0],b[1],b[1],-f)-b[0]):1<d?b[e]-(n(b[e],b[e],b[e-1],b[e-1],f-e)-b[e]):n(b[j?
j-1:0],b[j],b[e<j+1?e:j+1],b[e<j+2?e:j+2],f-j)},Utils:{Linear:function(b,d,e){return(d-b)*e+b},Bernstein:function(b,d){var e=ig.Tween.Interpolation.Utils.Factorial;return e(b)/e(d)/e(b-d)},Factorial:function(c){var d=1;if(b[c])return b[c];for(var e=c;1<e;e--)d*=e;return b[c]=d},CatmullRom:function(b,d,e,f,j){b=0.5*(e-b);f=0.5*(f-d);var n=j*j;return(2*d-2*e+b+f)*j*n+(-3*d+3*e-2*b-f)*n+b*j+d}}}});ig.baked=!0;
ig.module("plugins.url-parameters").defines(function(){ig.UrlParameters=ig.Class.extend({init:function(){switch(getQueryVariable("iphone")){case "true":ig.ua.iPhone=!0,console.log("iPhone mode")}var b=getQueryVariable("webview");if(b)switch(b){case "true":ig.ua.is_uiwebview=!0,console.log("webview mode")}if(b=getQueryVariable("debug"))switch(b){case "true":ig.game.showDebugMenu(),console.log("debug mode")}switch(getQueryVariable("view")){case "stats":ig.game.resetPlayerStats(),ig.game.endGame()}getQueryVariable("ad")}})});
ig.baked=!0;
ig.module("plugins.director").requires("impact.impact").defines(function(){ig.Director=ig.Class.extend({init:function(b,c){this.game=b;this.levels=[];this.currentLevel=0;this.append(c)},loadLevel:function(b){for(var c in ig.sizeHandler.dynamicClickableEntityDivs){var d=ig.domHandler.getElementById("#"+c);ig.domHandler.hide(d)}this.currentLevel=b;this.game.loadLevel(this.levels[b]);return!0},loadLevelWithoutEntities:function(b){this.currentLevel=b;this.game.loadLevelWithoutEntities(this.levels[b]);return!0},
append:function(b){newLevels=[];return"object"===typeof b?(b.constructor===[].constructor?newLevels=b:newLevels[0]=b,this.levels=this.levels.concat(newLevels),!0):!1},nextLevel:function(){return this.currentLevel+1<this.levels.length?this.loadLevel(this.currentLevel+1):!1},previousLevel:function(){return 0<=this.currentLevel-1?this.loadLevel(this.currentLevel-1):!1},jumpTo:function(b){var c=null;for(i=0;i<this.levels.length;i++)this.levels[i]==b&&(c=i);return 0<=c?this.loadLevel(c):!1},firstLevel:function(){return this.loadLevel(0)},
lastLevel:function(){return this.loadLevel(this.levels.length-1)},reloadLevel:function(){return this.loadLevel(this.currentLevel)}})});ig.baked=!0;
ig.module("plugins.impact-storage").requires("impact.game").defines(function(){ig.Storage=ig.Class.extend({staticInstantiate:function(){return!ig.Storage.instance?null:ig.Storage.instance},init:function(){ig.Storage.instance=this},isCapable:function(){return"undefined"!==typeof window.localStorage},isSet:function(b){return null!==this.get(b)},initUnset:function(b,c){null===this.get(b)&&this.set(b,c)},get:function(b){if(!this.isCapable())return null;try{return JSON.parse(localStorage.getItem(b))}catch(c){return window.localStorage.getItem(b)}},
getInt:function(b){return~~this.get(b)},getFloat:function(b){return parseFloat(this.get(b))},getBool:function(b){return!!this.get(b)},key:function(b){return this.isCapable()?window.localStorage.key(b):null},set:function(b,c){if(!this.isCapable())return null;try{window.localStorage.setItem(b,JSON.stringify(c))}catch(d){console.log(d)}},setHighest:function(b,c){c>this.getFloat(b)&&this.set(b,c)},remove:function(b){if(!this.isCapable())return null;window.localStorage.removeItem(b)},clear:function(){if(!this.isCapable())return null;
window.localStorage.clear()}})});ig.baked=!0;
ig.module("plugins.nimpact").requires("impact.entity").defines(function(){ig.Entity.inject({anchor:{x:0,y:0},scale:{x:1,y:1},collides:ig.Entity.COLLIDES.NEVER,type:ig.Entity.TYPE.NONE,children:[],init:function(b,c,d){this.parent(b,c,d)},draw:function(){var b=ig.system.context;b.save();b.translate(ig.system.getDrawPos(this.pos.x.round()-ig.game.screen.x),ig.system.getDrawPos(this.pos.y.round()-ig.game.screen.y));b.scale(this.scale.x,this.scale.y);null!=this.currentAnim&&this.currentAnim.draw(0,0);
b.restore()},setScale:function(b,c){var d=this.size.x,e=this.size.y;this.scale.x=b;this.scale.y=c||this.scale.x;var f=this.scale.x/ig.system.scale,j=this.scale.y/ig.system.scale,n=d*f,m=e*j;this.size.x=0<=n?n:-n;this.size.y=0<=m?m:-m;this.pos.x=0<n?this.pos.x+(d-n)*this.anchor.x:this.pos.x+((d-n)*this.anchor.x-n);this.pos.y=0<m?this.pos.y+(e-m)*this.anchor.y:this.pos.y+((d-m)*this.anchor.y-m);for(var g in this.anims)this.anims[g].flip.x=0>f?!0:!1,this.anims[g].flip.y=0>j?!0:!1},setAnchor:function(b,
c){this.anchor.x=b;this.anchor.y=null==c?b:c;this.pos.x-=this.size.x*this.anchor.x;this.pos.y-=this.size.y*this.anchor.y},nSetPos:function(b,c){this.pos.x=b;this.pos.y=c;this.setAnchor(this.anchor.x,this.anchor.y);this.setScale(this.scale.x,this.scale.y)},getCenter:function(){return{x:this.pos.x+this.size.x/2,y:this.pos.y+this.size.y/2}},getCenterX:function(){return this.pos.x+this.size.x/2},getCenterY:function(){return this.pos.y+this.size.y/2},spawnEntity:function(b,c,d,e){e=ig.merge({zIndex:this.zIndex+
1,parents:this},e);b=ig.game.spawnEntity(b,c,d,e);this.children.push(b);return b},kill:function(){for(var b=0;b<this.children.length;b++)null!=this.children[b]&&ig.game.removeEntity(this.children[b]);ig.game.removeEntity(this)}})});ig.baked=!0;
ig.module("plugins.fullscreen").requires("impact.entity").defines(function(){ig.Fullscreen={enableFullscreenButton:!0,_isEnabled:"notChecked",isEnabled:function(){"notChecked"==this._isEnabled&&(this._isEnabled=document.fullscreenEnabled||document.mozFullScreenEnabled||document.webkitFullscreenEnabled||document.msFullscreenEnabled?!0:!1);return this._isEnabled},isFullscreen:function(){return ig.Fullscreen.isEnabled()&&(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||
document.msFullscreenElement)?!0:!1},toggleFullscreen:function(){ig.Fullscreen.isFullscreen()?ig.Fullscreen.exitFullscreen():ig.Fullscreen.requestFullscreen();ig.sizeHandler.orientationDelayHandler()},requestFullscreen:function(){var b=document.documentElement;b.requestFullscreen?b.requestFullscreen():b.webkitRequestFullscreen?b.webkitRequestFullscreen():b.mozRequestFullScreen?b.mozRequestFullScreen():b.msRequestFullscreen?b.msRequestFullscreen():console.log("no request fullscreen method available")},
exitFullscreen:function(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen?document.msExitFullscreen():console.log("no exit fullscreen method available")},divs:{}};ig.Director.inject({loadLevel:function(b){var c=ig.Fullscreen.divs,d;for(d in c)c=ig.domHandler.getElementById("#"+d),ig.domHandler.hide(c);return this.parent(b)}});ig.SizeHandler.inject({resize:function(){this.parent();
var b=ig.Fullscreen.divs,c;for(c in b){var d=Math.min(ig.sizeHandler.scaleRatioMultiplier.x,ig.sizeHandler.scaleRatioMultiplier.y),e=ig.domHandler.getElementById("#"+c),f=b[c].entity_pos_x,j=b[c].entity_pos_y,n=b[c].width,m=b[c].height,g=ig.domHandler.getElementById("#canvas"),t=ig.domHandler.getOffsets(g);ig.ua.mobile?(g=t.left,t=t.top,ig.sizeHandler.disableStretchToFitOnMobileFlag?(f=Math.floor(g+f*ig.sizeHandler.scaleRatioMultiplier.x)+"px",j=Math.floor(t+j*ig.sizeHandler.scaleRatioMultiplier.y)+
"px",n=Math.floor(n*ig.sizeHandler.scaleRatioMultiplier.x)+"px",m=Math.floor(m*ig.sizeHandler.scaleRatioMultiplier.y)+"px"):(f=Math.floor(f*ig.sizeHandler.sizeRatio.x)+"px",j=Math.floor(j*ig.sizeHandler.sizeRatio.y)+"px",n=Math.floor(n*ig.sizeHandler.sizeRatio.x)+"px",m=Math.floor(m*ig.sizeHandler.sizeRatio.y)+"px")):(g=t.left,t=t.top,f=Math.floor(g+f*d)+"px",j=Math.floor(t+j*d)+"px",n=Math.floor(n*d)+"px",m=Math.floor(m*d)+"px");ig.domHandler.css(e,{"float":"left",position:"absolute",left:f,top:j,
width:n,height:m,"z-index":3});b[c]["font-size"]&&ig.domHandler.css(e,{"font-size":b[c]["font-size"]*d+"px"})}}});ig.FullscreenButton=ig.Entity.extend({enterImage:null,exitImage:null,isReady:!1,zIndex:999999,identifier:null,prevPos:{x:0,y:0},invisImagePath:"media/graphics/misc/invisible.png",init:function(b,c,d){this.parent(b,c,d);ig.Fullscreen.isEnabled()&&ig.Fullscreen.enableFullscreenButton?this.enterImage.loaded?this.initSize():this.enterImage.loadCallback=function(){this.initSize()}.bind(this):
this.kill()},kill:function(){this.parent()},destroy:function(){this.parent();console.log("destroy")},initSize:function(){this.size.x=this.enterImage.width;this.size.y=this.enterImage.height;this.createClickableLayer();this.isReady=!0},createClickableLayer:function(){this.identifier="fullscreen-button-layer";var b=ig.domHandler.getElementById("#"+this.identifier);b?(ig.domHandler.show(b),ig.domHandler.attr(b,"onclick","ig.Fullscreen.toggleFullscreen()")):this.createClickableOutboundLayer()},update:function(b,
c){b=this.pos.x;c=this.pos.y;this.isReady&&!(this.prevPos.x===b&&this.prevPos.y===c)&&(ig.Fullscreen.divs[this.identifier]={},ig.Fullscreen.divs[this.identifier].width=this.size.x,ig.Fullscreen.divs[this.identifier].height=this.size.y,ig.Fullscreen.divs[this.identifier].entity_pos_x=this.pos.x,ig.Fullscreen.divs[this.identifier].entity_pos_y=this.pos.y,this.prevPos.x=b,this.prevPos.y=c)},draw:function(){this.isReady&&(ig.Fullscreen.isFullscreen()?this.exitImage.draw(this.pos.x,this.pos.y):this.enterImage.draw(this.pos.x,
this.pos.y))},createClickableOutboundLayer:function(){var b=this.identifier,c=this.invisImagePath,d=ig.domHandler.create("div");ig.domHandler.attr(d,"id",b);ig.domHandler.attr(d,"onclick","ig.Fullscreen.toggleFullscreen()");var e=ig.domHandler.create("a"),f=ig.domHandler.create("img");ig.domHandler.css(f,{width:"100%",height:"100%"});ig.domHandler.attr(f,"src",c);c=Math.min(ig.sizeHandler.scaleRatioMultiplier.x,ig.sizeHandler.scaleRatioMultiplier.y);if(ig.ua.mobile){var j=ig.domHandler.getElementById("#canvas"),
j=ig.domHandler.getOffsets(j),n=j.left,m=j.top;console.log(j.left);ig.sizeHandler.disableStretchToFitOnMobileFlag?(j=Math.floor(n+this.pos.x*ig.sizeHandler.scaleRatioMultiplier.x)+"px",m=Math.floor(m+this.pos.y*ig.sizeHandler.scaleRatioMultiplier.y)+"px",n=Math.floor(this.size.x*ig.sizeHandler.scaleRatioMultiplier.x)+"px",c=Math.floor(this.size.y*ig.sizeHandler.scaleRatioMultiplier.y)+"px"):(j=Math.floor(this.pos.x*ig.sizeHandler.sizeRatio.x)+"px",m=Math.floor(this.pos.y*ig.sizeHandler.sizeRatio.y)+
"px",n=Math.floor(this.size.x*ig.sizeHandler.sizeRatio.x)+"px",c=Math.floor(this.size.y*ig.sizeHandler.sizeRatio.y)+"px")}else j=ig.domHandler.getElementById("#canvas"),j=ig.domHandler.getOffsets(j),n=j.left,m=j.top,ig.sizeHandler.enableStretchToFitOnDesktopFlag?(j=Math.floor(n+this.pos.x*ig.sizeHandler.sizeRatio.x)+"px",m=Math.floor(m+this.pos.y*ig.sizeHandler.sizeRatio.y)+"px",n=Math.floor(this.size.x*ig.sizeHandler.sizeRatio.x)+"px",c=Math.floor(this.size.y*ig.sizeHandler.sizeRatio.y)+"px"):(j=
Math.floor(n+this.pos.x*c)+"px",m=Math.floor(m+this.pos.y*c)+"px",n=Math.floor(this.size.x*c)+"px",c=Math.floor(this.size.y*c)+"px");ig.domHandler.css(d,{"float":"left",position:"absolute",left:j,top:m,width:n,height:c,"z-index":3});ig.domHandler.addEvent(d,"mousemove",ig.input.mousemove.bind(ig.input),!1);ig.domHandler.appendChild(e,f);ig.domHandler.appendChild(d,e);ig.domHandler.appendToBody(d);ig.Fullscreen.divs[b]={};ig.Fullscreen.divs[b].width=this.size.x;ig.Fullscreen.divs[b].height=this.size.y;
ig.Fullscreen.divs[b].entity_pos_x=this.pos.x;ig.Fullscreen.divs[b].entity_pos_y=this.pos.y}})});ig.baked=!0;
ig.module("plugins.data.color-rgb").defines(function(){ColorRGB=function(b,c,d,e){this.r=b||0;this.g=c||0;this.b=d||0;this.a=e||0};ColorRGB.prototype={setRandomColor:function(){this.r=Math.round(255*Math.random());this.g=Math.round(255*Math.random());this.b=Math.round(255*Math.random())},getStyle:function(){return"rgba("+this.r+","+this.g+","+this.b+","+this.a+")"},getHex:function(){for(var b=this.r.toString(16),c=this.g.toString(16),d=this.b.toString(16);2>b.length;)b="0"+b;for(;2>c.length;)c="0"+
c;for(;2>d.length;)d="0"+d;return"#"+b+c+d},getInvertedColor:function(){return new ColorRGB(255-this.r,255-this.g,255-this.b,255-this.a)},clone:function(){return new ColorRGB(this.r,this.g,this.b,this.a)}}});this.START_BRANDING_SPLASH;ig.baked=!0;
ig.module("plugins.branding.splash").requires("impact.impact","impact.entity").defines(function(){ig.BrandingSplash=ig.Class.extend({init:function(){ig.game.spawnEntity(EntityBranding,0,0);console.log("spawn branding")}});EntityBranding=ig.Entity.extend({gravityFactor:0,size:{x:32,y:32},splash:new ig.Image("branding/splash1.png"),init:function(b,c,d){this.parent(b,c,d);320>=ig.system.width?(this.size.x=320,this.size.y=200):(this.size.x=480,this.size.y=240);this.pos.x=(ig.system.width-this.size.x)/
2;this.pos.y=-this.size.y-200;this.endPosY=(ig.system.height-this.size.y)/2;b=this.tween({pos:{y:this.endPosY}},0.5,{easing:ig.Tween.Easing.Bounce.EaseIn});c=this.tween({},2.5,{onComplete:function(){ig.game.director.loadLevel(ig.game.director.currentLevel)}});b.chain(c);b.start();this.currentAnim=this.anims.idle},createClickableLayer:function(){console.log("Build clickable layer");this.checkClickableLayer("branding-splash",_SETTINGS.Branding.Logo.Link,_SETTINGS.Branding.Logo.NewWindow)},doesClickableLayerExist:function(b){for(k in dynamicClickableEntityDivs)if(k==
b)return!0;return!1},checkClickableLayer:function(b,c,d){"undefined"==typeof wm&&(this.doesClickableLayerExist(b)?(ig.game.showOverlay([b]),$("#"+b).find("[href]").attr("href",c)):this.createClickableOutboundLayer(b,c,"media/graphics/misc/invisible.png",d))},createClickableOutboundLayer:function(b,c,d,e){var f=ig.$new("div");f.id=b;document.body.appendChild(f);f=$("#"+f.id);f.css("float","left");f.css("position","absolute");if(ig.ua.mobile){var j=window.innerHeight/mobileHeight,n=window.innerWidth/
mobileWidth;f.css("left",this.pos.x*n);f.css("top",this.pos.y*j);f.css("width",this.size.x*n);f.css("height",this.size.y*j)}else j=w/2-destW/2,n=h/2-destH/2,console.log(j,n),f.css("left",j+this.pos.x*multiplier),f.css("top",n+this.pos.y*multiplier),f.css("width",this.size.x*multiplier),f.css("height",this.size.y*multiplier);e?f.html("<a target='_blank' href='"+c+"'><img style='width:100%;height:100%' src='"+d+"'></a>"):f.html("<a href='"+c+"'><img style='width:100%;height:100%' src='"+d+"'></a>");
dynamicClickableEntityDivs[b]={};dynamicClickableEntityDivs[b].width=this.size.x*multiplier;dynamicClickableEntityDivs[b].height=this.size.y*multiplier;dynamicClickableEntityDivs[b].entity_pos_x=this.pos.x;dynamicClickableEntityDivs[b].entity_pos_y=this.pos.y},draw:function(){ig.system.context.fillStyle="#ffffff";ig.system.context.fillRect(0,0,ig.system.width,ig.system.height);ig.system.context.fillStyle="#000";ig.system.context.font="12px Arial";ig.system.context.textAlign="left";320>=ig.system.width?
ig.system.context.fillText("powered by MarketJS.com",ig.system.width-150,ig.system.height-15):ig.system.context.fillText("powered by MarketJS.com",ig.system.width-160,ig.system.height-15);this.parent();this.splash&&ig.system.context.drawImage(this.splash.data,0,0,this.splash.data.width,this.splash.data.height,this.pos.x,this.pos.y,this.size.x,this.size.y)}})});this.END_BRANDING_SPLASH;ig.baked=!0;
ig.module("game.entities.buttons.button").requires("impact.entity").defines(function(){EntityButton=ig.Entity.extend({collides:ig.Entity.COLLIDES.NEVER,type:ig.Entity.TYPE.A,fillColor:null,layer:0,isClicked:!1,scale:{x:1,y:1},enabled:!0,isShown:!0,withText:!1,anchor:{x:0.5,y:0},buttonText:"",init:function(b,c,d){this.parent(b,c,d);this.setAnim();this.setAnchor(this.anchor.x,this.anchor.y);this.layer=ig.game.currentLayer;this.scaleX0=this.scale.x;this.scaleY0=this.scale.y;this.scaleX1=0.9*this.scaleX0;
this.scaleY1=0.9*this.scaleY0;this.scaleX2=1.04*this.scaleX0;this.scaleY2=1.04*this.scaleY0},ready:function(){this.parent();this.clickTime=ig.system.clock.delta()},setAnim:function(){this.animSheet=new ig.AnimationSheet(this.animImage.path,this.animImage.width,this.animImage.height);this.addAnim("idle",1,[0],!0);this.size.x=this.animSheet.width*this.scale.x;this.size.y=this.animSheet.height*this.scale.y},clicked:function(){var b=this.clickTime;this.clickTime=ig.system.clock.delta();!(0.35>this.clickTime-
b)&&this.enabled&&ig.game.currentLayer==this.layer&&(this.isClicked=!0,this.tween({scale:{x:this.scaleX1,y:this.scaleY1}},0.025).start(),ig.soundHandler.sfxPlayer.play("button"))},released:function(){this.isClicked&&this.enabled&&(ig.domHandler.getElementById("#canvas").css("cursor","default"),this.isClicked=!1,this.tween({scale:{x:this.scaleX0,y:this.scaleY0}},0.025,{onComplete:function(){this.callback()}.bind(this)}).start())},leave:function(){this.isClicked=!1;ig.domHandler.getElementById("#canvas").css("cursor",
"default");this.tween({scale:{x:this.scaleX0,y:this.scaleY0}},0.025).start()},over:function(){ig.game.currentLayer==this.layer&&this.enabled&&(ig.domHandler.getElementById("#canvas").css("cursor","pointer"),this.tween({scale:{x:this.scaleX2,y:this.scaleY2}},0.025).start())},draw:function(){if(this.isShown){var b=ig.system.context;b.save();b.translate(ig.system.getDrawPos(this.pos.x.round()-ig.game.screen.x+this.size.x/2-this.offset.x),ig.system.getDrawPos(this.pos.y.round()-ig.game.screen.y+this.size.y/
2-this.offset.y));b.scale(this.scale.x,this.scale.y);this.currentAnim&&this.currentAnim.draw(-this.size.x/2,-this.size.y/2);this.withText&&this.drawText();b.restore()}},callback:function(){},drawText:function(){ig.game.drawText(this.buttonText,0,10,28,"#FFF","center")},setShown:function(b){this.isShown=this.enabled=b}})});ig.baked=!0;
ig.module("plugins.clickable-div-layer").requires("plugins.data.vector").defines(function(){ClickableDivLayer=ig.Class.extend({pos:new Vector2(0,0),size:new Vector2(0,0),identifier:null,invisImagePath:"media/graphics/misc/invisible.png",init:function(b){this.pos=new Vector2(b.pos.x,b.pos.y);this.size=new Vector2(b.size.x,b.size.y);var c="more-games",d="www.google.com",e=!1;b.div_layer_name&&(c=b.div_layer_name);b.link&&(d=b.link);b.newWindow&&(e=b.newWindow);this.createClickableLayer(c,d,e)},createClickableLayer:function(b,
c,d){this.identifier=b;var e=ig.domHandler.getElementById("#"+b);e?(ig.domHandler.show(e),ig.domHandler.attr(e,"href",c)):this.createClickableOutboundLayer(b,c,this.invisImagePath,d)},update:function(b,c){this.pos.x===b&&this.pos.y===c||(ig.sizeHandler.dynamicClickableEntityDivs[this.identifier]={},ig.sizeHandler.dynamicClickableEntityDivs[this.identifier].width=this.size.x,ig.sizeHandler.dynamicClickableEntityDivs[this.identifier].height=this.size.y,ig.sizeHandler.dynamicClickableEntityDivs[this.identifier].entity_pos_x=
this.pos.x,ig.sizeHandler.dynamicClickableEntityDivs[this.identifier].entity_pos_y=this.pos.y)},createClickableOutboundLayer:function(b,c,d,e){var f=ig.domHandler.create("div");ig.domHandler.attr(f,"id",b);var j=ig.domHandler.create("a");e?(ig.domHandler.attr(j,"href",c),ig.domHandler.attr(j,"target","_blank")):ig.domHandler.attr(j,"href",c);c=ig.domHandler.create("img");ig.domHandler.css(c,{width:"100%",height:"100%"});ig.domHandler.attr(c,"src",d);d=Math.min(ig.sizeHandler.scaleRatioMultiplier.x,
ig.sizeHandler.scaleRatioMultiplier.y);if(ig.ua.mobile){e=ig.domHandler.getElementById("#canvas");e=ig.domHandler.getOffsets(e);var n=e.left,m=e.top;console.log(e.left);ig.sizeHandler.disableStretchToFitOnMobileFlag?(e=Math.floor(n+this.pos.x*ig.sizeHandler.scaleRatioMultiplier.x)+"px",m=Math.floor(m+this.pos.y*ig.sizeHandler.scaleRatioMultiplier.y)+"px",n=Math.floor(this.size.x*ig.sizeHandler.scaleRatioMultiplier.x)+"px",d=Math.floor(this.size.y*ig.sizeHandler.scaleRatioMultiplier.y)+"px"):(e=Math.floor(this.pos.x*
ig.sizeHandler.sizeRatio.x)+"px",m=Math.floor(this.pos.y*ig.sizeHandler.sizeRatio.y)+"px",n=Math.floor(this.size.x*ig.sizeHandler.sizeRatio.x)+"px",d=Math.floor(this.size.y*ig.sizeHandler.sizeRatio.y)+"px")}else e=ig.domHandler.getElementById("#canvas"),e=ig.domHandler.getOffsets(e),n=e.left,m=e.top,ig.sizeHandler.enableStretchToFitOnDesktopFlag?(e=Math.floor(n+this.pos.x*ig.sizeHandler.sizeRatio.x)+"px",m=Math.floor(m+this.pos.y*ig.sizeHandler.sizeRatio.y)+"px",n=Math.floor(this.size.x*ig.sizeHandler.sizeRatio.x)+
"px",d=Math.floor(this.size.y*ig.sizeHandler.sizeRatio.y)+"px"):(e=Math.floor(n+this.pos.x*d)+"px",m=Math.floor(m+this.pos.y*d)+"px",n=Math.floor(this.size.x*d)+"px",d=Math.floor(this.size.y*d)+"px");ig.domHandler.css(f,{"float":"left",position:"absolute",left:e,top:m,width:n,height:d,"z-index":3});ig.domHandler.addEvent(f,"mousemove",ig.input.mousemove.bind(ig.input),!1);ig.domHandler.appendChild(j,c);ig.domHandler.appendChild(f,j);ig.domHandler.appendToBody(f);ig.sizeHandler.dynamicClickableEntityDivs[b]=
{};ig.sizeHandler.dynamicClickableEntityDivs[b].width=this.size.x;ig.sizeHandler.dynamicClickableEntityDivs[b].height=this.size.y;ig.sizeHandler.dynamicClickableEntityDivs[b].entity_pos_x=this.pos.x;ig.sizeHandler.dynamicClickableEntityDivs[b].entity_pos_y=this.pos.y}})});ig.baked=!0;
ig.module("game.entities.buttons.button-branding-logo").requires("game.entities.buttons.button","plugins.clickable-div-layer").defines(function(){EntityButtonBrandingLogo=EntityButton.extend({type:ig.Entity.TYPE.A,gravityFactor:0,logo:new ig.AnimationSheet("branding/logo.png",_SETTINGS.Branding.Logo.Width,_SETTINGS.Branding.Logo.Height),zIndex:10001,size:{x:64,y:66},clickableLayer:null,link:null,newWindow:!1,div_layer_name:"branding-logo",name:"brandinglogo",init:function(b,c,d){this.parent(b,c,d);
if(!ig.global.wm){if("undefined"==typeof wm)if(_SETTINGS.Branding.Logo.Enabled)this.size.x=_SETTINGS.Branding.Logo.Width,this.size.y=_SETTINGS.Branding.Logo.Height,this.anims.idle=new ig.Animation(this.logo,0,[0],!0),this.currentAnim=this.anims.idle,d&&d.centralize&&(this.pos.x=ig.system.width/2-this.size.x/2,console.log("centralize true ... centering branded logo ...")),_SETTINGS.Branding.Logo.LinkEnabled&&(this.link=_SETTINGS.Branding.Logo.Link,this.newWindow=_SETTINGS.Branding.Logo.NewWindow,this.clickableLayer=
new ClickableDivLayer(this));else{this.kill();return}this.div_layer_name=d.div_layer_name?d.div_layer_name:"branding-logo"}},show:function(){var b=ig.domHandler.getElementById("#"+this.div_layer_name);ig.domHandler.show(b)},hide:function(){var b=ig.domHandler.getElementById("#"+this.div_layer_name);ig.domHandler.hide(b)},clicked:function(){},clicking:function(){},released:function(){}})});ig.baked=!0;
ig.module("game.entities.branding-logo-placeholder").requires("impact.entity","game.entities.buttons.button-branding-logo").defines(function(){EntityBrandingLogoPlaceholder=ig.Entity.extend({gravityFactor:0,size:{x:32,y:32},_wmDrawBox:!0,_wmBoxColor:"rgba(0, 0, 255, 0.7)",init:function(b,c,d){this.parent(b,c,d);if(d)switch(console.log("settings found ... using that div layer name"),b=d.div_layer_name,console.log("settings.centralize:",d.centralize),d.centralize){case "true":console.log("centralize true");
centralize=!0;break;case "false":console.log("centralize false");centralize=!1;break;default:console.log("default ... centralize false"),centralize=!1}else b="branding-logo",centralize=!1;if("undefined"==typeof wm){if(_SETTINGS.Branding.Logo.Enabled)try{ig.game.spawnEntity(EntityButtonBrandingLogo,this.pos.x,this.pos.y,{div_layer_name:b,centralize:centralize})}catch(e){console.log(e)}this.kill()}}})});ig.baked=!0;
ig.module("game.entities.buttons.button-more-games").requires("game.entities.buttons.button","plugins.clickable-div-layer").defines(function(){EntityButtonMoreGames=EntityButton.extend({type:ig.Entity.TYPE.A,gravityFactor:0,animImage:new ig.Image("media/graphics/games/ui/moregames-btn.png"),size:{x:64,y:64},zIndex:750,alpha:0,clickableLayer:null,link:null,newWindow:!1,div_layer_name:"more-games",name:"moregames",init:function(b,c,d){this.parent(b,c,d);ig.global.wm||(this.currentAnim.alpha=0,this.fadeIn(),
this.div_layer_name=d.div_layer_name?d.div_layer_name:"more-games",_SETTINGS.MoreGames.Enabled?(_SETTINGS.MoreGames.Link&&(this.link=_SETTINGS.MoreGames.Link),_SETTINGS.MoreGames.NewWindow&&(this.newWindow=_SETTINGS.MoreGames.NewWindow),this.clickableLayer=new ClickableDivLayer(this)):this.kill())},show:function(){var b=ig.domHandler.getElementById("#"+this.div_layer_name);ig.domHandler.show(b)},hide:function(){var b=ig.domHandler.getElementById("#"+this.div_layer_name);ig.domHandler.hide(b)},fadeIn:function(){this.tween({currentAnim:{alpha:1}},
1).start()}})});1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;81;82;83;84;85;86;87;88;89;90;91;92;93;94;95;96;97;98;99;100;101;102;103;104;105;106;107;108;109;110;111;112;113;114;115;116;117;118;119;120;121;122;123;124;125;126;127;128;129;130;131;132;133;134;135;136;137;138;139;140;141;142;143;144;145;146;147;148;149;
150;151;152;153;154;155;156;157;158;159;160;161;162;163;164;165;166;167;168;169;170;171;172;173;174;175;176;177;178;179;180;181;182;183;184;185;186;187;188;189;190;191;192;193;194;195;196;197;198;199;200;201;202;203;204;205;206;207;208;209;210;211;212;213;214;215;216;217;218;219;220;221;222;223;224;225;226;227;228;229;230;231;232;233;234;235;236;237;238;239;240;241;242;243;244;245;246;247;248;249;250;251;252;253;254;255;256;257;258;259;260;261;262;263;264;265;266;267;268;269;270;271;272;273;274;275;
276;277;278;279;280;281;282;283;284;285;286;287;288;289;290;291;292;293;294;295;296;297;298;299;300;301;302;303;304;305;306;307;308;309;310;311;312;313;314;315;316;317;318;319;320;321;322;323;324;325;326;327;328;329;330;331;332;333;334;335;336;337;338;339;340;341;342;343;344;345;346;347;348;349;350;351;352;353;354;355;356;357;358;359;360;361;362;363;364;365;366;367;368;369;370;371;372;373;374;375;376;377;378;379;380;381;382;383;384;385;386;387;388;389;390;391;392;393;394;395;396;397;398;399;400;401;
402;403;404;405;406;407;408;409;410;411;412;413;414;415;416;417;418;419;420;421;422;423;424;425;426;427;428;429;430;431;432;433;434;435;436;437;438;439;440;441;442;443;444;445;446;447;448;449;450;451;452;453;454;455;456;457;458;459;460;461;462;463;464;465;466;467;468;469;470;471;472;473;474;475;476;477;478;479;480;481;482;483;484;485;486;487;488;489;490;491;492;493;494;495;496;497;var Box2D={SCALE:0.1};
(function(b,c){function d(){}var e=function(){var b,c,d,e,g=Function.call,t=Object.prototype,z=g.bind(t.hasOwnProperty),y=g.bind(t.propertyIsEnumerable),A=g.bind(t.toString),B=z(t,"__defineGetter__");B&&(b=g.bind(t.__defineGetter__),c=g.bind(t.__defineSetter__),d=g.bind(t.__lookupGetter__),e=g.bind(t.__lookupSetter__));var I=function(b){return null==b||"object"!=typeof b&&"function"!=typeof b};Object.getPrototypeOf||(Object.getPrototypeOf=function(b){var c=b.__proto__;return c||null===c?c:"[object Function]"===
A(b.constructor)?b.constructor.prototype:b instanceof Object?t:null});g=function(b){try{return b.sentinel=0,0===Object.getOwnPropertyDescriptor(b,"sentinel").value}catch(c){return!1}};if(Object.defineProperty){var D=g({});if(!("undefined"==typeof document||g(document.createElement("div")))||!D)var x=Object.getOwnPropertyDescriptor}if(!Object.getOwnPropertyDescriptor||x)Object.getOwnPropertyDescriptor=function(b,c){if(I(b))throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+
b);if(x)try{return x.call(Object,b,c)}catch(f){}var g;if(!z(b,c))return g;if(g={enumerable:y(b,c),configurable:!0},B){var j=b.__proto__,E=b!==t;E&&(b.__proto__=t);var s=d(b,c),u=e(b,c);if(E&&(b.__proto__=j),s||u)return s&&(g.get=s),u&&(g.set=u),g}return g.value=b[c],g.writable=!0,g};if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(b){return Object.keys(b)}),!Object.create){var G;G="undefined"==typeof document?function(){return{__proto__:null}}:function(){var b,c,d,e,f,g=function(){if(!document.domain)return!1;
try{return!!new ActiveXObject("htmlfile")}catch(b){return!1}}()?((f=new ActiveXObject("htmlfile")).write("<script>\x3c/script>"),f.close(),e=f.parentWindow.Object.prototype,f=null,e):(c=document.createElement("iframe"),d=document.body||document.documentElement,c.style.display="none",d.appendChild(c),c.src="javascript:",b=c.contentWindow.Object.prototype,d.removeChild(c),c=null,b);delete g.constructor;delete g.hasOwnProperty;delete g.propertyIsEnumerable;delete g.isPrototypeOf;delete g.toLocaleString;
delete g.toString;delete g.valueOf;var s=function(){};return s.prototype=g,G=function(){return new s},new s};Object.create=function(b,c){var d;d=function(){};if(null===b)d=G();else{if(null!==b&&I(b))throw new TypeError("Object prototype may only be an Object or null");d.prototype=b;(d=new d).__proto__=b}return void 0!==c&&Object.defineProperties(d,c),d}}var E,D=function(b){try{return Object.defineProperty(b,"sentinel",{}),"sentinel"in b}catch(c){return!1}};if(Object.defineProperty&&(g=D({}),D="undefined"==
typeof document||D(document.createElement("div")),!g||!D))var L=Object.defineProperty,M=Object.defineProperties;if(!Object.defineProperty||L)Object.defineProperty=function(g,x,E){if(I(g))throw new TypeError("Object.defineProperty called on non-object: "+g);if(I(E))throw new TypeError("Property description must be an object: "+E);if(L)try{return L.call(Object,g,x,E)}catch(G){}if("value"in E)if(B&&(d(g,x)||e(g,x))){var y=g.__proto__;g.__proto__=t;delete g[x];g[x]=E.value;g.__proto__=y}else g[x]=E.value;
else{var y="get"in E,A="set"in E;if(!B&&(y||A))throw new TypeError("getters & setters can not be defined on this javascript engine");y&&b(g,x,E.get);A&&c(g,x,E.set)}return g};Object.defineProperties&&!M||(Object.defineProperties=function(b,c){if(M)try{return M.call(Object,b,c)}catch(d){}return Object.keys(c).forEach(function(d){"__proto__"!==d&&Object.defineProperty(b,d,c[d])}),b});Object.seal||(Object.seal=function(b){if(Object(b)!==b)throw new TypeError("Object.seal can only be called on Objects.");
return b});Object.freeze||(Object.freeze=function(b){if(Object(b)!==b)throw new TypeError("Object.freeze can only be called on Objects.");return b});try{Object.freeze(function(){})}catch(Q){Object.freeze=(E=Object.freeze,function(b){return"function"==typeof b?b:E(b)})}Object.preventExtensions||(Object.preventExtensions=function(b){if(Object(b)!==b)throw new TypeError("Object.preventExtensions can only be called on Objects.");return b});Object.isSealed||(Object.isSealed=function(b){if(Object(b)!==
b)throw new TypeError("Object.isSealed can only be called on Objects.");return!1});Object.isFrozen||(Object.isFrozen=function(b){if(Object(b)!==b)throw new TypeError("Object.isFrozen can only be called on Objects.");return!1});Object.isExtensible||(Object.isExtensible=function(b){if(Object(b)!==b)throw new TypeError("Object.isExtensible can only be called on Objects.");for(var c="";z(b,c);)c+="?";b[c]=!0;var d=z(b,c);return delete b[c],d})};"function"==typeof define&&define.amd?define(e):"object"==
typeof exports?module.exports=e():this.returnExports=e();!0;b.inherit=function(b,c){d.prototype=c.prototype;b.prototype=new d;b.prototype.constructor=b};b.generateCallback=function(b,c){return function(){c.apply(b,arguments)}};b.NVector=function(b){b===c&&(b=0);for(var d=Array(b||0),e=0;e<b;++e)d[e]=0;return d};b.is=function(b,d){return null===b?!1:d instanceof Function&&b instanceof d||b.constructor.__implements!=c&&b.constructor.__implements[d]?!0:!1};b.parseUInt=function(b){return Math.abs(parseInt(b))}})(Box2D);
var Vector=Array,Vector_a2j_Number=Box2D.NVector;"undefined"===typeof Box2D&&(Box2D={});"undefined"===typeof Box2D.Collision&&(Box2D.Collision={});"undefined"===typeof Box2D.Collision.Shapes&&(Box2D.Collision.Shapes={});"undefined"===typeof Box2D.Common&&(Box2D.Common={});"undefined"===typeof Box2D.Common.Math&&(Box2D.Common.Math={});"undefined"===typeof Box2D.Dynamics&&(Box2D.Dynamics={});"undefined"===typeof Box2D.Dynamics.Contacts&&(Box2D.Dynamics.Contacts={});
"undefined"===typeof Box2D.Dynamics.Controllers&&(Box2D.Dynamics.Controllers={});"undefined"===typeof Box2D.Dynamics.Joints&&(Box2D.Dynamics.Joints={});
(function(){function b(){b.b2AABB.apply(this,arguments)}function c(){c.b2Bound.apply(this,arguments)}function d(){d.b2BoundValues.apply(this,arguments);this.constructor===d&&this.b2BoundValues.apply(this,arguments)}function e(){e.b2Collision.apply(this,arguments)}function f(){f.b2ContactID.apply(this,arguments);this.constructor===f&&this.b2ContactID.apply(this,arguments)}function j(){j.b2ContactPoint.apply(this,arguments)}function n(){n.b2Distance.apply(this,arguments)}function m(){m.b2DistanceInput.apply(this,
arguments)}function g(){g.b2DistanceOutput.apply(this,arguments)}function t(){t.b2DistanceProxy.apply(this,arguments)}function z(){z.b2DynamicTree.apply(this,arguments);this.constructor===z&&this.b2DynamicTree.apply(this,arguments)}function y(){y.b2DynamicTreeBroadPhase.apply(this,arguments)}function A(){A.b2DynamicTreeNode.apply(this,arguments)}function B(){B.b2DynamicTreePair.apply(this,arguments)}function I(){I.b2Manifold.apply(this,arguments);this.constructor===I&&this.b2Manifold.apply(this,arguments)}
function D(){D.b2ManifoldPoint.apply(this,arguments);this.constructor===D&&this.b2ManifoldPoint.apply(this,arguments)}function x(){x.b2Point.apply(this,arguments)}function G(){G.b2RayCastInput.apply(this,arguments);this.constructor===G&&this.b2RayCastInput.apply(this,arguments)}function E(){E.b2RayCastOutput.apply(this,arguments)}function L(){L.b2Segment.apply(this,arguments)}function M(){M.b2SeparationFunction.apply(this,arguments)}function Q(){Q.b2Simplex.apply(this,arguments);this.constructor===
Q&&this.b2Simplex.apply(this,arguments)}function J(){J.b2SimplexCache.apply(this,arguments)}function fa(){fa.b2SimplexVertex.apply(this,arguments)}function O(){O.b2TimeOfImpact.apply(this,arguments)}function P(){P.b2TOIInput.apply(this,arguments)}function ba(){ba.b2WorldManifold.apply(this,arguments);this.constructor===ba&&this.b2WorldManifold.apply(this,arguments)}function U(){U.ClipVertex.apply(this,arguments)}function s(){s.Features.apply(this,arguments)}function u(){u.b2CircleShape.apply(this,
arguments);this.constructor===u&&this.b2CircleShape.apply(this,arguments)}function F(){F.b2EdgeChainDef.apply(this,arguments);this.constructor===F&&this.b2EdgeChainDef.apply(this,arguments)}function C(){C.b2EdgeShape.apply(this,arguments);this.constructor===C&&this.b2EdgeShape.apply(this,arguments)}function H(){H.b2MassData.apply(this,arguments)}function Z(){Z.b2PolygonShape.apply(this,arguments);this.constructor===Z&&this.b2PolygonShape.apply(this,arguments)}function R(){R.b2Shape.apply(this,arguments);
this.constructor===R&&this.b2Shape.apply(this,arguments)}function l(){l.b2Color.apply(this,arguments);this.constructor===l&&this.b2Color.apply(this,arguments)}function q(){q.b2Settings.apply(this,arguments)}function K(){K.b2Mat22.apply(this,arguments);this.constructor===K&&this.b2Mat22.apply(this,arguments)}function r(){r.b2Mat33.apply(this,arguments);this.constructor===r&&this.b2Mat33.apply(this,arguments)}function N(){N.b2Math.apply(this,arguments)}function V(){V.b2Sweep.apply(this,arguments)}function ga(){ga.b2Transform.apply(this,
arguments);this.constructor===ga&&this.b2Transform.apply(this,arguments)}function ha(){ha.b2Vec2.apply(this,arguments);this.constructor===ha&&this.b2Vec2.apply(this,arguments)}function ka(){ka.b2Vec3.apply(this,arguments);this.constructor===ka&&this.b2Vec3.apply(this,arguments)}function na(){na.b2Body.apply(this,arguments);this.constructor===na&&this.b2Body.apply(this,arguments)}function oa(){oa.b2BodyDef.apply(this,arguments);this.constructor===oa&&this.b2BodyDef.apply(this,arguments)}function ua(){ua.b2ContactFilter.apply(this,
arguments)}function X(){X.b2ContactImpulse.apply(this,arguments)}function Db(){Db.b2ContactListener.apply(this,arguments)}function ya(){ya.b2ContactManager.apply(this,arguments);this.constructor===ya&&this.b2ContactManager.apply(this,arguments)}function ab(){ab.b2DebugDraw.apply(this,arguments);this.constructor===ab&&this.b2DebugDraw.apply(this,arguments)}function cb(){cb.b2DestructionListener.apply(this,arguments)}function Ja(){Ja.b2FilterData.apply(this,arguments)}function Ka(){Ka.b2Fixture.apply(this,
arguments);this.constructor===Ka&&this.b2Fixture.apply(this,arguments)}function db(){db.b2FixtureDef.apply(this,arguments);this.constructor===db&&this.b2FixtureDef.apply(this,arguments)}function La(){La.b2Island.apply(this,arguments);this.constructor===La&&this.b2Island.apply(this,arguments)}function nb(){nb.b2TimeStep.apply(this,arguments)}function ob(){ob.b2World.apply(this,arguments);this.constructor===ob&&this.b2World.apply(this,arguments)}function da(){da.b2CircleContact.apply(this,arguments)}
function p(){p.b2Contact.apply(this,arguments);this.constructor===p&&this.b2Contact.apply(this,arguments)}function pb(){pb.b2ContactConstraint.apply(this,arguments);this.constructor===pb&&this.b2ContactConstraint.apply(this,arguments)}function Eb(){Eb.b2ContactConstraintPoint.apply(this,arguments)}function Fb(){Fb.b2ContactEdge.apply(this,arguments)}function qb(){qb.b2ContactFactory.apply(this,arguments);this.constructor===qb&&this.b2ContactFactory.apply(this,arguments)}function za(){za.b2ContactRegister.apply(this,
arguments)}function eb(){eb.b2ContactResult.apply(this,arguments)}function ca(){ca.b2ContactSolver.apply(this,arguments);this.constructor===ca&&this.b2ContactSolver.apply(this,arguments)}function hb(){hb.b2EdgeAndCircleContact.apply(this,arguments)}function pa(){pa.b2NullContact.apply(this,arguments);this.constructor===pa&&this.b2NullContact.apply(this,arguments)}function ra(){ra.b2PolyAndCircleContact.apply(this,arguments)}function ib(){ib.b2PolyAndEdgeContact.apply(this,arguments)}function sb(){sb.b2PolygonContact.apply(this,
arguments)}function tb(){tb.b2PositionSolverManifold.apply(this,arguments);this.constructor===tb&&this.b2PositionSolverManifold.apply(this,arguments)}function Ib(){Ib.b2BuoyancyController.apply(this,arguments)}function ub(){ub.b2ConstantAccelController.apply(this,arguments)}function Ca(){Ca.b2ConstantForceController.apply(this,arguments)}function fb(){fb.b2Controller.apply(this,arguments)}function vb(){vb.b2ControllerEdge.apply(this,arguments)}function Ta(){Ta.b2GravityController.apply(this,arguments)}
function Ua(){Ua.b2TensorDampingController.apply(this,arguments)}function Va(){Va.b2DistanceJoint.apply(this,arguments);this.constructor===Va&&this.b2DistanceJoint.apply(this,arguments)}function Oa(){Oa.b2DistanceJointDef.apply(this,arguments);this.constructor===Oa&&this.b2DistanceJointDef.apply(this,arguments)}function Wa(){Wa.b2FrictionJoint.apply(this,arguments);this.constructor===Wa&&this.b2FrictionJoint.apply(this,arguments)}function Ya(){Ya.b2FrictionJointDef.apply(this,arguments);this.constructor===
Ya&&this.b2FrictionJointDef.apply(this,arguments)}function Ea(){Ea.b2GearJoint.apply(this,arguments);this.constructor===Ea&&this.b2GearJoint.apply(this,arguments)}function ea(){ea.b2GearJointDef.apply(this,arguments);this.constructor===ea&&this.b2GearJointDef.apply(this,arguments)}function W(){W.b2Jacobian.apply(this,arguments)}function Qa(){Qa.b2Joint.apply(this,arguments);this.constructor===Qa&&this.b2Joint.apply(this,arguments)}function jb(){jb.b2JointDef.apply(this,arguments);this.constructor===
jb&&this.b2JointDef.apply(this,arguments)}function Na(){Na.b2JointEdge.apply(this,arguments)}function Za(){Za.b2LineJoint.apply(this,arguments);this.constructor===Za&&this.b2LineJoint.apply(this,arguments)}function gb(){gb.b2LineJointDef.apply(this,arguments);this.constructor===gb&&this.b2LineJointDef.apply(this,arguments)}function Pa(){Pa.b2MouseJoint.apply(this,arguments);this.constructor===Pa&&this.b2MouseJoint.apply(this,arguments)}function xa(){xa.b2MouseJointDef.apply(this,arguments);this.constructor===
xa&&this.b2MouseJointDef.apply(this,arguments)}function Fa(){Fa.b2PrismaticJoint.apply(this,arguments);this.constructor===Fa&&this.b2PrismaticJoint.apply(this,arguments)}function wa(){wa.b2PrismaticJointDef.apply(this,arguments);this.constructor===wa&&this.b2PrismaticJointDef.apply(this,arguments)}function Y(){Y.b2PulleyJoint.apply(this,arguments);this.constructor===Y&&this.b2PulleyJoint.apply(this,arguments)}function ma(){ma.b2PulleyJointDef.apply(this,arguments);this.constructor===ma&&this.b2PulleyJointDef.apply(this,
arguments)}function la(){la.b2RevoluteJoint.apply(this,arguments);this.constructor===la&&this.b2RevoluteJoint.apply(this,arguments)}function ja(){ja.b2RevoluteJointDef.apply(this,arguments);this.constructor===ja&&this.b2RevoluteJointDef.apply(this,arguments)}function Aa(){Aa.b2WeldJoint.apply(this,arguments);this.constructor===Aa&&this.b2WeldJoint.apply(this,arguments)}function Ra(){Ra.b2WeldJointDef.apply(this,arguments);this.constructor===Ra&&this.b2WeldJointDef.apply(this,arguments)}Box2D.Collision.IBroadPhase=
"Box2D.Collision.IBroadPhase";Box2D.Collision.b2AABB=b;Box2D.Collision.b2Bound=c;Box2D.Collision.b2BoundValues=d;Box2D.Collision.b2Collision=e;Box2D.Collision.b2ContactID=f;Box2D.Collision.b2ContactPoint=j;Box2D.Collision.b2Distance=n;Box2D.Collision.b2DistanceInput=m;Box2D.Collision.b2DistanceOutput=g;Box2D.Collision.b2DistanceProxy=t;Box2D.Collision.b2DynamicTree=z;Box2D.Collision.b2DynamicTreeBroadPhase=y;Box2D.Collision.b2DynamicTreeNode=A;Box2D.Collision.b2DynamicTreePair=B;Box2D.Collision.b2Manifold=
I;Box2D.Collision.b2ManifoldPoint=D;Box2D.Collision.b2Point=x;Box2D.Collision.b2RayCastInput=G;Box2D.Collision.b2RayCastOutput=E;Box2D.Collision.b2Segment=L;Box2D.Collision.b2SeparationFunction=M;Box2D.Collision.b2Simplex=Q;Box2D.Collision.b2SimplexCache=J;Box2D.Collision.b2SimplexVertex=fa;Box2D.Collision.b2TimeOfImpact=O;Box2D.Collision.b2TOIInput=P;Box2D.Collision.b2WorldManifold=ba;Box2D.Collision.ClipVertex=U;Box2D.Collision.Features=s;Box2D.Collision.Shapes.b2CircleShape=u;Box2D.Collision.Shapes.b2EdgeChainDef=
F;Box2D.Collision.Shapes.b2EdgeShape=C;Box2D.Collision.Shapes.b2MassData=H;Box2D.Collision.Shapes.b2PolygonShape=Z;Box2D.Collision.Shapes.b2Shape=R;Box2D.Common.b2internal="Box2D.Common.b2internal";Box2D.Common.b2Color=l;Box2D.Common.b2Settings=q;Box2D.Common.Math.b2Mat22=K;Box2D.Common.Math.b2Mat33=r;Box2D.Common.Math.b2Math=N;Box2D.Common.Math.b2Sweep=V;Box2D.Common.Math.b2Transform=ga;Box2D.Common.Math.b2Vec2=ha;Box2D.Common.Math.b2Vec3=ka;Box2D.Dynamics.b2Body=na;Box2D.Dynamics.b2BodyDef=oa;Box2D.Dynamics.b2ContactFilter=
ua;Box2D.Dynamics.b2ContactImpulse=X;Box2D.Dynamics.b2ContactListener=Db;Box2D.Dynamics.b2ContactManager=ya;Box2D.Dynamics.b2DebugDraw=ab;Box2D.Dynamics.b2DestructionListener=cb;Box2D.Dynamics.b2FilterData=Ja;Box2D.Dynamics.b2Fixture=Ka;Box2D.Dynamics.b2FixtureDef=db;Box2D.Dynamics.b2Island=La;Box2D.Dynamics.b2TimeStep=nb;Box2D.Dynamics.b2World=ob;Box2D.Dynamics.Contacts.b2CircleContact=da;Box2D.Dynamics.Contacts.b2Contact=p;Box2D.Dynamics.Contacts.b2ContactConstraint=pb;Box2D.Dynamics.Contacts.b2ContactConstraintPoint=
Eb;Box2D.Dynamics.Contacts.b2ContactEdge=Fb;Box2D.Dynamics.Contacts.b2ContactFactory=qb;Box2D.Dynamics.Contacts.b2ContactRegister=za;Box2D.Dynamics.Contacts.b2ContactResult=eb;Box2D.Dynamics.Contacts.b2ContactSolver=ca;Box2D.Dynamics.Contacts.b2EdgeAndCircleContact=hb;Box2D.Dynamics.Contacts.b2NullContact=pa;Box2D.Dynamics.Contacts.b2PolyAndCircleContact=ra;Box2D.Dynamics.Contacts.b2PolyAndEdgeContact=ib;Box2D.Dynamics.Contacts.b2PolygonContact=sb;Box2D.Dynamics.Contacts.b2PositionSolverManifold=
tb;Box2D.Dynamics.Controllers.b2BuoyancyController=Ib;Box2D.Dynamics.Controllers.b2ConstantAccelController=ub;Box2D.Dynamics.Controllers.b2ConstantForceController=Ca;Box2D.Dynamics.Controllers.b2Controller=fb;Box2D.Dynamics.Controllers.b2ControllerEdge=vb;Box2D.Dynamics.Controllers.b2GravityController=Ta;Box2D.Dynamics.Controllers.b2TensorDampingController=Ua;Box2D.Dynamics.Joints.b2DistanceJoint=Va;Box2D.Dynamics.Joints.b2DistanceJointDef=Oa;Box2D.Dynamics.Joints.b2FrictionJoint=Wa;Box2D.Dynamics.Joints.b2FrictionJointDef=
Ya;Box2D.Dynamics.Joints.b2GearJoint=Ea;Box2D.Dynamics.Joints.b2GearJointDef=ea;Box2D.Dynamics.Joints.b2Jacobian=W;Box2D.Dynamics.Joints.b2Joint=Qa;Box2D.Dynamics.Joints.b2JointDef=jb;Box2D.Dynamics.Joints.b2JointEdge=Na;Box2D.Dynamics.Joints.b2LineJoint=Za;Box2D.Dynamics.Joints.b2LineJointDef=gb;Box2D.Dynamics.Joints.b2MouseJoint=Pa;Box2D.Dynamics.Joints.b2MouseJointDef=xa;Box2D.Dynamics.Joints.b2PrismaticJoint=Fa;Box2D.Dynamics.Joints.b2PrismaticJointDef=wa;Box2D.Dynamics.Joints.b2PulleyJoint=Y;
Box2D.Dynamics.Joints.b2PulleyJointDef=ma;Box2D.Dynamics.Joints.b2RevoluteJoint=la;Box2D.Dynamics.Joints.b2RevoluteJointDef=ja;Box2D.Dynamics.Joints.b2WeldJoint=Aa;Box2D.Dynamics.Joints.b2WeldJointDef=Ra})();Box2D.postDefs=[];
(function(){var b=Box2D.Collision.Shapes.b2CircleShape,c=Box2D.Collision.Shapes.b2PolygonShape,d=Box2D.Collision.Shapes.b2Shape,e=Box2D.Common.b2Settings,f=Box2D.Common.Math.b2Math,j=Box2D.Common.Math.b2Sweep,n=Box2D.Common.Math.b2Transform,m=Box2D.Common.Math.b2Vec2,g=Box2D.Collision.b2AABB,t=Box2D.Collision.b2Bound,z=Box2D.Collision.b2BoundValues,y=Box2D.Collision.b2Collision,A=Box2D.Collision.b2ContactID,B=Box2D.Collision.b2ContactPoint,I=Box2D.Collision.b2Distance,D=Box2D.Collision.b2DistanceInput,
x=Box2D.Collision.b2DistanceOutput,G=Box2D.Collision.b2DistanceProxy,E=Box2D.Collision.b2DynamicTree,L=Box2D.Collision.b2DynamicTreeBroadPhase,M=Box2D.Collision.b2DynamicTreeNode,Q=Box2D.Collision.b2DynamicTreePair,J=Box2D.Collision.b2Manifold,fa=Box2D.Collision.b2ManifoldPoint,O=Box2D.Collision.b2Point,P=Box2D.Collision.b2RayCastInput,ba=Box2D.Collision.b2RayCastOutput,U=Box2D.Collision.b2Segment,s=Box2D.Collision.b2SeparationFunction,u=Box2D.Collision.b2Simplex,F=Box2D.Collision.b2SimplexCache,
C=Box2D.Collision.b2SimplexVertex,H=Box2D.Collision.b2TimeOfImpact,Z=Box2D.Collision.b2TOIInput,R=Box2D.Collision.b2WorldManifold,l=Box2D.Collision.ClipVertex,q=Box2D.Collision.Features,K=Box2D.Collision.IBroadPhase;g.b2AABB=function(){this.lowerBound=new m;this.upperBound=new m};g.prototype.IsValid=function(){var b=this.upperBound.y-this.lowerBound.y;return 0<=this.upperBound.x-this.lowerBound.x&&0<=b&&this.lowerBound.IsValid()&&this.upperBound.IsValid()};g.prototype.GetCenter=function(){return new m((this.lowerBound.x+
this.upperBound.x)/2,(this.lowerBound.y+this.upperBound.y)/2)};g.prototype.GetExtents=function(){return new m((this.upperBound.x-this.lowerBound.x)/2,(this.upperBound.y-this.lowerBound.y)/2)};g.prototype.Contains=function(b){return this.lowerBound.x<=b.lowerBound.x&&this.lowerBound.y<=b.lowerBound.y&&b.upperBound.x<=this.upperBound.x&&b.upperBound.y<=this.upperBound.y};g.prototype.RayCast=function(b,c){var d=-Number.MAX_VALUE,l=Number.MAX_VALUE,e=c.p1.x,g=c.p1.y,f=c.p2.x-c.p1.x,q=c.p2.y-c.p1.y,s=
Math.abs(q),j=b.normal,m=0,u=0,C=0;if(Math.abs(f)<Number.MIN_VALUE){if(e<this.lowerBound.x||this.upperBound.x<e)return!1}else if(m=1/f,u=(this.lowerBound.x-e)*m,m*=this.upperBound.x-e,C=-1,u>m&&(C=u,u=m,m=C,C=1),u>d&&(j.x=C,j.y=0,d=u),l=Math.min(l,m),d>l)return!1;if(s<Number.MIN_VALUE){if(g<this.lowerBound.y||this.upperBound.y<g)return!1}else if(m=1/q,u=(this.lowerBound.y-g)*m,m*=this.upperBound.y-g,C=-1,u>m&&(C=u,u=m,m=C,C=1),u>d&&(j.y=C,j.x=0,d=u),l=Math.min(l,m),d>l)return!1;b.fraction=d;return!0};
g.prototype.TestOverlap=function(b){var c=b.lowerBound.y-this.upperBound.y,d=this.lowerBound.y-b.upperBound.y;return 0<b.lowerBound.x-this.upperBound.x||0<c||0<this.lowerBound.x-b.upperBound.x||0<d?!1:!0};g.Combine=function(b,c){var d=new g;d.Combine(b,c);return d};g.prototype.Combine=function(b,c){this.lowerBound.x=Math.min(b.lowerBound.x,c.lowerBound.x);this.lowerBound.y=Math.min(b.lowerBound.y,c.lowerBound.y);this.upperBound.x=Math.max(b.upperBound.x,c.upperBound.x);this.upperBound.y=Math.max(b.upperBound.y,
c.upperBound.y)};t.b2Bound=function(){};t.prototype.IsLower=function(){return 0==(this.value&1)};t.prototype.IsUpper=function(){return 1==(this.value&1)};t.prototype.Swap=function(b){var c=this.value,d=this.proxy,l=this.stabbingCount;this.value=b.value;this.proxy=b.proxy;this.stabbingCount=b.stabbingCount;b.value=c;b.proxy=d;b.stabbingCount=l};z.b2BoundValues=function(){};z.prototype.b2BoundValues=function(){this.lowerValues=new Vector_a2j_Number;this.lowerValues[0]=0;this.lowerValues[1]=0;this.upperValues=
new Vector_a2j_Number;this.upperValues[0]=0;this.upperValues[1]=0};y.b2Collision=function(){};y.ClipSegmentToLine=function(b,c,d,l){void 0===l&&(l=0);var e,g=0;e=c[0];var f=e.v;e=c[1];var q=e.v,s=d.x*f.x+d.y*f.y-l;e=d.x*q.x+d.y*q.y-l;0>=s&&b[g++].Set(c[0]);0>=e&&b[g++].Set(c[1]);0>s*e&&(d=s/(s-e),e=b[g],e=e.v,e.x=f.x+d*(q.x-f.x),e.y=f.y+d*(q.y-f.y),e=b[g],e.id=(0<s?c[0]:c[1]).id,++g);return g};y.EdgeSeparation=function(b,c,d,l,e){void 0===d&&(d=0);parseInt(b.m_vertexCount);var g=b.m_vertices;b=b.m_normals;
var f=parseInt(l.m_vertexCount),q=l.m_vertices,s,j;s=c.R;j=b[d];b=s.col1.x*j.x+s.col2.x*j.y;l=s.col1.y*j.x+s.col2.y*j.y;s=e.R;var m=s.col1.x*b+s.col1.y*l;s=s.col2.x*b+s.col2.y*l;for(var u=0,C=Number.MAX_VALUE,K=0;K<f;++K)j=q[K],j=j.x*m+j.y*s,j<C&&(C=j,u=K);j=g[d];s=c.R;d=c.position.x+(s.col1.x*j.x+s.col2.x*j.y);c=c.position.y+(s.col1.y*j.x+s.col2.y*j.y);j=q[u];s=e.R;g=e.position.x+(s.col1.x*j.x+s.col2.x*j.y);e=e.position.y+(s.col1.y*j.x+s.col2.y*j.y);return(g-d)*b+(e-c)*l};y.FindMaxSeparation=function(b,
c,d,l,e){var g=parseInt(c.m_vertexCount),f=c.m_normals,s,q;q=e.R;s=l.m_centroid;var j=e.position.x+(q.col1.x*s.x+q.col2.x*s.y),m=e.position.y+(q.col1.y*s.x+q.col2.y*s.y);q=d.R;s=c.m_centroid;j-=d.position.x+(q.col1.x*s.x+q.col2.x*s.y);m-=d.position.y+(q.col1.y*s.x+q.col2.y*s.y);q=j*d.R.col1.x+m*d.R.col1.y;for(var m=j*d.R.col2.x+m*d.R.col2.y,j=0,u=-Number.MAX_VALUE,C=0;C<g;++C)s=f[C],s=s.x*q+s.y*m,s>u&&(u=s,j=C);f=y.EdgeSeparation(c,d,j,l,e);s=parseInt(0<=j-1?j-1:g-1);q=y.EdgeSeparation(c,d,s,l,e);
var m=parseInt(j+1<g?j+1:0),u=y.EdgeSeparation(c,d,m,l,e),K=0,x=0;if(q>f&&q>u)x=-1,C=s,K=q;else if(u>f)x=1,C=m,K=u;else return b[0]=j,f;for(;;)if(j=-1==x?0<=C-1?C-1:g-1:C+1<g?C+1:0,f=y.EdgeSeparation(c,d,j,l,e),f>K)C=j,K=f;else break;b[0]=C;return K};y.FindIncidentEdge=function(b,c,d,l,e,g){void 0===l&&(l=0);parseInt(c.m_vertexCount);var f=c.m_normals,s=parseInt(e.m_vertexCount);c=e.m_vertices;e=e.m_normals;var q;q=d.R;d=f[l];var f=q.col1.x*d.x+q.col2.x*d.y,j=q.col1.y*d.x+q.col2.y*d.y;q=g.R;d=q.col1.x*
f+q.col1.y*j;j=q.col2.x*f+q.col2.y*j;f=d;q=0;for(var m=Number.MAX_VALUE,u=0;u<s;++u)d=e[u],d=f*d.x+j*d.y,d<m&&(m=d,q=u);e=parseInt(q);f=parseInt(e+1<s?e+1:0);s=b[0];d=c[e];q=g.R;s.v.x=g.position.x+(q.col1.x*d.x+q.col2.x*d.y);s.v.y=g.position.y+(q.col1.y*d.x+q.col2.y*d.y);s.id.features.referenceEdge=l;s.id.features.incidentEdge=e;s.id.features.incidentVertex=0;s=b[1];d=c[f];q=g.R;s.v.x=g.position.x+(q.col1.x*d.x+q.col2.x*d.y);s.v.y=g.position.y+(q.col1.y*d.x+q.col2.y*d.y);s.id.features.referenceEdge=
l;s.id.features.incidentEdge=f;s.id.features.incidentVertex=1};y.MakeClipPointVector=function(){var b=new Vector(2);b[0]=new l;b[1]=new l;return b};y.CollidePolygons=function(b,c,d,l,g){var f;b.m_pointCount=0;var s=c.m_radius+l.m_radius;y.s_edgeAO[0]=0;var q=y.FindMaxSeparation(y.s_edgeAO,c,d,l,g);f=y.s_edgeAO[0];if(!(q>s)){var j;y.s_edgeBO[0]=0;var m=y.FindMaxSeparation(y.s_edgeBO,l,g,c,d);j=y.s_edgeBO[0];if(!(m>s)){var u=0,C=0;m>0.98*q+0.001?(q=l,l=c,c=g,u=j,b.m_type=J.e_faceB,C=1):(q=c,c=d,d=g,
u=f,b.m_type=J.e_faceA,C=0);f=y.s_incidentEdge;y.FindIncidentEdge(f,q,c,u,l,d);j=parseInt(q.m_vertexCount);g=q.m_vertices;var q=g[u],K;K=u+1<j?g[parseInt(u+1)]:g[0];u=y.s_localTangent;u.Set(K.x-q.x,K.y-q.y);u.Normalize();g=y.s_localNormal;g.x=u.y;g.y=-u.x;l=y.s_planePoint;l.Set(0.5*(q.x+K.x),0.5*(q.y+K.y));m=y.s_tangent;j=c.R;m.x=j.col1.x*u.x+j.col2.x*u.y;m.y=j.col1.y*u.x+j.col2.y*u.y;var x=y.s_tangent2;x.x=-m.x;x.y=-m.y;u=y.s_normal;u.x=m.y;u.y=-m.x;var F=y.s_v11,H=y.s_v12;F.x=c.position.x+(j.col1.x*
q.x+j.col2.x*q.y);F.y=c.position.y+(j.col1.y*q.x+j.col2.y*q.y);H.x=c.position.x+(j.col1.x*K.x+j.col2.x*K.y);H.y=c.position.y+(j.col1.y*K.x+j.col2.y*K.y);c=u.x*F.x+u.y*F.y;j=m.x*H.x+m.y*H.y+s;K=y.s_clipPoints1;q=y.s_clipPoints2;H=y.ClipSegmentToLine(K,f,x,-m.x*F.x-m.y*F.y+s);if(!(2>H)&&(H=y.ClipSegmentToLine(q,K,m,j),!(2>H))){b.m_localPlaneNormal.SetV(g);b.m_localPoint.SetV(l);for(l=g=0;l<e.b2_maxManifoldPoints;++l)f=q[l],u.x*f.v.x+u.y*f.v.y-c<=s&&(m=b.m_points[g],j=d.R,x=f.v.x-d.position.x,F=f.v.y-
d.position.y,m.m_localPoint.x=x*j.col1.x+F*j.col1.y,m.m_localPoint.y=x*j.col2.x+F*j.col2.y,m.m_id.Set(f.id),m.m_id.features.flip=C,++g);b.m_pointCount=g}}}};y.CollideCircles=function(b,c,d,l,e){b.m_pointCount=0;var g,f;g=d.R;f=c.m_p;var q=d.position.x+(g.col1.x*f.x+g.col2.x*f.y);d=d.position.y+(g.col1.y*f.x+g.col2.y*f.y);g=e.R;f=l.m_p;q=e.position.x+(g.col1.x*f.x+g.col2.x*f.y)-q;e=e.position.y+(g.col1.y*f.x+g.col2.y*f.y)-d;g=c.m_radius+l.m_radius;q*q+e*e>g*g||(b.m_type=J.e_circles,b.m_localPoint.SetV(c.m_p),
b.m_localPlaneNormal.SetZero(),b.m_pointCount=1,b.m_points[0].m_localPoint.SetV(l.m_p),b.m_points[0].m_id.key=0)};y.CollidePolygonAndCircle=function(b,c,d,l,e){var g=b.m_pointCount=0,f=0,q,s;s=e.R;q=l.m_p;var j=e.position.y+(s.col1.y*q.x+s.col2.y*q.y),g=e.position.x+(s.col1.x*q.x+s.col2.x*q.y)-d.position.x,f=j-d.position.y;s=d.R;d=g*s.col1.x+f*s.col1.y;s=g*s.col2.x+f*s.col2.y;var m=0,j=-Number.MAX_VALUE;e=c.m_radius+l.m_radius;var u=parseInt(c.m_vertexCount),C=c.m_vertices;c=c.m_normals;for(var K=
0;K<u;++K){q=C[K];g=d-q.x;f=s-q.y;q=c[K];g=q.x*g+q.y*f;if(g>e)return;g>j&&(j=g,m=K)}g=parseInt(m);f=parseInt(g+1<u?g+1:0);q=C[g];C=C[f];if(j<Number.MIN_VALUE)b.m_pointCount=1,b.m_type=J.e_faceA,b.m_localPlaneNormal.SetV(c[m]),b.m_localPoint.x=0.5*(q.x+C.x),b.m_localPoint.y=0.5*(q.y+C.y);else if(j=(d-C.x)*(q.x-C.x)+(s-C.y)*(q.y-C.y),0>=(d-q.x)*(C.x-q.x)+(s-q.y)*(C.y-q.y)){if((d-q.x)*(d-q.x)+(s-q.y)*(s-q.y)>e*e)return;b.m_pointCount=1;b.m_type=J.e_faceA;b.m_localPlaneNormal.x=d-q.x;b.m_localPlaneNormal.y=
s-q.y;b.m_localPlaneNormal.Normalize();b.m_localPoint.SetV(q)}else if(0>=j){if((d-C.x)*(d-C.x)+(s-C.y)*(s-C.y)>e*e)return;b.m_pointCount=1;b.m_type=J.e_faceA;b.m_localPlaneNormal.x=d-C.x;b.m_localPlaneNormal.y=s-C.y;b.m_localPlaneNormal.Normalize();b.m_localPoint.SetV(C)}else{m=0.5*(q.x+C.x);q=0.5*(q.y+C.y);j=(d-m)*c[g].x+(s-q)*c[g].y;if(j>e)return;b.m_pointCount=1;b.m_type=J.e_faceA;b.m_localPlaneNormal.x=c[g].x;b.m_localPlaneNormal.y=c[g].y;b.m_localPlaneNormal.Normalize();b.m_localPoint.Set(m,
q)}b.m_points[0].m_localPoint.SetV(l.m_p);b.m_points[0].m_id.key=0};y.TestOverlap=function(b,c){var d=c.lowerBound,l=b.upperBound,e=d.x-l.x,g=d.y-l.y,d=b.lowerBound,l=c.upperBound,f=d.y-l.y;return 0<e||0<g||0<d.x-l.x||0<f?!1:!0};Box2D.postDefs.push(function(){Box2D.Collision.b2Collision.s_incidentEdge=y.MakeClipPointVector();Box2D.Collision.b2Collision.s_clipPoints1=y.MakeClipPointVector();Box2D.Collision.b2Collision.s_clipPoints2=y.MakeClipPointVector();Box2D.Collision.b2Collision.s_edgeAO=new Vector_a2j_Number(1);
Box2D.Collision.b2Collision.s_edgeBO=new Vector_a2j_Number(1);Box2D.Collision.b2Collision.s_localTangent=new m;Box2D.Collision.b2Collision.s_localNormal=new m;Box2D.Collision.b2Collision.s_planePoint=new m;Box2D.Collision.b2Collision.s_normal=new m;Box2D.Collision.b2Collision.s_tangent=new m;Box2D.Collision.b2Collision.s_tangent2=new m;Box2D.Collision.b2Collision.s_v11=new m;Box2D.Collision.b2Collision.s_v12=new m;Box2D.Collision.b2Collision.b2CollidePolyTempVec=new m;Box2D.Collision.b2Collision.b2_nullFeature=
255});A.b2ContactID=function(){this.features=new q};A.prototype.b2ContactID=function(){this.features._m_id=this};A.prototype.Set=function(b){this.key=b._key};A.prototype.Copy=function(){var b=new A;b.key=this.key;return b};Object.defineProperty(A.prototype,"key",{enumerable:!1,configurable:!0,get:function(){return this._key}});Object.defineProperty(A.prototype,"key",{enumerable:!1,configurable:!0,set:function(b){void 0===b&&(b=0);this._key=b;this.features._referenceEdge=this._key&255;this.features._incidentEdge=
(this._key&65280)>>8&255;this.features._incidentVertex=(this._key&16711680)>>16&255;this.features._flip=(this._key&4278190080)>>24&255}});B.b2ContactPoint=function(){this.position=new m;this.velocity=new m;this.normal=new m;this.id=new A};I.b2Distance=function(){};I.Distance=function(b,c,d){++I.b2_gjkCalls;var l=d.proxyA,g=d.proxyB,q=d.transformA,s=d.transformB,j=I.s_simplex;j.ReadCache(c,l,q,g,s);var u=j.m_vertices,C=I.s_saveA,K=I.s_saveB,x=0;j.GetClosestPoint().LengthSquared();for(var F=0,H,R=0;20>
R;){x=j.m_count;for(F=0;F<x;F++)C[F]=u[F].indexA,K[F]=u[F].indexB;switch(j.m_count){case 1:break;case 2:j.Solve2();break;case 3:j.Solve3();break;default:e.b2Assert(!1)}if(3==j.m_count)break;H=j.GetClosestPoint();H.LengthSquared();F=j.GetSearchDirection();if(F.LengthSquared()<Number.MIN_VALUE*Number.MIN_VALUE)break;H=u[j.m_count];H.indexA=l.GetSupport(f.MulTMV(q.R,F.GetNegative()));H.wA=f.MulX(q,l.GetVertex(H.indexA));H.indexB=g.GetSupport(f.MulTMV(s.R,F));H.wB=f.MulX(s,g.GetVertex(H.indexB));H.w=
f.SubtractVV(H.wB,H.wA);++R;++I.b2_gjkIters;for(var n=!1,F=0;F<x;F++)if(H.indexA==C[F]&&H.indexB==K[F]){n=!0;break}if(n)break;++j.m_count}I.b2_gjkMaxIters=f.Max(I.b2_gjkMaxIters,R);j.GetWitnessPoints(b.pointA,b.pointB);b.distance=f.SubtractVV(b.pointA,b.pointB).Length();b.iterations=R;j.WriteCache(c);d.useRadii&&(c=l.m_radius,g=g.m_radius,b.distance>c+g&&b.distance>Number.MIN_VALUE?(b.distance-=c+g,d=f.SubtractVV(b.pointB,b.pointA),d.Normalize(),b.pointA.x+=c*d.x,b.pointA.y+=c*d.y,b.pointB.x-=g*d.x,
b.pointB.y-=g*d.y):(H=new m,H.x=0.5*(b.pointA.x+b.pointB.x),H.y=0.5*(b.pointA.y+b.pointB.y),b.pointA.x=b.pointB.x=H.x,b.pointA.y=b.pointB.y=H.y,b.distance=0))};Box2D.postDefs.push(function(){Box2D.Collision.b2Distance.s_simplex=new u;Box2D.Collision.b2Distance.s_saveA=new Vector_a2j_Number(3);Box2D.Collision.b2Distance.s_saveB=new Vector_a2j_Number(3)});D.b2DistanceInput=function(){};x.b2DistanceOutput=function(){this.pointA=new m;this.pointB=new m};G.b2DistanceProxy=function(){};G.prototype.Set=
function(l){switch(l.GetType()){case d.e_circleShape:l=l instanceof b?l:null;this.m_vertices=new Vector(1,!0);this.m_vertices[0]=l.m_p;this.m_count=1;this.m_radius=l.m_radius;break;case d.e_polygonShape:l=l instanceof c?l:null;this.m_vertices=l.m_vertices;this.m_count=l.m_vertexCount;this.m_radius=l.m_radius;break;default:e.b2Assert(!1)}};G.prototype.GetSupport=function(b){for(var c=0,d=this.m_vertices[0].x*b.x+this.m_vertices[0].y*b.y,l=1;l<this.m_count;++l){var e=this.m_vertices[l].x*b.x+this.m_vertices[l].y*
b.y;e>d&&(c=l,d=e)}return c};G.prototype.GetSupportVertex=function(b){for(var c=0,d=this.m_vertices[0].x*b.x+this.m_vertices[0].y*b.y,l=1;l<this.m_count;++l){var e=this.m_vertices[l].x*b.x+this.m_vertices[l].y*b.y;e>d&&(c=l,d=e)}return this.m_vertices[c]};G.prototype.GetVertexCount=function(){return this.m_count};G.prototype.GetVertex=function(b){void 0===b&&(b=0);e.b2Assert(0<=b&&b<this.m_count);return this.m_vertices[b]};E.b2DynamicTree=function(){};E.prototype.b2DynamicTree=function(){this.m_freeList=
this.m_root=null;this.m_insertionCount=this.m_path=0};E.prototype.CreateProxy=function(b,c){var d=this.AllocateNode(),l=e.b2_aabbExtension,g=e.b2_aabbExtension;d.aabb.lowerBound.x=b.lowerBound.x-l;d.aabb.lowerBound.y=b.lowerBound.y-g;d.aabb.upperBound.x=b.upperBound.x+l;d.aabb.upperBound.y=b.upperBound.y+g;d.userData=c;this.InsertLeaf(d);return d};E.prototype.DestroyProxy=function(b){this.RemoveLeaf(b);this.FreeNode(b)};E.prototype.MoveProxy=function(b,c,d){e.b2Assert(b.IsLeaf());if(b.aabb.Contains(c))return!1;
this.RemoveLeaf(b);var l=e.b2_aabbExtension+e.b2_aabbMultiplier*(0<d.x?d.x:-d.x);d=e.b2_aabbExtension+e.b2_aabbMultiplier*(0<d.y?d.y:-d.y);b.aabb.lowerBound.x=c.lowerBound.x-l;b.aabb.lowerBound.y=c.lowerBound.y-d;b.aabb.upperBound.x=c.upperBound.x+l;b.aabb.upperBound.y=c.upperBound.y+d;this.InsertLeaf(b);return!0};E.prototype.Rebalance=function(b){void 0===b&&(b=0);if(null!=this.m_root)for(var c=0;c<b;c++){for(var d=this.m_root,l=0;!1==d.IsLeaf();)d=this.m_path>>l&1?d.child2:d.child1,l=l+1&31;++this.m_path;
this.RemoveLeaf(d);this.InsertLeaf(d)}};E.prototype.GetFatAABB=function(b){return b.aabb};E.prototype.GetUserData=function(b){return b.userData};E.prototype.Query=function(b,c){if(null!=this.m_root){var d=new Vector,l=0;for(d[l++]=this.m_root;0<l;){var e=d[--l];if(e.aabb.TestOverlap(c))if(e.IsLeaf()){if(!b(e))break}else d[l++]=e.child1,d[l++]=e.child2}}};E.prototype.RayCast=function(b,c){if(null!=this.m_root){var d=c.p1,l=c.p2,e=f.SubtractVV(d,l);e.Normalize();var e=f.CrossFV(1,e),q=f.AbsV(e),s=c.maxFraction,
j=new g,m=0,u=0,m=d.x+s*(l.x-d.x),u=d.y+s*(l.y-d.y);j.lowerBound.x=Math.min(d.x,m);j.lowerBound.y=Math.min(d.y,u);j.upperBound.x=Math.max(d.x,m);j.upperBound.y=Math.max(d.y,u);var C=new Vector,K=0;for(C[K++]=this.m_root;0<K;)if(s=C[--K],!1!=s.aabb.TestOverlap(j)&&(m=s.aabb.GetCenter(),u=s.aabb.GetExtents(),!(0<Math.abs(e.x*(d.x-m.x)+e.y*(d.y-m.y))-q.x*u.x-q.y*u.y)))if(s.IsLeaf()){m=new P;m.p1=c.p1;m.p2=c.p2;m.maxFraction=c.maxFraction;s=b(m,s);if(0==s)break;0<s&&(m=d.x+s*(l.x-d.x),u=d.y+s*(l.y-d.y),
j.lowerBound.x=Math.min(d.x,m),j.lowerBound.y=Math.min(d.y,u),j.upperBound.x=Math.max(d.x,m),j.upperBound.y=Math.max(d.y,u))}else C[K++]=s.child1,C[K++]=s.child2}};E.prototype.AllocateNode=function(){if(this.m_freeList){var b=this.m_freeList;this.m_freeList=b.parent;b.parent=null;b.child1=null;b.child2=null;return b}return new M};E.prototype.FreeNode=function(b){b.parent=this.m_freeList;this.m_freeList=b};E.prototype.InsertLeaf=function(b){++this.m_insertionCount;if(null==this.m_root)this.m_root=
b,this.m_root.parent=null;else{var c=b.aabb.GetCenter(),d=this.m_root;if(!1==d.IsLeaf()){do var l=d.child1,d=d.child2,d=Math.abs((l.aabb.lowerBound.x+l.aabb.upperBound.x)/2-c.x)+Math.abs((l.aabb.lowerBound.y+l.aabb.upperBound.y)/2-c.y)<Math.abs((d.aabb.lowerBound.x+d.aabb.upperBound.x)/2-c.x)+Math.abs((d.aabb.lowerBound.y+d.aabb.upperBound.y)/2-c.y)?l:d;while(!1==d.IsLeaf())}c=d.parent;l=this.AllocateNode();l.parent=c;l.userData=null;l.aabb.Combine(b.aabb,d.aabb);if(c){d.parent.child1==d?c.child1=
l:c.child2=l;l.child1=d;l.child2=b;d.parent=l;b.parent=l;do{if(c.aabb.Contains(l.aabb))break;c.aabb.Combine(c.child1.aabb,c.child2.aabb);l=c;c=c.parent}while(c)}else l.child1=d,l.child2=b,d.parent=l,this.m_root=b.parent=l}};E.prototype.RemoveLeaf=function(b){if(b==this.m_root)this.m_root=null;else{var c=b.parent,d=c.parent;b=c.child1==b?c.child2:c.child1;if(d){d.child1==c?d.child1=b:d.child2=b;b.parent=d;for(this.FreeNode(c);d;){c=d.aabb;d.aabb=g.Combine(d.child1.aabb,d.child2.aabb);if(c.Contains(d.aabb))break;
d=d.parent}}else this.m_root=b,b.parent=null,this.FreeNode(c)}};L.b2DynamicTreeBroadPhase=function(){this.m_tree=new E;this.m_moveBuffer=new Vector;this.m_pairBuffer=new Vector;this.m_pairCount=0};L.prototype.CreateProxy=function(b,c){var d=this.m_tree.CreateProxy(b,c);++this.m_proxyCount;this.BufferMove(d);return d};L.prototype.DestroyProxy=function(b){this.UnBufferMove(b);--this.m_proxyCount;this.m_tree.DestroyProxy(b)};L.prototype.MoveProxy=function(b,c,d){this.m_tree.MoveProxy(b,c,d)&&this.BufferMove(b)};
L.prototype.TestOverlap=function(b,c){var d=this.m_tree.GetFatAABB(b),l=this.m_tree.GetFatAABB(c);return d.TestOverlap(l)};L.prototype.GetUserData=function(b){return this.m_tree.GetUserData(b)};L.prototype.GetFatAABB=function(b){return this.m_tree.GetFatAABB(b)};L.prototype.GetProxyCount=function(){return this.m_proxyCount};L.prototype.UpdatePairs=function(b){for(var c=this,d=c.m_pairCount=0,l,d=0;d<c.m_moveBuffer.length;++d){l=c.m_moveBuffer[d];var e=c.m_tree.GetFatAABB(l);c.m_tree.Query(function(b){if(b==
l)return!0;c.m_pairCount==c.m_pairBuffer.length&&(c.m_pairBuffer[c.m_pairCount]=new Q);var d=c.m_pairBuffer[c.m_pairCount];d.proxyA=b<l?b:l;d.proxyB=b>=l?b:l;++c.m_pairCount;return!0},e)}for(d=c.m_moveBuffer.length=0;d<c.m_pairCount;){var e=c.m_pairBuffer[d],g=c.m_tree.GetUserData(e.proxyA),f=c.m_tree.GetUserData(e.proxyB);b(g,f);for(++d;d<c.m_pairCount;){g=c.m_pairBuffer[d];if(g.proxyA!=e.proxyA||g.proxyB!=e.proxyB)break;++d}}};L.prototype.Query=function(b,c){this.m_tree.Query(b,c)};L.prototype.RayCast=
function(b,c){this.m_tree.RayCast(b,c)};L.prototype.Validate=function(){};L.prototype.Rebalance=function(b){void 0===b&&(b=0);this.m_tree.Rebalance(b)};L.prototype.BufferMove=function(b){this.m_moveBuffer[this.m_moveBuffer.length]=b};L.prototype.UnBufferMove=function(b){this.m_moveBuffer.splice(parseInt(this.m_moveBuffer.indexOf(b)),1)};L.prototype.ComparePairs=function(){return 0};L.__implements={};L.__implements[K]=!0;M.b2DynamicTreeNode=function(){this.aabb=new g};M.prototype.IsLeaf=function(){return null==
this.child1};Q.b2DynamicTreePair=function(){};J.b2Manifold=function(){this.m_pointCount=0};J.prototype.b2Manifold=function(){this.m_points=new Vector(e.b2_maxManifoldPoints);for(var b=0;b<e.b2_maxManifoldPoints;b++)this.m_points[b]=new fa;this.m_localPlaneNormal=new m;this.m_localPoint=new m};J.prototype.Reset=function(){for(var b=0;b<e.b2_maxManifoldPoints;b++)(this.m_points[b]instanceof fa?this.m_points[b]:null).Reset();this.m_localPlaneNormal.SetZero();this.m_localPoint.SetZero();this.m_pointCount=
this.m_type=0};J.prototype.Set=function(b){this.m_pointCount=b.m_pointCount;for(var c=0;c<e.b2_maxManifoldPoints;c++)(this.m_points[c]instanceof fa?this.m_points[c]:null).Set(b.m_points[c]);this.m_localPlaneNormal.SetV(b.m_localPlaneNormal);this.m_localPoint.SetV(b.m_localPoint);this.m_type=b.m_type};J.prototype.Copy=function(){var b=new J;b.Set(this);return b};Box2D.postDefs.push(function(){Box2D.Collision.b2Manifold.e_circles=1;Box2D.Collision.b2Manifold.e_faceA=2;Box2D.Collision.b2Manifold.e_faceB=
4});fa.b2ManifoldPoint=function(){this.m_localPoint=new m;this.m_id=new A};fa.prototype.b2ManifoldPoint=function(){this.Reset()};fa.prototype.Reset=function(){this.m_localPoint.SetZero();this.m_tangentImpulse=this.m_normalImpulse=0;this.m_id.key=0};fa.prototype.Set=function(b){this.m_localPoint.SetV(b.m_localPoint);this.m_normalImpulse=b.m_normalImpulse;this.m_tangentImpulse=b.m_tangentImpulse;this.m_id.Set(b.m_id)};O.b2Point=function(){this.p=new m};O.prototype.Support=function(){return this.p};
O.prototype.GetFirstVertex=function(){return this.p};P.b2RayCastInput=function(){this.p1=new m;this.p2=new m};P.prototype.b2RayCastInput=function(b,c,d){void 0===b&&(b=null);void 0===c&&(c=null);void 0===d&&(d=1);b&&this.p1.SetV(b);c&&this.p2.SetV(c);this.maxFraction=d};ba.b2RayCastOutput=function(){this.normal=new m};U.b2Segment=function(){this.p1=new m;this.p2=new m};U.prototype.TestSegment=function(b,c,d,l){void 0===l&&(l=0);var e=d.p1,g=d.p2.x-e.x,f=d.p2.y-e.y;d=this.p2.y-this.p1.y;var q=-(this.p2.x-
this.p1.x),s=100*Number.MIN_VALUE,j=-(g*d+f*q);if(j>s){var m=e.x-this.p1.x,u=e.y-this.p1.y,e=m*d+u*q;if(0<=e&&e<=l*j&&(l=-g*u+f*m,-s*j<=l&&l<=j*(1+s)))return e/=j,l=Math.sqrt(d*d+q*q),b[0]=e,c.Set(d/l,q/l),!0}return!1};U.prototype.Extend=function(b){this.ExtendForward(b);this.ExtendBackward(b)};U.prototype.ExtendForward=function(b){var c=this.p2.x-this.p1.x,d=this.p2.y-this.p1.y;b=Math.min(0<c?(b.upperBound.x-this.p1.x)/c:0>c?(b.lowerBound.x-this.p1.x)/c:Number.POSITIVE_INFINITY,0<d?(b.upperBound.y-
this.p1.y)/d:0>d?(b.lowerBound.y-this.p1.y)/d:Number.POSITIVE_INFINITY);this.p2.x=this.p1.x+c*b;this.p2.y=this.p1.y+d*b};U.prototype.ExtendBackward=function(b){var c=-this.p2.x+this.p1.x,d=-this.p2.y+this.p1.y;b=Math.min(0<c?(b.upperBound.x-this.p2.x)/c:0>c?(b.lowerBound.x-this.p2.x)/c:Number.POSITIVE_INFINITY,0<d?(b.upperBound.y-this.p2.y)/d:0>d?(b.lowerBound.y-this.p2.y)/d:Number.POSITIVE_INFINITY);this.p1.x=this.p2.x+c*b;this.p1.y=this.p2.y+d*b};s.b2SeparationFunction=function(){this.m_localPoint=
new m;this.m_axis=new m};s.prototype.Initialize=function(b,c,d,l,g){this.m_proxyA=c;this.m_proxyB=l;var q=parseInt(b.count);e.b2Assert(0<q&&3>q);var j,u,C,K,F=0,x=0;1==q?(this.m_type=s.e_points,j=this.m_proxyA.GetVertex(b.indexA[0]),u=this.m_proxyB.GetVertex(b.indexB[0]),q=j,b=d.R,c=d.position.x+(b.col1.x*q.x+b.col2.x*q.y),l=d.position.y+(b.col1.y*q.x+b.col2.y*q.y),q=u,b=g.R,C=g.position.x+(b.col1.x*q.x+b.col2.x*q.y),K=g.position.y+(b.col1.y*q.x+b.col2.y*q.y),this.m_axis.x=C-c,this.m_axis.y=K-l,this.m_axis.Normalize()):
(b.indexB[0]==b.indexB[1]?(this.m_type=s.e_faceA,c=this.m_proxyA.GetVertex(b.indexA[0]),l=this.m_proxyA.GetVertex(b.indexA[1]),u=this.m_proxyB.GetVertex(b.indexB[0]),this.m_localPoint.x=0.5*(c.x+l.x),this.m_localPoint.y=0.5*(c.y+l.y),this.m_axis=f.CrossVF(f.SubtractVV(l,c),1),this.m_axis.Normalize(),q=this.m_axis,b=d.R,F=b.col1.x*q.x+b.col2.x*q.y,x=b.col1.y*q.x+b.col2.y*q.y,q=this.m_localPoint,b=d.R,c=d.position.x+(b.col1.x*q.x+b.col2.x*q.y),l=d.position.y+(b.col1.y*q.x+b.col2.y*q.y),q=u,b=g.R,C=
g.position.x+(b.col1.x*q.x+b.col2.x*q.y),K=g.position.y+(b.col1.y*q.x+b.col2.y*q.y),F=(C-c)*F+(K-l)*x):b.indexA[0]==b.indexA[0]?(this.m_type=s.e_faceB,C=this.m_proxyB.GetVertex(b.indexB[0]),K=this.m_proxyB.GetVertex(b.indexB[1]),j=this.m_proxyA.GetVertex(b.indexA[0]),this.m_localPoint.x=0.5*(C.x+K.x),this.m_localPoint.y=0.5*(C.y+K.y),this.m_axis=f.CrossVF(f.SubtractVV(K,C),1),this.m_axis.Normalize(),q=this.m_axis,b=g.R,F=b.col1.x*q.x+b.col2.x*q.y,x=b.col1.y*q.x+b.col2.y*q.y,q=this.m_localPoint,b=
g.R,C=g.position.x+(b.col1.x*q.x+b.col2.x*q.y),K=g.position.y+(b.col1.y*q.x+b.col2.y*q.y),q=j,b=d.R,c=d.position.x+(b.col1.x*q.x+b.col2.x*q.y),l=d.position.y+(b.col1.y*q.x+b.col2.y*q.y),F=(c-C)*F+(l-K)*x):(c=this.m_proxyA.GetVertex(b.indexA[0]),l=this.m_proxyA.GetVertex(b.indexA[1]),C=this.m_proxyB.GetVertex(b.indexB[0]),K=this.m_proxyB.GetVertex(b.indexB[1]),f.MulX(d,j),j=f.MulMV(d.R,f.SubtractVV(l,c)),f.MulX(g,u),F=f.MulMV(g.R,f.SubtractVV(K,C)),g=j.x*j.x+j.y*j.y,u=F.x*F.x+F.y*F.y,b=f.SubtractVV(F,
j),d=j.x*b.x+j.y*b.y,b=F.x*b.x+F.y*b.y,j=j.x*F.x+j.y*F.y,x=g*u-j*j,F=0,0!=x&&(F=f.Clamp((j*b-d*u)/x,0,1)),0>(j*F+b)/u&&(F=f.Clamp((j-d)/g,0,1)),j=new m,j.x=c.x+F*(l.x-c.x),j.y=c.y+F*(l.y-c.y),u=new m,u.x=C.x+F*(K.x-C.x),u.y=C.y+F*(K.y-C.y),0==F||1==F?(this.m_type=s.e_faceB,this.m_axis=f.CrossVF(f.SubtractVV(K,C),1),this.m_axis.Normalize(),this.m_localPoint=u):(this.m_type=s.e_faceA,this.m_axis=f.CrossVF(f.SubtractVV(l,c),1),this.m_localPoint=j)),0>F&&this.m_axis.NegativeSelf())};s.prototype.Evaluate=
function(b,c){var d,l,g=0;switch(this.m_type){case s.e_points:return d=f.MulTMV(b.R,this.m_axis),l=f.MulTMV(c.R,this.m_axis.GetNegative()),d=this.m_proxyA.GetSupportVertex(d),l=this.m_proxyB.GetSupportVertex(l),d=f.MulX(b,d),l=f.MulX(c,l),(l.x-d.x)*this.m_axis.x+(l.y-d.y)*this.m_axis.y;case s.e_faceA:return g=f.MulMV(b.R,this.m_axis),d=f.MulX(b,this.m_localPoint),l=f.MulTMV(c.R,g.GetNegative()),l=this.m_proxyB.GetSupportVertex(l),l=f.MulX(c,l),(l.x-d.x)*g.x+(l.y-d.y)*g.y;case s.e_faceB:return g=f.MulMV(c.R,
this.m_axis),l=f.MulX(c,this.m_localPoint),d=f.MulTMV(b.R,g.GetNegative()),d=this.m_proxyA.GetSupportVertex(d),d=f.MulX(b,d),(d.x-l.x)*g.x+(d.y-l.y)*g.y;default:return e.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});u.b2Simplex=function(){this.m_v1=new C;this.m_v2=new C;this.m_v3=new C;this.m_vertices=new Vector(3)};u.prototype.b2Simplex=function(){this.m_vertices[0]=
this.m_v1;this.m_vertices[1]=this.m_v2;this.m_vertices[2]=this.m_v3};u.prototype.ReadCache=function(b,c,d,l,g){e.b2Assert(0<=b.count&&3>=b.count);var q,j;this.m_count=b.count;for(var s=this.m_vertices,m=0;m<this.m_count;m++){var u=s[m];u.indexA=b.indexA[m];u.indexB=b.indexB[m];q=c.GetVertex(u.indexA);j=l.GetVertex(u.indexB);u.wA=f.MulX(d,q);u.wB=f.MulX(g,j);u.w=f.SubtractVV(u.wB,u.wA);u.a=0}if(1<this.m_count&&(b=b.metric,q=this.GetMetric(),q<0.5*b||2*b<q||q<Number.MIN_VALUE))this.m_count=0;0==this.m_count&&
(u=s[0],u.indexA=0,u.indexB=0,q=c.GetVertex(0),j=l.GetVertex(0),u.wA=f.MulX(d,q),u.wB=f.MulX(g,j),u.w=f.SubtractVV(u.wB,u.wA),this.m_count=1)};u.prototype.WriteCache=function(b){b.metric=this.GetMetric();b.count=Box2D.parseUInt(this.m_count);for(var c=this.m_vertices,d=0;d<this.m_count;d++)b.indexA[d]=Box2D.parseUInt(c[d].indexA),b.indexB[d]=Box2D.parseUInt(c[d].indexB)};u.prototype.GetSearchDirection=function(){switch(this.m_count){case 1:return this.m_v1.w.GetNegative();case 2:var b=f.SubtractVV(this.m_v2.w,
this.m_v1.w);return 0<f.CrossVV(b,this.m_v1.w.GetNegative())?f.CrossFV(1,b):f.CrossVF(b,1);default:return e.b2Assert(!1),new m}};u.prototype.GetClosestPoint=function(){switch(this.m_count){case 0:return e.b2Assert(!1),new m;case 1:return this.m_v1.w;case 2:return new m(this.m_v1.a*this.m_v1.w.x+this.m_v2.a*this.m_v2.w.x,this.m_v1.a*this.m_v1.w.y+this.m_v2.a*this.m_v2.w.y);default:return e.b2Assert(!1),new m}};u.prototype.GetWitnessPoints=function(b,c){switch(this.m_count){case 0:e.b2Assert(!1);break;
case 1:b.SetV(this.m_v1.wA);c.SetV(this.m_v1.wB);break;case 2:b.x=this.m_v1.a*this.m_v1.wA.x+this.m_v2.a*this.m_v2.wA.x;b.y=this.m_v1.a*this.m_v1.wA.y+this.m_v2.a*this.m_v2.wA.y;c.x=this.m_v1.a*this.m_v1.wB.x+this.m_v2.a*this.m_v2.wB.x;c.y=this.m_v1.a*this.m_v1.wB.y+this.m_v2.a*this.m_v2.wB.y;break;case 3:c.x=b.x=this.m_v1.a*this.m_v1.wA.x+this.m_v2.a*this.m_v2.wA.x+this.m_v3.a*this.m_v3.wA.x;c.y=b.y=this.m_v1.a*this.m_v1.wA.y+this.m_v2.a*this.m_v2.wA.y+this.m_v3.a*this.m_v3.wA.y;break;default:e.b2Assert(!1)}};
u.prototype.GetMetric=function(){switch(this.m_count){case 0:return e.b2Assert(!1),0;case 1:return 0;case 2:return f.SubtractVV(this.m_v1.w,this.m_v2.w).Length();case 3:return f.CrossVV(f.SubtractVV(this.m_v2.w,this.m_v1.w),f.SubtractVV(this.m_v3.w,this.m_v1.w));default:return e.b2Assert(!1),0}};u.prototype.Solve2=function(){var b=this.m_v1.w,c=this.m_v2.w,d=f.SubtractVV(c,b),b=-(b.x*d.x+b.y*d.y);0>=b?this.m_count=this.m_v1.a=1:(c=c.x*d.x+c.y*d.y,0>=c?(this.m_count=this.m_v2.a=1,this.m_v1.Set(this.m_v2)):
(d=1/(c+b),this.m_v1.a=c*d,this.m_v2.a=b*d,this.m_count=2))};u.prototype.Solve3=function(){var b=this.m_v1.w,c=this.m_v2.w,d=this.m_v3.w,l=f.SubtractVV(c,b),e=f.Dot(b,l),g=f.Dot(c,l),e=-e,q=f.SubtractVV(d,b),j=f.Dot(b,q),s=f.Dot(d,q),j=-j,m=f.SubtractVV(d,c),u=f.Dot(c,m),m=f.Dot(d,m),u=-u,q=f.CrossVV(l,q),l=q*f.CrossVV(c,d),d=q*f.CrossVV(d,b),b=q*f.CrossVV(b,c);0>=e&&0>=j?this.m_count=this.m_v1.a=1:0<g&&0<e&&0>=b?(s=1/(g+e),this.m_v1.a=g*s,this.m_v2.a=e*s,this.m_count=2):0<s&&0<j&&0>=d?(g=1/(s+j),
this.m_v1.a=s*g,this.m_v3.a=j*g,this.m_count=2,this.m_v2.Set(this.m_v3)):0>=g&&0>=u?(this.m_count=this.m_v2.a=1,this.m_v1.Set(this.m_v2)):0>=s&&0>=m?(this.m_count=this.m_v3.a=1,this.m_v1.Set(this.m_v3)):0<m&&0<u&&0>=l?(g=1/(m+u),this.m_v2.a=m*g,this.m_v3.a=u*g,this.m_count=2,this.m_v1.Set(this.m_v3)):(g=1/(l+d+b),this.m_v1.a=l*g,this.m_v2.a=d*g,this.m_v3.a=b*g,this.m_count=3)};F.b2SimplexCache=function(){this.indexA=new Vector_a2j_Number(3);this.indexB=new Vector_a2j_Number(3)};C.b2SimplexVertex=
function(){};C.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};H.b2TimeOfImpact=function(){};H.TimeOfImpact=function(b){++H.b2_toiCalls;var c=b.proxyA,d=b.proxyB,l=b.sweepA,g=b.sweepB;e.b2Assert(l.t0==g.t0);e.b2Assert(1-l.t0>Number.MIN_VALUE);var q=c.m_radius+d.m_radius;b=b.tolerance;var j=0,s=0,m=0;H.s_cache.count=0;for(H.s_distanceInput.useRadii=!1;;){l.GetTransform(H.s_xfA,j);g.GetTransform(H.s_xfB,j);H.s_distanceInput.proxyA=
c;H.s_distanceInput.proxyB=d;H.s_distanceInput.transformA=H.s_xfA;H.s_distanceInput.transformB=H.s_xfB;I.Distance(H.s_distanceOutput,H.s_cache,H.s_distanceInput);if(0>=H.s_distanceOutput.distance){j=1;break}H.s_fcn.Initialize(H.s_cache,c,H.s_xfA,d,H.s_xfB);var u=H.s_fcn.Evaluate(H.s_xfA,H.s_xfB);if(0>=u){j=1;break}0==s&&(m=u>q?f.Max(q-b,0.75*q):f.Max(u-b,0.02*q));if(u-m<0.5*b){if(0==s){j=1;break}break}var C=j,K=j,F=1;l.GetTransform(H.s_xfA,F);g.GetTransform(H.s_xfB,F);var x=H.s_fcn.Evaluate(H.s_xfA,
H.s_xfB);if(x>=m){j=1;break}for(var R=0;;){var n=0,n=R&1?K+(m-u)*(F-K)/(x-u):0.5*(K+F);l.GetTransform(H.s_xfA,n);g.GetTransform(H.s_xfB,n);var Z=H.s_fcn.Evaluate(H.s_xfA,H.s_xfB);if(f.Abs(Z-m)<0.025*b){C=n;break}Z>m?(K=n,u=Z):(F=n,x=Z);++R;++H.b2_toiRootIters;if(50==R)break}H.b2_toiMaxRootIters=f.Max(H.b2_toiMaxRootIters,R);if(C<(1+100*Number.MIN_VALUE)*j)break;j=C;s++;++H.b2_toiIters;if(1E3==s)break}H.b2_toiMaxIters=f.Max(H.b2_toiMaxIters,s);return j};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 F;Box2D.Collision.b2TimeOfImpact.s_distanceInput=new D;Box2D.Collision.b2TimeOfImpact.s_xfA=new n;Box2D.Collision.b2TimeOfImpact.s_xfB=new n;Box2D.Collision.b2TimeOfImpact.s_fcn=new s;Box2D.Collision.b2TimeOfImpact.s_distanceOutput=new x});Z.b2TOIInput=function(){this.proxyA=
new G;this.proxyB=new G;this.sweepA=new j;this.sweepB=new j};R.b2WorldManifold=function(){this.m_normal=new m};R.prototype.b2WorldManifold=function(){this.m_points=new Vector(e.b2_maxManifoldPoints);for(var b=0;b<e.b2_maxManifoldPoints;b++)this.m_points[b]=new m};R.prototype.Initialize=function(b,c,d,l,e){void 0===d&&(d=0);void 0===e&&(e=0);if(0!=b.m_pointCount){var g=0,f,q,j=0,s=0,m=0,u=0,C=0;switch(b.m_type){case J.e_circles:q=c.R;f=b.m_localPoint;g=c.position.x+q.col1.x*f.x+q.col2.x*f.y;c=c.position.y+
q.col1.y*f.x+q.col2.y*f.y;q=l.R;f=b.m_points[0].m_localPoint;b=l.position.x+q.col1.x*f.x+q.col2.x*f.y;l=l.position.y+q.col1.y*f.x+q.col2.y*f.y;f=b-g;q=l-c;j=f*f+q*q;j>Number.MIN_VALUE*Number.MIN_VALUE?(j=Math.sqrt(j),this.m_normal.x=f/j,this.m_normal.y=q/j):(this.m_normal.x=1,this.m_normal.y=0);f=c+d*this.m_normal.y;l-=e*this.m_normal.y;this.m_points[0].x=0.5*(g+d*this.m_normal.x+(b-e*this.m_normal.x));this.m_points[0].y=0.5*(f+l);break;case J.e_faceA:q=c.R;f=b.m_localPlaneNormal;j=q.col1.x*f.x+q.col2.x*
f.y;s=q.col1.y*f.x+q.col2.y*f.y;q=c.R;f=b.m_localPoint;m=c.position.x+q.col1.x*f.x+q.col2.x*f.y;u=c.position.y+q.col1.y*f.x+q.col2.y*f.y;this.m_normal.x=j;this.m_normal.y=s;for(g=0;g<b.m_pointCount;g++)q=l.R,f=b.m_points[g].m_localPoint,C=l.position.x+q.col1.x*f.x+q.col2.x*f.y,f=l.position.y+q.col1.y*f.x+q.col2.y*f.y,this.m_points[g].x=C+0.5*(d-(C-m)*j-(f-u)*s-e)*j,this.m_points[g].y=f+0.5*(d-(C-m)*j-(f-u)*s-e)*s;break;case J.e_faceB:q=l.R;f=b.m_localPlaneNormal;j=q.col1.x*f.x+q.col2.x*f.y;s=q.col1.y*
f.x+q.col2.y*f.y;q=l.R;f=b.m_localPoint;m=l.position.x+q.col1.x*f.x+q.col2.x*f.y;u=l.position.y+q.col1.y*f.x+q.col2.y*f.y;this.m_normal.x=-j;this.m_normal.y=-s;for(g=0;g<b.m_pointCount;g++)q=c.R,f=b.m_points[g].m_localPoint,C=c.position.x+q.col1.x*f.x+q.col2.x*f.y,f=c.position.y+q.col1.y*f.x+q.col2.y*f.y,this.m_points[g].x=C+0.5*(e-(C-m)*j-(f-u)*s-d)*j,this.m_points[g].y=f+0.5*(e-(C-m)*j-(f-u)*s-d)*s}}};l.ClipVertex=function(){this.v=new m;this.id=new A};l.prototype.Set=function(b){this.v.SetV(b.v);
this.id.Set(b.id)};q.Features=function(){};Object.defineProperty(q.prototype,"referenceEdge",{enumerable:!1,configurable:!0,get:function(){return this._referenceEdge}});Object.defineProperty(q.prototype,"referenceEdge",{enumerable:!1,configurable:!0,set:function(b){void 0===b&&(b=0);this._referenceEdge=b;this._m_id._key=this._m_id._key&4294967040|this._referenceEdge&255}});Object.defineProperty(q.prototype,"incidentEdge",{enumerable:!1,configurable:!0,get:function(){return this._incidentEdge}});Object.defineProperty(q.prototype,
"incidentEdge",{enumerable:!1,configurable:!0,set:function(b){void 0===b&&(b=0);this._incidentEdge=b;this._m_id._key=this._m_id._key&4294902015|this._incidentEdge<<8&65280}});Object.defineProperty(q.prototype,"incidentVertex",{enumerable:!1,configurable:!0,get:function(){return this._incidentVertex}});Object.defineProperty(q.prototype,"incidentVertex",{enumerable:!1,configurable:!0,set:function(b){void 0===b&&(b=0);this._incidentVertex=b;this._m_id._key=this._m_id._key&4278255615|this._incidentVertex<<
16&16711680}});Object.defineProperty(q.prototype,"flip",{enumerable:!1,configurable:!0,get:function(){return this._flip}});Object.defineProperty(q.prototype,"flip",{enumerable:!1,configurable:!0,set:function(b){void 0===b&&(b=0);this._flip=b;this._m_id._key=this._m_id._key&16777215|this._flip<<24&4278190080}})})();
(function(){var b=Box2D.Common.b2Settings,c=Box2D.Collision.Shapes.b2CircleShape,d=Box2D.Collision.Shapes.b2EdgeChainDef,e=Box2D.Collision.Shapes.b2EdgeShape,f=Box2D.Collision.Shapes.b2MassData,j=Box2D.Collision.Shapes.b2PolygonShape,n=Box2D.Collision.Shapes.b2Shape,m=Box2D.Common.Math.b2Mat22,g=Box2D.Common.Math.b2Math,t=Box2D.Common.Math.b2Transform,z=Box2D.Common.Math.b2Vec2,y=Box2D.Collision.b2Distance,A=Box2D.Collision.b2DistanceInput,B=Box2D.Collision.b2DistanceOutput,I=Box2D.Collision.b2DistanceProxy,
D=Box2D.Collision.b2SimplexCache;Box2D.inherit(c,Box2D.Collision.Shapes.b2Shape);c.prototype.__super=Box2D.Collision.Shapes.b2Shape.prototype;c.b2CircleShape=function(){Box2D.Collision.Shapes.b2Shape.b2Shape.apply(this,arguments);this.m_p=new z};c.prototype.Copy=function(){var b=new c;b.Set(this);return b};c.prototype.Set=function(b){this.__super.Set.call(this,b);Box2D.is(b,c)&&this.m_p.SetV((b instanceof c?b:null).m_p)};c.prototype.TestPoint=function(b,c){var d=b.R,e=b.position.x+(d.col1.x*this.m_p.x+
d.col2.x*this.m_p.y),d=b.position.y+(d.col1.y*this.m_p.x+d.col2.y*this.m_p.y),e=c.x-e,d=c.y-d;return e*e+d*d<=this.m_radius*this.m_radius};c.prototype.RayCast=function(b,c,d){var e=d.R,g=c.p1.x-(d.position.x+(e.col1.x*this.m_p.x+e.col2.x*this.m_p.y));d=c.p1.y-(d.position.y+(e.col1.y*this.m_p.x+e.col2.y*this.m_p.y));var e=c.p2.x-c.p1.x,f=c.p2.y-c.p1.y,j=g*e+d*f,m=e*e+f*f,n=j*j-m*(g*g+d*d-this.m_radius*this.m_radius);if(0>n||m<Number.MIN_VALUE)return!1;j=-(j+Math.sqrt(n));return 0<=j&&j<=c.maxFraction*
m?(j/=m,b.fraction=j,b.normal.x=g+j*e,b.normal.y=d+j*f,b.normal.Normalize(),!0):!1};c.prototype.ComputeAABB=function(b,c){var d=c.R,e=c.position.x+(d.col1.x*this.m_p.x+d.col2.x*this.m_p.y),d=c.position.y+(d.col1.y*this.m_p.x+d.col2.y*this.m_p.y);b.lowerBound.Set(e-this.m_radius,d-this.m_radius);b.upperBound.Set(e+this.m_radius,d+this.m_radius)};c.prototype.ComputeMass=function(c,d){void 0===d&&(d=0);c.mass=d*b.b2_pi*this.m_radius*this.m_radius;c.center.SetV(this.m_p);c.I=c.mass*(0.5*this.m_radius*
this.m_radius+(this.m_p.x*this.m_p.x+this.m_p.y*this.m_p.y))};c.prototype.ComputeSubmergedArea=function(b,c,d,e){void 0===c&&(c=0);d=g.MulX(d,this.m_p);var f=-(g.Dot(b,d)-c);if(f<-this.m_radius+Number.MIN_VALUE)return 0;if(f>this.m_radius)return e.SetV(d),Math.PI*this.m_radius*this.m_radius;c=this.m_radius*this.m_radius;var j=f*f,f=c*(Math.asin(f/this.m_radius)+Math.PI/2)+f*Math.sqrt(c-j);c=-2/3*Math.pow(c-j,1.5)/f;e.x=d.x+b.x*c;e.y=d.y+b.y*c;return f};c.prototype.GetLocalPosition=function(){return this.m_p};
c.prototype.SetLocalPosition=function(b){this.m_p.SetV(b)};c.prototype.GetRadius=function(){return this.m_radius};c.prototype.SetRadius=function(b){void 0===b&&(b=0);this.m_radius=b};c.prototype.b2CircleShape=function(b){void 0===b&&(b=0);this.__super.b2Shape.call(this);this.m_type=n.e_circleShape;this.m_radius=b};d.b2EdgeChainDef=function(){};d.prototype.b2EdgeChainDef=function(){this.vertexCount=0;this.isALoop=!0;this.vertices=[]};Box2D.inherit(e,Box2D.Collision.Shapes.b2Shape);e.prototype.__super=
Box2D.Collision.Shapes.b2Shape.prototype;e.b2EdgeShape=function(){Box2D.Collision.Shapes.b2Shape.b2Shape.apply(this,arguments);this.s_supportVec=new z;this.m_v1=new z;this.m_v2=new z;this.m_coreV1=new z;this.m_coreV2=new z;this.m_normal=new z;this.m_direction=new z;this.m_cornerDir1=new z;this.m_cornerDir2=new z};e.prototype.TestPoint=function(){return!1};e.prototype.RayCast=function(b,c,d){var e,g=c.p2.x-c.p1.x,f=c.p2.y-c.p1.y;e=d.R;var j=d.position.x+(e.col1.x*this.m_v1.x+e.col2.x*this.m_v1.y),
m=d.position.y+(e.col1.y*this.m_v1.x+e.col2.y*this.m_v1.y),n=d.position.y+(e.col1.y*this.m_v2.x+e.col2.y*this.m_v2.y)-m;d=-(d.position.x+(e.col1.x*this.m_v2.x+e.col2.x*this.m_v2.y)-j);e=100*Number.MIN_VALUE;var t=-(g*n+f*d);if(t>e){var j=c.p1.x-j,y=c.p1.y-m,m=j*n+y*d;if(0<=m&&m<=c.maxFraction*t&&(c=-g*y+f*j,-e*t<=c&&c<=t*(1+e)))return b.fraction=m/t,c=Math.sqrt(n*n+d*d),b.normal.x=n/c,b.normal.y=d/c,!0}return!1};e.prototype.ComputeAABB=function(b,c){var d=c.R,e=c.position.x+(d.col1.x*this.m_v1.x+
d.col2.x*this.m_v1.y),g=c.position.y+(d.col1.y*this.m_v1.x+d.col2.y*this.m_v1.y),f=c.position.x+(d.col1.x*this.m_v2.x+d.col2.x*this.m_v2.y),d=c.position.y+(d.col1.y*this.m_v2.x+d.col2.y*this.m_v2.y);e<f?(b.lowerBound.x=e,b.upperBound.x=f):(b.lowerBound.x=f,b.upperBound.x=e);g<d?(b.lowerBound.y=g,b.upperBound.y=d):(b.lowerBound.y=d,b.upperBound.y=g)};e.prototype.ComputeMass=function(b){b.mass=0;b.center.SetV(this.m_v1);b.I=0};e.prototype.ComputeSubmergedArea=function(b,c,d,e){void 0===c&&(c=0);var f=
new z(b.x*c,b.y*c),j=g.MulX(d,this.m_v1);d=g.MulX(d,this.m_v2);var m=g.Dot(b,j)-c;b=g.Dot(b,d)-c;if(0<m){if(0<b)return 0;j.x=-b/(m-b)*j.x+m/(m-b)*d.x;j.y=-b/(m-b)*j.y+m/(m-b)*d.y}else 0<b&&(d.x=-b/(m-b)*j.x+m/(m-b)*d.x,d.y=-b/(m-b)*j.y+m/(m-b)*d.y);e.x=(f.x+j.x+d.x)/3;e.y=(f.y+j.y+d.y)/3;return 0.5*((j.x-f.x)*(d.y-f.y)-(j.y-f.y)*(d.x-f.x))};e.prototype.GetLength=function(){return this.m_length};e.prototype.GetVertex1=function(){return this.m_v1};e.prototype.GetVertex2=function(){return this.m_v2};
e.prototype.GetCoreVertex1=function(){return this.m_coreV1};e.prototype.GetCoreVertex2=function(){return this.m_coreV2};e.prototype.GetNormalVector=function(){return this.m_normal};e.prototype.GetDirectionVector=function(){return this.m_direction};e.prototype.GetCorner1Vector=function(){return this.m_cornerDir1};e.prototype.GetCorner2Vector=function(){return this.m_cornerDir2};e.prototype.Corner1IsConvex=function(){return this.m_cornerConvex1};e.prototype.Corner2IsConvex=function(){return this.m_cornerConvex2};
e.prototype.GetFirstVertex=function(b){var c=b.R;return new z(b.position.x+(c.col1.x*this.m_coreV1.x+c.col2.x*this.m_coreV1.y),b.position.y+(c.col1.y*this.m_coreV1.x+c.col2.y*this.m_coreV1.y))};e.prototype.GetNextEdge=function(){return this.m_nextEdge};e.prototype.GetPrevEdge=function(){return this.m_prevEdge};e.prototype.Support=function(b,c,d){void 0===c&&(c=0);void 0===d&&(d=0);var e=b.R,g=b.position.x+(e.col1.x*this.m_coreV1.x+e.col2.x*this.m_coreV1.y),f=b.position.y+(e.col1.y*this.m_coreV1.x+
e.col2.y*this.m_coreV1.y),j=b.position.x+(e.col1.x*this.m_coreV2.x+e.col2.x*this.m_coreV2.y);b=b.position.y+(e.col1.y*this.m_coreV2.x+e.col2.y*this.m_coreV2.y);g*c+f*d>j*c+b*d?(this.s_supportVec.x=g,this.s_supportVec.y=f):(this.s_supportVec.x=j,this.s_supportVec.y=b);return this.s_supportVec};e.prototype.b2EdgeShape=function(c,d){this.__super.b2Shape.call(this);this.m_type=n.e_edgeShape;this.m_nextEdge=this.m_prevEdge=null;this.m_v1=c;this.m_v2=d;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(-b.b2_toiSlop*(this.m_normal.x-this.m_direction.x)+this.m_v1.x,-b.b2_toiSlop*(this.m_normal.y-this.m_direction.y)+this.m_v1.y);this.m_coreV2.Set(-b.b2_toiSlop*(this.m_normal.x+this.m_direction.x)+this.m_v2.x,-b.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)};e.prototype.SetPrevEdge=
function(b,c,d,e){this.m_prevEdge=b;this.m_coreV1=c;this.m_cornerDir1=d;this.m_cornerConvex1=e};e.prototype.SetNextEdge=function(b,c,d,e){this.m_nextEdge=b;this.m_coreV2=c;this.m_cornerDir2=d;this.m_cornerConvex2=e};f.b2MassData=function(){this.mass=0;this.center=new z(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 b=new j;b.Set(this);return b};j.prototype.Set=function(b){this.__super.Set.call(this,b);if(Box2D.is(b,j)){b=b instanceof j?b:null;this.m_centroid.SetV(b.m_centroid);this.m_vertexCount=b.m_vertexCount;this.Reserve(this.m_vertexCount);for(var c=0;c<this.m_vertexCount;c++)this.m_vertices[c].SetV(b.m_vertices[c]),this.m_normals[c].SetV(b.m_normals[c])}};j.prototype.SetAsArray=function(b,c){void 0===c&&(c=0);for(var d=new Vector,e=0,g,e=0;e<b.length;++e)g=b[e],d.push(g);this.SetAsVector(d,
c)};j.AsArray=function(b,c){void 0===c&&(c=0);var d=new j;d.SetAsArray(b,c);return d};j.prototype.SetAsVector=function(c,d){void 0===d&&(d=0);0==d&&(d=c.length);b.b2Assert(2<=d);this.m_vertexCount=d;this.Reserve(d);for(var e=0,e=0;e<this.m_vertexCount;e++)this.m_vertices[e].SetV(c[e]);for(e=0;e<this.m_vertexCount;++e){var f=parseInt(e),m=parseInt(e+1<this.m_vertexCount?e+1:0),f=g.SubtractVV(this.m_vertices[m],this.m_vertices[f]);b.b2Assert(f.LengthSquared()>Number.MIN_VALUE);this.m_normals[e].SetV(g.CrossVF(f,
1));this.m_normals[e].Normalize()}this.m_centroid=j.ComputeCentroid(this.m_vertices,this.m_vertexCount)};j.AsVector=function(b,c){void 0===c&&(c=0);var d=new j;d.SetAsVector(b,c);return d};j.prototype.SetAsBox=function(b,c){void 0===b&&(b=0);void 0===c&&(c=0);this.m_vertexCount=4;this.Reserve(4);this.m_vertices[0].Set(-b,-c);this.m_vertices[1].Set(b,-c);this.m_vertices[2].Set(b,c);this.m_vertices[3].Set(-b,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(b,c){void 0===b&&(b=0);void 0===c&&(c=0);var d=new j;d.SetAsBox(b,c);return d};j.prototype.SetAsOrientedBox=function(b,c,d,e){void 0===b&&(b=0);void 0===c&&(c=0);void 0===d&&(d=null);void 0===e&&(e=0);this.m_vertexCount=4;this.Reserve(4);this.m_vertices[0].Set(-b,-c);this.m_vertices[1].Set(b,-c);this.m_vertices[2].Set(b,c);this.m_vertices[3].Set(-b,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=d;b=new t;b.position=d;b.R.Set(e);for(d=0;d<this.m_vertexCount;++d)this.m_vertices[d]=g.MulX(b,this.m_vertices[d]),this.m_normals[d]=g.MulMV(b.R,this.m_normals[d])};j.AsOrientedBox=function(b,c,d,e){void 0===b&&(b=0);void 0===c&&(c=0);void 0===d&&(d=null);void 0===e&&(e=0);var g=new j;g.SetAsOrientedBox(b,c,d,e);return g};j.prototype.SetAsEdge=function(b,c){this.m_vertexCount=2;this.Reserve(2);this.m_vertices[0].SetV(b);this.m_vertices[1].SetV(c);this.m_centroid.x=0.5*(b.x+c.x);
this.m_centroid.y=0.5*(b.y+c.y);this.m_normals[0]=g.CrossVF(g.SubtractVV(c,b),1);this.m_normals[0].Normalize();this.m_normals[1].x=-this.m_normals[0].x;this.m_normals[1].y=-this.m_normals[0].y};j.AsEdge=function(b,c){var d=new j;d.SetAsEdge(b,c);return d};j.prototype.TestPoint=function(b,c){var d;d=b.R;for(var e=c.x-b.position.x,g=c.y-b.position.y,f=e*d.col1.x+g*d.col1.y,j=e*d.col2.x+g*d.col2.y,m=0;m<this.m_vertexCount;++m)if(d=this.m_vertices[m],e=f-d.x,g=j-d.y,d=this.m_normals[m],0<d.x*e+d.y*g)return!1;
return!0};j.prototype.RayCast=function(b,c,d){var e=0,g=c.maxFraction,f=0,j=0,m,n,f=c.p1.x-d.position.x,j=c.p1.y-d.position.y;m=d.R;var t=f*m.col1.x+j*m.col1.y,y=f*m.col2.x+j*m.col2.y,f=c.p2.x-d.position.x,j=c.p2.y-d.position.y;m=d.R;c=f*m.col1.x+j*m.col1.y-t;m=f*m.col2.x+j*m.col2.y-y;for(var A=-1,s=0;s<this.m_vertexCount;++s){n=this.m_vertices[s];f=n.x-t;j=n.y-y;n=this.m_normals[s];f=n.x*f+n.y*j;j=n.x*c+n.y*m;if(0==j){if(0>f)return!1}else 0>j&&f<e*j?(e=f/j,A=s):0<j&&f<g*j&&(g=f/j);if(g<e-Number.MIN_VALUE)return!1}return 0<=
A?(b.fraction=e,m=d.R,n=this.m_normals[A],b.normal.x=m.col1.x*n.x+m.col2.x*n.y,b.normal.y=m.col1.y*n.x+m.col2.y*n.y,!0):!1};j.prototype.ComputeAABB=function(b,c){for(var d=c.R,e=this.m_vertices[0],g=c.position.x+(d.col1.x*e.x+d.col2.x*e.y),f=c.position.y+(d.col1.y*e.x+d.col2.y*e.y),j=g,m=f,n=1;n<this.m_vertexCount;++n)var e=this.m_vertices[n],t=c.position.x+(d.col1.x*e.x+d.col2.x*e.y),e=c.position.y+(d.col1.y*e.x+d.col2.y*e.y),g=g<t?g:t,f=f<e?f:e,j=j>t?j:t,m=m>e?m:e;b.lowerBound.x=g-this.m_radius;
b.lowerBound.y=f-this.m_radius;b.upperBound.x=j+this.m_radius;b.upperBound.y=m+this.m_radius};j.prototype.ComputeMass=function(b,c){void 0===c&&(c=0);if(2==this.m_vertexCount)b.center.x=0.5*(this.m_vertices[0].x+this.m_vertices[1].x),b.center.y=0.5*(this.m_vertices[0].y+this.m_vertices[1].y),b.mass=0,b.I=0;else{for(var d=0,e=0,g=0,f=0,j=1/3,m=0;m<this.m_vertexCount;++m)var n=this.m_vertices[m],t=m+1<this.m_vertexCount?this.m_vertices[parseInt(m+1)]:this.m_vertices[0],y=n.x-0,A=n.y-0,s=t.x-0,u=t.y-
0,F=y*u-A*s,C=0.5*F,g=g+C,d=d+C*j*(0+n.x+t.x),e=e+C*j*(0+n.y+t.y),n=y,f=f+F*(j*(0.25*(n*n+s*n+s*s)+(0*n+0*s))+0+(j*(0.25*(A*A+u*A+u*u)+(0*A+0*u))+0));b.mass=c*g;b.center.Set(d*(1/g),e*(1/g));b.I=c*f}};j.prototype.ComputeSubmergedArea=function(b,c,d,e){void 0===c&&(c=0);var j=g.MulTMV(d.R,b),m=c-g.Dot(b,d.position),n=new Vector_a2j_Number,t=0,y=-1;c=-1;var A=!1;for(b=b=0;b<this.m_vertexCount;++b){n[b]=g.Dot(j,this.m_vertices[b])-m;var B=n[b]<-Number.MIN_VALUE;0<b&&(B?A||(y=b-1,t++):A&&(c=b-1,t++));
A=B}switch(t){case 0:return A?(b=new f,this.ComputeMass(b,1),e.SetV(g.MulX(d,b.center)),b.mass):0;case 1:-1==y?y=this.m_vertexCount-1:c=this.m_vertexCount-1}b=parseInt((y+1)%this.m_vertexCount);j=parseInt((c+1)%this.m_vertexCount);m=(0-n[y])/(n[b]-n[y]);n=(0-n[c])/(n[j]-n[c]);y=new z(this.m_vertices[y].x*(1-m)+this.m_vertices[b].x*m,this.m_vertices[y].y*(1-m)+this.m_vertices[b].y*m);c=new z(this.m_vertices[c].x*(1-n)+this.m_vertices[j].x*n,this.m_vertices[c].y*(1-n)+this.m_vertices[j].y*n);n=0;m=
new z;for(t=this.m_vertices[b];b!=j;)b=(b+1)%this.m_vertexCount,A=b==j?c:this.m_vertices[b],B=0.5*((t.x-y.x)*(A.y-y.y)-(t.y-y.y)*(A.x-y.x)),n+=B,m.x+=B*(y.x+t.x+A.x)/3,m.y+=B*(y.y+t.y+A.y)/3,t=A;m.Multiply(1/n);e.SetV(g.MulX(d,m));return n};j.prototype.GetVertexCount=function(){return this.m_vertexCount};j.prototype.GetVertices=function(){return this.m_vertices};j.prototype.GetNormals=function(){return this.m_normals};j.prototype.GetSupport=function(b){for(var c=0,d=this.m_vertices[0].x*b.x+this.m_vertices[0].y*
b.y,e=1;e<this.m_vertexCount;++e){var g=this.m_vertices[e].x*b.x+this.m_vertices[e].y*b.y;g>d&&(c=e,d=g)}return c};j.prototype.GetSupportVertex=function(b){for(var c=0,d=this.m_vertices[0].x*b.x+this.m_vertices[0].y*b.y,e=1;e<this.m_vertexCount;++e){var g=this.m_vertices[e].x*b.x+this.m_vertices[e].y*b.y;g>d&&(c=e,d=g)}return this.m_vertices[c]};j.prototype.Validate=function(){return!1};j.prototype.b2PolygonShape=function(){this.__super.b2Shape.call(this);this.m_type=n.e_polygonShape;this.m_centroid=
new z;this.m_vertices=new Vector;this.m_normals=new Vector};j.prototype.Reserve=function(b){void 0===b&&(b=0);for(var c=parseInt(this.m_vertices.length);c<b;c++)this.m_vertices[c]=new z,this.m_normals[c]=new z};j.ComputeCentroid=function(b,c){void 0===c&&(c=0);for(var d=new z,e=0,g=1/3,f=0;f<c;++f){var j=b[f],m=f+1<c?b[parseInt(f+1)]:b[0],n=0.5*((j.x-0)*(m.y-0)-(j.y-0)*(m.x-0)),e=e+n;d.x+=n*g*(0+j.x+m.x);d.y+=n*g*(0+j.y+m.y)}d.x*=1/e;d.y*=1/e;return d};j.ComputeOBB=function(b,c,d){void 0===d&&(d=
0);for(var e=0,g=new Vector(d+1),e=0;e<d;++e)g[e]=c[e];g[d]=g[0];c=Number.MAX_VALUE;for(e=1;e<=d;++e){for(var f=g[parseInt(e-1)],j=g[e].x-f.x,m=g[e].y-f.y,n=Math.sqrt(j*j+m*m),j=j/n,m=m/n,t=-m,y=j,A=n=Number.MAX_VALUE,s=-Number.MAX_VALUE,u=-Number.MAX_VALUE,F=0;F<d;++F){var C=g[F].x-f.x,H=g[F].y-f.y,Z=j*C+m*H,C=t*C+y*H;Z<n&&(n=Z);C<A&&(A=C);Z>s&&(s=Z);C>u&&(u=C)}F=(s-n)*(u-A);F<0.95*c&&(c=F,b.R.col1.x=j,b.R.col1.y=m,b.R.col2.x=t,b.R.col2.y=y,j=0.5*(n+s),m=0.5*(A+u),t=b.R,b.center.x=f.x+(t.col1.x*
j+t.col2.x*m),b.center.y=f.y+(t.col1.y*j+t.col2.y*m),b.extents.x=0.5*(s-n),b.extents.y=0.5*(u-A))}};Box2D.postDefs.push(function(){Box2D.Collision.Shapes.b2PolygonShape.s_mat=new m});n.b2Shape=function(){};n.prototype.Copy=function(){return null};n.prototype.Set=function(b){this.m_radius=b.m_radius};n.prototype.GetType=function(){return this.m_type};n.prototype.TestPoint=function(){return!1};n.prototype.RayCast=function(){return!1};n.prototype.ComputeAABB=function(){};n.prototype.ComputeMass=function(){};
n.prototype.ComputeSubmergedArea=function(){return 0};n.TestOverlap=function(b,c,d,e){var g=new A;g.proxyA=new I;g.proxyA.Set(b);g.proxyB=new I;g.proxyB.Set(d);g.transformA=c;g.transformB=e;g.useRadii=!0;b=new D;b.count=0;c=new B;y.Distance(c,b,g);return c.distance<10*Number.MIN_VALUE};n.prototype.b2Shape=function(){this.m_type=n.e_unknownShape;this.m_radius=b.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 b=Box2D.Common.b2Color,c=Box2D.Common.b2Settings,d=Box2D.Common.Math.b2Math;b.b2Color=function(){this._b=this._g=this._r=0};b.prototype.b2Color=function(b,c,j){void 0===b&&(b=0);void 0===c&&(c=0);void 0===j&&(j=0);this._r=Box2D.parseUInt(255*d.Clamp(b,0,1));this._g=Box2D.parseUInt(255*d.Clamp(c,0,1));this._b=Box2D.parseUInt(255*d.Clamp(j,0,1))};b.prototype.Set=function(b,c,j){void 0===b&&(b=0);void 0===c&&(c=0);void 0===j&&(j=0);this._r=Box2D.parseUInt(255*d.Clamp(b,0,1));this._g=
Box2D.parseUInt(255*d.Clamp(c,0,1));this._b=Box2D.parseUInt(255*d.Clamp(j,0,1))};Object.defineProperty(b.prototype,"r",{enumerable:!1,configurable:!0,set:function(b){void 0===b&&(b=0);this._r=Box2D.parseUInt(255*d.Clamp(b,0,1))}});Object.defineProperty(b.prototype,"g",{enumerable:!1,configurable:!0,set:function(b){void 0===b&&(b=0);this._g=Box2D.parseUInt(255*d.Clamp(b,0,1))}});Object.defineProperty(b.prototype,"b",{enumerable:!1,configurable:!0,set:function(b){void 0===b&&(b=0);this._b=Box2D.parseUInt(255*
d.Clamp(b,0,1))}});Object.defineProperty(b.prototype,"color",{enumerable:!1,configurable:!0,get:function(){return this._r<<16|this._g<<8|this._b}});c.b2Settings=function(){};c.b2MixFriction=function(b,c){void 0===b&&(b=0);void 0===c&&(c=0);return Math.sqrt(b*c)};c.b2MixRestitution=function(b,c){void 0===b&&(b=0);void 0===c&&(c=0);return b>c?b:c};c.b2Assert=function(b){if(!b)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*c.b2_linearSlop;Box2D.Common.b2Settings.b2_linearSlop=0.005;Box2D.Common.b2Settings.b2_angularSlop=2/180*c.b2_pi;Box2D.Common.b2Settings.b2_toiSlop=8*c.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*c.b2_pi;Box2D.Common.b2Settings.b2_maxTranslation=2;Box2D.Common.b2Settings.b2_maxTranslationSquared=c.b2_maxTranslation*c.b2_maxTranslation;Box2D.Common.b2Settings.b2_maxRotation=0.5*c.b2_pi;Box2D.Common.b2Settings.b2_maxRotationSquared=c.b2_maxRotation*c.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*c.b2_pi})})();
(function(){var b=Box2D.Common.Math.b2Mat22,c=Box2D.Common.Math.b2Mat33,d=Box2D.Common.Math.b2Math,e=Box2D.Common.Math.b2Sweep,f=Box2D.Common.Math.b2Transform,j=Box2D.Common.Math.b2Vec2,n=Box2D.Common.Math.b2Vec3;b.b2Mat22=function(){this.col1=new j;this.col2=new j};b.prototype.b2Mat22=function(){this.SetIdentity()};b.FromAngle=function(c){void 0===c&&(c=0);var d=new b;d.Set(c);return d};b.FromVV=function(c,d){var e=new b;e.SetVV(c,d);return e};b.prototype.Set=function(b){void 0===b&&(b=0);var c=
Math.cos(b);b=Math.sin(b);this.col1.x=c;this.col2.x=-b;this.col1.y=b;this.col2.y=c};b.prototype.SetVV=function(b,c){this.col1.SetV(b);this.col2.SetV(c)};b.prototype.Copy=function(){var c=new b;c.SetM(this);return c};b.prototype.SetM=function(b){this.col1.SetV(b.col1);this.col2.SetV(b.col2)};b.prototype.AddM=function(b){this.col1.x+=b.col1.x;this.col1.y+=b.col1.y;this.col2.x+=b.col2.x;this.col2.y+=b.col2.y};b.prototype.SetIdentity=function(){this.col1.x=1;this.col2.x=0;this.col1.y=0;this.col2.y=1};
b.prototype.SetZero=function(){this.col1.x=0;this.col2.x=0;this.col1.y=0;this.col2.y=0};b.prototype.GetAngle=function(){return Math.atan2(this.col1.y,this.col1.x)};b.prototype.GetInverse=function(b){var c=this.col1.x,d=this.col2.x,e=this.col1.y,f=this.col2.y,j=c*f-d*e;0!=j&&(j=1/j);b.col1.x=j*f;b.col2.x=-j*d;b.col1.y=-j*e;b.col2.y=j*c;return b};b.prototype.Solve=function(b,c,d){void 0===c&&(c=0);void 0===d&&(d=0);var e=this.col1.x,f=this.col2.x,j=this.col1.y,n=this.col2.y,I=e*n-f*j;0!=I&&(I=1/I);
b.x=I*(n*c-f*d);b.y=I*(e*d-j*c);return b};b.prototype.Abs=function(){this.col1.Abs();this.col2.Abs()};c.b2Mat33=function(){this.col1=new n;this.col2=new n;this.col3=new n};c.prototype.b2Mat33=function(b,c,d){void 0===b&&(b=null);void 0===c&&(c=null);void 0===d&&(d=null);!b&&!c&&!d?(this.col1.SetZero(),this.col2.SetZero(),this.col3.SetZero()):(this.col1.SetV(b),this.col2.SetV(c),this.col3.SetV(d))};c.prototype.SetVVV=function(b,c,d){this.col1.SetV(b);this.col2.SetV(c);this.col3.SetV(d)};c.prototype.Copy=
function(){return new c(this.col1,this.col2,this.col3)};c.prototype.SetM=function(b){this.col1.SetV(b.col1);this.col2.SetV(b.col2);this.col3.SetV(b.col3)};c.prototype.AddM=function(b){this.col1.x+=b.col1.x;this.col1.y+=b.col1.y;this.col1.z+=b.col1.z;this.col2.x+=b.col2.x;this.col2.y+=b.col2.y;this.col2.z+=b.col2.z;this.col3.x+=b.col3.x;this.col3.y+=b.col3.y;this.col3.z+=b.col3.z};c.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};c.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};c.prototype.Solve22=function(b,c,d){void 0===c&&(c=0);void 0===d&&(d=0);var e=this.col1.x,f=this.col2.x,j=this.col1.y,n=this.col2.y,I=e*n-f*j;0!=I&&(I=1/I);b.x=I*(n*c-f*d);b.y=I*(e*d-j*c);return b};c.prototype.Solve33=function(b,c,d,e){void 0===c&&(c=0);void 0===d&&(d=0);void 0===e&&(e=0);var f=this.col1.x,
j=this.col1.y,n=this.col1.z,I=this.col2.x,D=this.col2.y,x=this.col2.z,G=this.col3.x,E=this.col3.y,L=this.col3.z,M=f*(D*L-x*E)+j*(x*G-I*L)+n*(I*E-D*G);0!=M&&(M=1/M);b.x=M*(c*(D*L-x*E)+d*(x*G-I*L)+e*(I*E-D*G));b.y=M*(f*(d*L-e*E)+j*(e*G-c*L)+n*(c*E-d*G));b.z=M*(f*(D*e-x*d)+j*(x*c-I*e)+n*(I*d-D*c));return b};d.b2Math=function(){};d.IsValid=function(b){void 0===b&&(b=0);return isFinite(b)};d.Dot=function(b,c){return b.x*c.x+b.y*c.y};d.CrossVV=function(b,c){return b.x*c.y-b.y*c.x};d.CrossVF=function(b,
c){void 0===c&&(c=0);return new j(c*b.y,-c*b.x)};d.CrossFV=function(b,c){void 0===b&&(b=0);return new j(-b*c.y,b*c.x)};d.MulMV=function(b,c){return new j(b.col1.x*c.x+b.col2.x*c.y,b.col1.y*c.x+b.col2.y*c.y)};d.MulTMV=function(b,c){return new j(d.Dot(c,b.col1),d.Dot(c,b.col2))};d.MulX=function(b,c){var e=d.MulMV(b.R,c);e.x+=b.position.x;e.y+=b.position.y;return e};d.MulXT=function(b,c){var e=d.SubtractVV(c,b.position),f=e.x*b.R.col1.x+e.y*b.R.col1.y;e.y=e.x*b.R.col2.x+e.y*b.R.col2.y;e.x=f;return e};
d.AddVV=function(b,c){return new j(b.x+c.x,b.y+c.y)};d.SubtractVV=function(b,c){return new j(b.x-c.x,b.y-c.y)};d.Distance=function(b,c){var d=b.x-c.x,e=b.y-c.y;return Math.sqrt(d*d+e*e)};d.DistanceSquared=function(b,c){var d=b.x-c.x,e=b.y-c.y;return d*d+e*e};d.MulFV=function(b,c){void 0===b&&(b=0);return new j(b*c.x,b*c.y)};d.AddMM=function(c,e){return b.FromVV(d.AddVV(c.col1,e.col1),d.AddVV(c.col2,e.col2))};d.MulMM=function(c,e){return b.FromVV(d.MulMV(c,e.col1),d.MulMV(c,e.col2))};d.MulTMM=function(c,
e){var f=new j(d.Dot(c.col1,e.col1),d.Dot(c.col2,e.col1)),n=new j(d.Dot(c.col1,e.col2),d.Dot(c.col2,e.col2));return b.FromVV(f,n)};d.Abs=function(b){void 0===b&&(b=0);return 0<b?b:-b};d.AbsV=function(b){return new j(d.Abs(b.x),d.Abs(b.y))};d.AbsM=function(c){return b.FromVV(d.AbsV(c.col1),d.AbsV(c.col2))};d.Min=function(b,c){void 0===b&&(b=0);void 0===c&&(c=0);return b<c?b:c};d.MinV=function(b,c){return new j(d.Min(b.x,c.x),d.Min(b.y,c.y))};d.Max=function(b,c){void 0===b&&(b=0);void 0===c&&(c=0);
return b>c?b:c};d.MaxV=function(b,c){return new j(d.Max(b.x,c.x),d.Max(b.y,c.y))};d.Clamp=function(b,c,d){void 0===b&&(b=0);void 0===c&&(c=0);void 0===d&&(d=0);return b<c?c:b>d?d:b};d.ClampV=function(b,c,e){return d.MaxV(c,d.MinV(b,e))};d.Swap=function(b,c){var d=b[0];b[0]=c[0];c[0]=d};d.Random=function(){return 2*Math.random()-1};d.RandomRange=function(b,c){void 0===b&&(b=0);void 0===c&&(c=0);var d=Math.random();return(c-b)*d+b};d.NextPowerOfTwo=function(b){void 0===b&&(b=0);b|=b>>1&2147483647;b|=
b>>2&1073741823;b|=b>>4&268435455;b|=b>>8&16777215;return(b|b>>16&65535)+1};d.IsPowerOfTwo=function(b){void 0===b&&(b=0);return 0<b&&0==(b&b-1)};Box2D.postDefs.push(function(){Box2D.Common.Math.b2Math.b2Vec2_zero=new j(0,0);Box2D.Common.Math.b2Math.b2Mat22_identity=b.FromVV(new j(1,0),new j(0,1));Box2D.Common.Math.b2Math.b2Transform_identity=new f(d.b2Vec2_zero,d.b2Mat22_identity)});e.b2Sweep=function(){this.localCenter=new j;this.c0=new j;this.c=new j};e.prototype.Set=function(b){this.localCenter.SetV(b.localCenter);
this.c0.SetV(b.c0);this.c.SetV(b.c);this.a0=b.a0;this.a=b.a;this.t0=b.t0};e.prototype.Copy=function(){var b=new e;b.localCenter.SetV(this.localCenter);b.c0.SetV(this.c0);b.c.SetV(this.c);b.a0=this.a0;b.a=this.a;b.t0=this.t0;return b};e.prototype.GetTransform=function(b,c){void 0===c&&(c=0);b.position.x=(1-c)*this.c0.x+c*this.c.x;b.position.y=(1-c)*this.c0.y+c*this.c.y;b.R.Set((1-c)*this.a0+c*this.a);var d=b.R;b.position.x-=d.col1.x*this.localCenter.x+d.col2.x*this.localCenter.y;b.position.y-=d.col1.y*
this.localCenter.x+d.col2.y*this.localCenter.y};e.prototype.Advance=function(b){void 0===b&&(b=0);if(this.t0<b&&1-this.t0>Number.MIN_VALUE){var c=(b-this.t0)/(1-this.t0);this.c0.x=(1-c)*this.c0.x+c*this.c.x;this.c0.y=(1-c)*this.c0.y+c*this.c.y;this.a0=(1-c)*this.a0+c*this.a;this.t0=b}};f.b2Transform=function(){this.position=new j;this.R=new b};f.prototype.b2Transform=function(b,c){void 0===b&&(b=null);void 0===c&&(c=null);b&&(this.position.SetV(b),this.R.SetM(c))};f.prototype.Initialize=function(b,
c){this.position.SetV(b);this.R.SetM(c)};f.prototype.SetIdentity=function(){this.position.SetZero();this.R.SetIdentity()};f.prototype.Set=function(b){this.position.SetV(b.position);this.R.SetM(b.R)};f.prototype.GetAngle=function(){return Math.atan2(this.R.col1.y,this.R.col1.x)};j.b2Vec2=function(){};j.prototype.b2Vec2=function(b,c){void 0===b&&(b=0);void 0===c&&(c=0);this.x=b;this.y=c};j.prototype.SetZero=function(){this.y=this.x=0};j.prototype.Set=function(b,c){void 0===b&&(b=0);void 0===c&&(c=0);
this.x=b;this.y=c};j.prototype.SetV=function(b){this.x=b.x;this.y=b.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(b,c){void 0===b&&(b=0);void 0===c&&(c=0);return new j(b,c)};j.prototype.Copy=function(){return new j(this.x,this.y)};j.prototype.Add=function(b){this.x+=b.x;this.y+=b.y};j.prototype.Subtract=function(b){this.x-=b.x;this.y-=b.y};j.prototype.Multiply=function(b){void 0===b&&(b=0);this.x*=
b;this.y*=b};j.prototype.MulM=function(b){var c=this.x;this.x=b.col1.x*c+b.col2.x*this.y;this.y=b.col1.y*c+b.col2.y*this.y};j.prototype.MulTM=function(b){var c=d.Dot(this,b.col1);this.y=d.Dot(this,b.col2);this.x=c};j.prototype.CrossVF=function(b){void 0===b&&(b=0);var c=this.x;this.x=b*this.y;this.y=-b*c};j.prototype.CrossFV=function(b){void 0===b&&(b=0);var c=this.x;this.x=-b*this.y;this.y=b*c};j.prototype.MinV=function(b){this.x=this.x<b.x?this.x:b.x;this.y=this.y<b.y?this.y:b.y};j.prototype.MaxV=
function(b){this.x=this.x>b.x?this.x:b.x;this.y=this.y>b.y?this.y:b.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 b=Math.sqrt(this.x*this.x+this.y*this.y);if(b<Number.MIN_VALUE)return 0;var c=1/b;this.x*=c;this.y*=c;return b};j.prototype.IsValid=function(){return d.IsValid(this.x)&&
d.IsValid(this.y)};n.b2Vec3=function(){};n.prototype.b2Vec3=function(b,c,d){void 0===b&&(b=0);void 0===c&&(c=0);void 0===d&&(d=0);this.x=b;this.y=c;this.z=d};n.prototype.SetZero=function(){this.x=this.y=this.z=0};n.prototype.Set=function(b,c,d){void 0===b&&(b=0);void 0===c&&(c=0);void 0===d&&(d=0);this.x=b;this.y=c;this.z=d};n.prototype.SetV=function(b){this.x=b.x;this.y=b.y;this.z=b.z};n.prototype.GetNegative=function(){return new n(-this.x,-this.y,-this.z)};n.prototype.NegativeSelf=function(){this.x=
-this.x;this.y=-this.y;this.z=-this.z};n.prototype.Copy=function(){return new n(this.x,this.y,this.z)};n.prototype.Add=function(b){this.x+=b.x;this.y+=b.y;this.z+=b.z};n.prototype.Subtract=function(b){this.x-=b.x;this.y-=b.y;this.z-=b.z};n.prototype.Multiply=function(b){void 0===b&&(b=0);this.x*=b;this.y*=b;this.z*=b}})();
(function(){var b=Box2D.Common.Math.b2Math,c=Box2D.Common.Math.b2Sweep,d=Box2D.Common.Math.b2Transform,e=Box2D.Common.Math.b2Vec2,f=Box2D.Common.b2Color,j=Box2D.Common.b2Settings,n=Box2D.Collision.b2AABB,m=Box2D.Collision.b2ContactPoint,g=Box2D.Collision.b2DynamicTreeBroadPhase,t=Box2D.Collision.b2RayCastInput,z=Box2D.Collision.b2RayCastOutput,y=Box2D.Collision.Shapes.b2CircleShape,A=Box2D.Collision.Shapes.b2EdgeShape,B=Box2D.Collision.Shapes.b2MassData,I=Box2D.Collision.Shapes.b2PolygonShape,D=Box2D.Collision.Shapes.b2Shape,
x=Box2D.Dynamics.b2Body,G=Box2D.Dynamics.b2BodyDef,E=Box2D.Dynamics.b2ContactFilter,L=Box2D.Dynamics.b2ContactImpulse,M=Box2D.Dynamics.b2ContactListener,Q=Box2D.Dynamics.b2ContactManager,J=Box2D.Dynamics.b2DebugDraw,fa=Box2D.Dynamics.b2DestructionListener,O=Box2D.Dynamics.b2FilterData,P=Box2D.Dynamics.b2Fixture,ba=Box2D.Dynamics.b2FixtureDef,U=Box2D.Dynamics.b2Island,s=Box2D.Dynamics.b2TimeStep,u=Box2D.Dynamics.b2World,F=Box2D.Dynamics.Contacts.b2Contact,C=Box2D.Dynamics.Contacts.b2ContactFactory,
H=Box2D.Dynamics.Contacts.b2ContactSolver,Z=Box2D.Dynamics.Joints.b2Joint,R=Box2D.Dynamics.Joints.b2PulleyJoint;x.b2Body=function(){this.m_xf=new d;this.m_sweep=new c;this.m_linearVelocity=new e;this.m_force=new e};x.prototype.connectEdges=function(c,d,e){void 0===e&&(e=0);var f=Math.atan2(d.GetDirectionVector().y,d.GetDirectionVector().x);e=b.MulFV(Math.tan(0.5*(f-e)),d.GetDirectionVector());e=b.SubtractVV(e,d.GetNormalVector());e=b.MulFV(j.b2_toiSlop,e);e=b.AddVV(e,d.GetVertex1());var g=b.AddVV(c.GetDirectionVector(),
d.GetDirectionVector());g.Normalize();var s=0<b.Dot(c.GetDirectionVector(),d.GetNormalVector());c.SetNextEdge(d,e,g,s);d.SetPrevEdge(c,e,g,s);return f};x.prototype.CreateFixture=function(b){if(!0==this.m_world.IsLocked())return null;var c=new P;c.Create(this,this.m_xf,b);this.m_flags&x.e_activeFlag&&c.CreateProxy(this.m_world.m_contactManager.m_broadPhase,this.m_xf);c.m_next=this.m_fixtureList;this.m_fixtureList=c;++this.m_fixtureCount;c.m_body=this;0<c.m_density&&this.ResetMassData();this.m_world.m_flags|=
u.e_newFixture;return c};x.prototype.CreateFixture2=function(b,c){void 0===c&&(c=0);var d=new ba;d.shape=b;d.density=c;return this.CreateFixture(d)};x.prototype.DestroyFixture=function(b){if(!0!=this.m_world.IsLocked()){for(var c=this.m_fixtureList,d=null;null!=c;){if(c==b){d?d.m_next=b.m_next:this.m_fixtureList=b.m_next;break}d=c;c=c.m_next}for(c=this.m_contactList;c;){var d=c.contact,c=c.next,e=d.GetFixtureA(),f=d.GetFixtureB();(b==e||b==f)&&this.m_world.m_contactManager.Destroy(d)}this.m_flags&
x.e_activeFlag&&b.DestroyProxy(this.m_world.m_contactManager.m_broadPhase);b.Destroy();b.m_body=null;b.m_next=null;--this.m_fixtureCount;this.ResetMassData()}};x.prototype.SetPositionAndAngle=function(b,c){void 0===c&&(c=0);var d;if(!0!=this.m_world.IsLocked()){this.m_xf.R.Set(c);this.m_xf.position.SetV(b);d=this.m_xf.R;var e=this.m_sweep.localCenter;this.m_sweep.c.x=d.col1.x*e.x+d.col2.x*e.y;this.m_sweep.c.y=d.col1.y*e.x+d.col2.y*e.y;this.m_sweep.c.x+=this.m_xf.position.x;this.m_sweep.c.y+=this.m_xf.position.y;
this.m_sweep.c0.SetV(this.m_sweep.c);this.m_sweep.a0=this.m_sweep.a=c;e=this.m_world.m_contactManager.m_broadPhase;for(d=this.m_fixtureList;d;d=d.m_next)d.Synchronize(e,this.m_xf,this.m_xf);this.m_world.m_contactManager.FindNewContacts()}};x.prototype.SetTransform=function(b){this.SetPositionAndAngle(b.position,b.GetAngle())};x.prototype.GetTransform=function(){return this.m_xf};x.prototype.GetPosition=function(){return this.m_xf.position};x.prototype.SetPosition=function(b){this.SetPositionAndAngle(b,
this.GetAngle())};x.prototype.GetAngle=function(){return this.m_sweep.a};x.prototype.SetAngle=function(b){void 0===b&&(b=0);this.SetPositionAndAngle(this.GetPosition(),b)};x.prototype.GetWorldCenter=function(){return this.m_sweep.c};x.prototype.GetLocalCenter=function(){return this.m_sweep.localCenter};x.prototype.SetLinearVelocity=function(b){this.m_type!=x.b2_staticBody&&this.m_linearVelocity.SetV(b)};x.prototype.GetLinearVelocity=function(){return this.m_linearVelocity};x.prototype.SetAngularVelocity=
function(b){void 0===b&&(b=0);this.m_type!=x.b2_staticBody&&(this.m_angularVelocity=b)};x.prototype.GetAngularVelocity=function(){return this.m_angularVelocity};x.prototype.GetDefinition=function(){var b=new G;b.type=this.GetType();b.allowSleep=(this.m_flags&x.e_allowSleepFlag)==x.e_allowSleepFlag;b.angle=this.GetAngle();b.angularDamping=this.m_angularDamping;b.angularVelocity=this.m_angularVelocity;b.fixedRotation=(this.m_flags&x.e_fixedRotationFlag)==x.e_fixedRotationFlag;b.bullet=(this.m_flags&
x.e_bulletFlag)==x.e_bulletFlag;b.awake=(this.m_flags&x.e_awakeFlag)==x.e_awakeFlag;b.linearDamping=this.m_linearDamping;b.linearVelocity.SetV(this.GetLinearVelocity());b.position=this.GetPosition();b.userData=this.GetUserData();return b};x.prototype.ApplyForce=function(b,c){this.m_type==x.b2_dynamicBody&&(!1==this.IsAwake()&&this.SetAwake(!0),this.m_force.x+=b.x,this.m_force.y+=b.y,this.m_torque+=(c.x-this.m_sweep.c.x)*b.y-(c.y-this.m_sweep.c.y)*b.x)};x.prototype.ApplyTorque=function(b){void 0===
b&&(b=0);this.m_type==x.b2_dynamicBody&&(!1==this.IsAwake()&&this.SetAwake(!0),this.m_torque+=b)};x.prototype.ApplyImpulse=function(b,c){this.m_type==x.b2_dynamicBody&&(!1==this.IsAwake()&&this.SetAwake(!0),this.m_linearVelocity.x+=this.m_invMass*b.x,this.m_linearVelocity.y+=this.m_invMass*b.y,this.m_angularVelocity+=this.m_invI*((c.x-this.m_sweep.c.x)*b.y-(c.y-this.m_sweep.c.y)*b.x))};x.prototype.Split=function(c){for(var d=this.GetLinearVelocity().Copy(),e=this.GetAngularVelocity(),f=this.GetWorldCenter(),
g=this.m_world.CreateBody(this.GetDefinition()),j,s=this.m_fixtureList;s;)if(c(s)){var u=s.m_next;j?j.m_next=u:this.m_fixtureList=u;this.m_fixtureCount--;s.m_next=g.m_fixtureList;g.m_fixtureList=s;g.m_fixtureCount++;s.m_body=g;s=u}else j=s,s=s.m_next;this.ResetMassData();g.ResetMassData();j=this.GetWorldCenter();c=g.GetWorldCenter();j=b.AddVV(d,b.CrossFV(e,b.SubtractVV(j,f)));d=b.AddVV(d,b.CrossFV(e,b.SubtractVV(c,f)));this.SetLinearVelocity(j);g.SetLinearVelocity(d);this.SetAngularVelocity(e);g.SetAngularVelocity(e);
this.SynchronizeFixtures();g.SynchronizeFixtures();return g};x.prototype.Merge=function(b){var c;for(c=b.m_fixtureList;c;){var d=c.m_next;b.m_fixtureCount--;c.m_next=this.m_fixtureList;this.m_fixtureList=c;this.m_fixtureCount++;c.m_body=f;c=d}e.m_fixtureCount=0;var e=this,f=b;e.GetWorldCenter();f.GetWorldCenter();e.GetLinearVelocity().Copy();f.GetLinearVelocity().Copy();e.GetAngularVelocity();f.GetAngularVelocity();e.ResetMassData();this.SynchronizeFixtures()};x.prototype.GetMass=function(){return this.m_mass};
x.prototype.GetInertia=function(){return this.m_I};x.prototype.GetMassData=function(b){b.mass=this.m_mass;b.I=this.m_I;b.center.SetV(this.m_sweep.localCenter)};x.prototype.SetMassData=function(c){j.b2Assert(!1==this.m_world.IsLocked());if(!0!=this.m_world.IsLocked()&&this.m_type==x.b2_dynamicBody){this.m_invI=this.m_I=this.m_invMass=0;this.m_mass=c.mass;0>=this.m_mass&&(this.m_mass=1);this.m_invMass=1/this.m_mass;0<c.I&&0==(this.m_flags&x.e_fixedRotationFlag)&&(this.m_I=c.I-this.m_mass*(c.center.x*
c.center.x+c.center.y*c.center.y),this.m_invI=1/this.m_I);var d=this.m_sweep.c.Copy();this.m_sweep.localCenter.SetV(c.center);this.m_sweep.c0.SetV(b.MulX(this.m_xf,this.m_sweep.localCenter));this.m_sweep.c.SetV(this.m_sweep.c0);this.m_linearVelocity.x+=this.m_angularVelocity*-(this.m_sweep.c.y-d.y);this.m_linearVelocity.y+=this.m_angularVelocity*+(this.m_sweep.c.x-d.x)}};x.prototype.ResetMassData=function(){this.m_invI=this.m_I=this.m_invMass=this.m_mass=0;this.m_sweep.localCenter.SetZero();if(!(this.m_type==
x.b2_staticBody||this.m_type==x.b2_kinematicBody)){for(var c=e.Make(0,0),d=this.m_fixtureList;d;d=d.m_next)if(0!=d.m_density){var f=d.GetMassData();this.m_mass+=f.mass;c.x+=f.center.x*f.mass;c.y+=f.center.y*f.mass;this.m_I+=f.I}0<this.m_mass?(this.m_invMass=1/this.m_mass,c.x*=this.m_invMass,c.y*=this.m_invMass):this.m_invMass=this.m_mass=1;0<this.m_I&&0==(this.m_flags&x.e_fixedRotationFlag)?(this.m_I-=this.m_mass*(c.x*c.x+c.y*c.y),this.m_I*=this.m_inertiaScale,j.b2Assert(0<this.m_I),this.m_invI=1/
this.m_I):this.m_invI=this.m_I=0;d=this.m_sweep.c.Copy();this.m_sweep.localCenter.SetV(c);this.m_sweep.c0.SetV(b.MulX(this.m_xf,this.m_sweep.localCenter));this.m_sweep.c.SetV(this.m_sweep.c0);this.m_linearVelocity.x+=this.m_angularVelocity*-(this.m_sweep.c.y-d.y);this.m_linearVelocity.y+=this.m_angularVelocity*+(this.m_sweep.c.x-d.x)}};x.prototype.GetWorldPoint=function(b){var c=this.m_xf.R;b=new e(c.col1.x*b.x+c.col2.x*b.y,c.col1.y*b.x+c.col2.y*b.y);b.x+=this.m_xf.position.x;b.y+=this.m_xf.position.y;
return b};x.prototype.GetWorldVector=function(c){return b.MulMV(this.m_xf.R,c)};x.prototype.GetLocalPoint=function(c){return b.MulXT(this.m_xf,c)};x.prototype.GetLocalVector=function(c){return b.MulTMV(this.m_xf.R,c)};x.prototype.GetLinearVelocityFromWorldPoint=function(b){return new e(this.m_linearVelocity.x-this.m_angularVelocity*(b.y-this.m_sweep.c.y),this.m_linearVelocity.y+this.m_angularVelocity*(b.x-this.m_sweep.c.x))};x.prototype.GetLinearVelocityFromLocalPoint=function(b){var c=this.m_xf.R;
b=new e(c.col1.x*b.x+c.col2.x*b.y,c.col1.y*b.x+c.col2.y*b.y);b.x+=this.m_xf.position.x;b.y+=this.m_xf.position.y;return new e(this.m_linearVelocity.x-this.m_angularVelocity*(b.y-this.m_sweep.c.y),this.m_linearVelocity.y+this.m_angularVelocity*(b.x-this.m_sweep.c.x))};x.prototype.GetLinearDamping=function(){return this.m_linearDamping};x.prototype.SetLinearDamping=function(b){void 0===b&&(b=0);this.m_linearDamping=b};x.prototype.GetAngularDamping=function(){return this.m_angularDamping};x.prototype.SetAngularDamping=
function(b){void 0===b&&(b=0);this.m_angularDamping=b};x.prototype.SetType=function(b){void 0===b&&(b=0);if(this.m_type!=b){this.m_type=b;this.ResetMassData();this.m_type==x.b2_staticBody&&(this.m_linearVelocity.SetZero(),this.m_angularVelocity=0);this.SetAwake(!0);this.m_force.SetZero();this.m_torque=0;for(b=this.m_contactList;b;b=b.next)b.contact.FlagForFiltering()}};x.prototype.GetType=function(){return this.m_type};x.prototype.SetBullet=function(b){this.m_flags=b?this.m_flags|x.e_bulletFlag:this.m_flags&
~x.e_bulletFlag};x.prototype.IsBullet=function(){return(this.m_flags&x.e_bulletFlag)==x.e_bulletFlag};x.prototype.SetSleepingAllowed=function(b){b?this.m_flags|=x.e_allowSleepFlag:(this.m_flags&=~x.e_allowSleepFlag,this.SetAwake(!0))};x.prototype.SetAwake=function(b){b?(this.m_flags|=x.e_awakeFlag,this.m_sleepTime=0):(this.m_flags&=~x.e_awakeFlag,this.m_sleepTime=0,this.m_linearVelocity.SetZero(),this.m_angularVelocity=0,this.m_force.SetZero(),this.m_torque=0)};x.prototype.IsAwake=function(){return(this.m_flags&
x.e_awakeFlag)==x.e_awakeFlag};x.prototype.SetFixedRotation=function(b){this.m_flags=b?this.m_flags|x.e_fixedRotationFlag:this.m_flags&~x.e_fixedRotationFlag;this.ResetMassData()};x.prototype.IsFixedRotation=function(){return(this.m_flags&x.e_fixedRotationFlag)==x.e_fixedRotationFlag};x.prototype.SetActive=function(b){if(b!=this.IsActive()){var c;if(b){this.m_flags|=x.e_activeFlag;b=this.m_world.m_contactManager.m_broadPhase;for(c=this.m_fixtureList;c;c=c.m_next)c.CreateProxy(b,this.m_xf)}else{this.m_flags&=
~x.e_activeFlag;b=this.m_world.m_contactManager.m_broadPhase;for(c=this.m_fixtureList;c;c=c.m_next)c.DestroyProxy(b);for(b=this.m_contactList;b;)c=b,b=b.next,this.m_world.m_contactManager.Destroy(c.contact);this.m_contactList=null}}};x.prototype.IsActive=function(){return(this.m_flags&x.e_activeFlag)==x.e_activeFlag};x.prototype.IsSleepingAllowed=function(){return(this.m_flags&x.e_allowSleepFlag)==x.e_allowSleepFlag};x.prototype.GetFixtureList=function(){return this.m_fixtureList};x.prototype.GetJointList=
function(){return this.m_jointList};x.prototype.GetControllerList=function(){return this.m_controllerList};x.prototype.GetContactList=function(){return this.m_contactList};x.prototype.GetNext=function(){return this.m_next};x.prototype.GetUserData=function(){return this.m_userData};x.prototype.SetUserData=function(b){this.m_userData=b};x.prototype.GetWorld=function(){return this.m_world};x.prototype.b2Body=function(b,c){this.m_flags=0;b.bullet&&(this.m_flags|=x.e_bulletFlag);b.fixedRotation&&(this.m_flags|=
x.e_fixedRotationFlag);b.allowSleep&&(this.m_flags|=x.e_allowSleepFlag);b.awake&&(this.m_flags|=x.e_awakeFlag);b.active&&(this.m_flags|=x.e_activeFlag);this.m_world=c;this.m_xf.position.SetV(b.position);this.m_xf.R.Set(b.angle);this.m_sweep.localCenter.SetZero();this.m_sweep.t0=1;this.m_sweep.a0=this.m_sweep.a=b.angle;var d=this.m_xf.R,e=this.m_sweep.localCenter;this.m_sweep.c.x=d.col1.x*e.x+d.col2.x*e.y;this.m_sweep.c.y=d.col1.y*e.x+d.col2.y*e.y;this.m_sweep.c.x+=this.m_xf.position.x;this.m_sweep.c.y+=
this.m_xf.position.y;this.m_sweep.c0.SetV(this.m_sweep.c);this.m_contactList=this.m_controllerList=this.m_jointList=null;this.m_controllerCount=0;this.m_next=this.m_prev=null;this.m_linearVelocity.SetV(b.linearVelocity);this.m_angularVelocity=b.angularVelocity;this.m_linearDamping=b.linearDamping;this.m_angularDamping=b.angularDamping;this.m_force.Set(0,0);this.m_sleepTime=this.m_torque=0;this.m_type=b.type;this.m_invMass=this.m_type==x.b2_dynamicBody?this.m_mass=1:this.m_mass=0;this.m_invI=this.m_I=
0;this.m_inertiaScale=b.inertiaScale;this.m_userData=b.userData;this.m_fixtureList=null;this.m_fixtureCount=0};x.prototype.SynchronizeFixtures=function(){var b=x.s_xf1;b.R.Set(this.m_sweep.a0);var c=b.R,d=this.m_sweep.localCenter;b.position.x=this.m_sweep.c0.x-(c.col1.x*d.x+c.col2.x*d.y);b.position.y=this.m_sweep.c0.y-(c.col1.y*d.x+c.col2.y*d.y);d=this.m_world.m_contactManager.m_broadPhase;for(c=this.m_fixtureList;c;c=c.m_next)c.Synchronize(d,b,this.m_xf)};x.prototype.SynchronizeTransform=function(){this.m_xf.R.Set(this.m_sweep.a);
var b=this.m_xf.R,c=this.m_sweep.localCenter;this.m_xf.position.x=this.m_sweep.c.x-(b.col1.x*c.x+b.col2.x*c.y);this.m_xf.position.y=this.m_sweep.c.y-(b.col1.y*c.x+b.col2.y*c.y)};x.prototype.ShouldCollide=function(b){if(this.m_type!=x.b2_dynamicBody&&b.m_type!=x.b2_dynamicBody)return!1;for(var c=this.m_jointList;c;c=c.next)if(c.other==b&&!1==c.joint.m_collideConnected)return!1;return!0};x.prototype.Advance=function(b){void 0===b&&(b=0);this.m_sweep.Advance(b);this.m_sweep.c.SetV(this.m_sweep.c0);this.m_sweep.a=
this.m_sweep.a0;this.SynchronizeTransform()};Box2D.postDefs.push(function(){Box2D.Dynamics.b2Body.s_xf1=new d;Box2D.Dynamics.b2Body.e_islandFlag=1;Box2D.Dynamics.b2Body.e_awakeFlag=2;Box2D.Dynamics.b2Body.e_allowSleepFlag=4;Box2D.Dynamics.b2Body.e_bulletFlag=8;Box2D.Dynamics.b2Body.e_fixedRotationFlag=16;Box2D.Dynamics.b2Body.e_activeFlag=32;Box2D.Dynamics.b2Body.b2_staticBody=0;Box2D.Dynamics.b2Body.b2_kinematicBody=1;Box2D.Dynamics.b2Body.b2_dynamicBody=2});G.b2BodyDef=function(){this.position=
new e;this.linearVelocity=new e};G.prototype.b2BodyDef=function(){this.userData=null;this.position.Set(0,0);this.angle=0;this.linearVelocity.Set(0,0);this.angularDamping=this.linearDamping=this.angularVelocity=0;this.awake=this.allowSleep=!0;this.bullet=this.fixedRotation=!1;this.type=x.b2_staticBody;this.active=!0;this.inertiaScale=1};E.b2ContactFilter=function(){};E.prototype.ShouldCollide=function(b,c){var d=b.GetFilterData(),e=c.GetFilterData();return d.groupIndex==e.groupIndex&&0!=d.groupIndex?
0<d.groupIndex:0!=(d.maskBits&e.categoryBits)&&0!=(d.categoryBits&e.maskBits)};E.prototype.RayCollide=function(b,c){return!b?!0:this.ShouldCollide(b instanceof P?b:null,c)};Box2D.postDefs.push(function(){Box2D.Dynamics.b2ContactFilter.b2_defaultFilter=new E});L.b2ContactImpulse=function(){this.normalImpulses=new Vector_a2j_Number(j.b2_maxManifoldPoints);this.tangentImpulses=new Vector_a2j_Number(j.b2_maxManifoldPoints)};M.b2ContactListener=function(){};M.prototype.BeginContact=function(){};M.prototype.EndContact=
function(){};M.prototype.PreSolve=function(){};M.prototype.PostSolve=function(){};Box2D.postDefs.push(function(){Box2D.Dynamics.b2ContactListener.b2_defaultListener=new M});Q.b2ContactManager=function(){};Q.prototype.b2ContactManager=function(){this.m_world=null;this.m_contactCount=0;this.m_contactFilter=E.b2_defaultFilter;this.m_contactListener=M.b2_defaultListener;this.m_contactFactory=new C(this.m_allocator);this.m_broadPhase=new g};Q.prototype.AddPair=function(b,c){var d=b instanceof P?b:null,
e=c instanceof P?c:null,f=d.GetBody(),g=e.GetBody();if(f!=g){for(var j=g.GetContactList();j;){if(j.other==f){var s=j.contact.GetFixtureA(),u=j.contact.GetFixtureB();if(s==d&&u==e||s==e&&u==d)return}j=j.next}!1!=g.ShouldCollide(f)&&!1!=this.m_contactFilter.ShouldCollide(d,e)&&(j=this.m_contactFactory.Create(d,e),d=j.GetFixtureA(),e=j.GetFixtureB(),f=d.m_body,g=e.m_body,j.m_prev=null,j.m_next=this.m_world.m_contactList,null!=this.m_world.m_contactList&&(this.m_world.m_contactList.m_prev=j),this.m_world.m_contactList=
j,j.m_nodeA.contact=j,j.m_nodeA.other=g,j.m_nodeA.prev=null,j.m_nodeA.next=f.m_contactList,null!=f.m_contactList&&(f.m_contactList.prev=j.m_nodeA),f.m_contactList=j.m_nodeA,j.m_nodeB.contact=j,j.m_nodeB.other=f,j.m_nodeB.prev=null,j.m_nodeB.next=g.m_contactList,null!=g.m_contactList&&(g.m_contactList.prev=j.m_nodeB),g.m_contactList=j.m_nodeB,++this.m_world.m_contactCount)}};Q.prototype.FindNewContacts=function(){this.m_broadPhase.UpdatePairs(Box2D.generateCallback(this,this.AddPair))};Q.prototype.Destroy=
function(b){var c=b.GetFixtureA(),d=b.GetFixtureB(),c=c.GetBody(),d=d.GetBody();b.IsTouching()&&this.m_contactListener.EndContact(b);b.m_prev&&(b.m_prev.m_next=b.m_next);b.m_next&&(b.m_next.m_prev=b.m_prev);b==this.m_world.m_contactList&&(this.m_world.m_contactList=b.m_next);b.m_nodeA.prev&&(b.m_nodeA.prev.next=b.m_nodeA.next);b.m_nodeA.next&&(b.m_nodeA.next.prev=b.m_nodeA.prev);b.m_nodeA==c.m_contactList&&(c.m_contactList=b.m_nodeA.next);b.m_nodeB.prev&&(b.m_nodeB.prev.next=b.m_nodeB.next);b.m_nodeB.next&&
(b.m_nodeB.next.prev=b.m_nodeB.prev);b.m_nodeB==d.m_contactList&&(d.m_contactList=b.m_nodeB.next);this.m_contactFactory.Destroy(b);--this.m_contactCount};Q.prototype.Collide=function(){for(var b=this.m_world.m_contactList;b;){var c=b.GetFixtureA(),d=b.GetFixtureB(),e=c.GetBody(),f=d.GetBody();if(!1==e.IsAwake()&&!1==f.IsAwake())b=b.GetNext();else{if(b.m_flags&F.e_filterFlag){if(!1==f.ShouldCollide(e)){c=b;b=c.GetNext();this.Destroy(c);continue}if(!1==this.m_contactFilter.ShouldCollide(c,d)){c=b;b=
c.GetNext();this.Destroy(c);continue}b.m_flags&=~F.e_filterFlag}!1==this.m_broadPhase.TestOverlap(c.m_proxy,d.m_proxy)?(c=b,b=c.GetNext(),this.Destroy(c)):(b.Update(this.m_contactListener),b=b.GetNext())}}};Box2D.postDefs.push(function(){Box2D.Dynamics.b2ContactManager.s_evalCP=new m});J.b2DebugDraw=function(){};J.prototype.b2DebugDraw=function(){};J.prototype.SetFlags=function(){};J.prototype.GetFlags=function(){};J.prototype.AppendFlags=function(){};J.prototype.ClearFlags=function(){};J.prototype.SetSprite=
function(){};J.prototype.GetSprite=function(){};J.prototype.SetDrawScale=function(){};J.prototype.GetDrawScale=function(){};J.prototype.SetLineThickness=function(){};J.prototype.GetLineThickness=function(){};J.prototype.SetAlpha=function(){};J.prototype.GetAlpha=function(){};J.prototype.SetFillAlpha=function(){};J.prototype.GetFillAlpha=function(){};J.prototype.SetXFormScale=function(){};J.prototype.GetXFormScale=function(){};J.prototype.DrawPolygon=function(){};J.prototype.DrawSolidPolygon=function(){};
J.prototype.DrawCircle=function(){};J.prototype.DrawSolidCircle=function(){};J.prototype.DrawSegment=function(){};J.prototype.DrawTransform=function(){};Box2D.postDefs.push(function(){Box2D.Dynamics.b2DebugDraw.e_shapeBit=1;Box2D.Dynamics.b2DebugDraw.e_jointBit=2;Box2D.Dynamics.b2DebugDraw.e_aabbBit=4;Box2D.Dynamics.b2DebugDraw.e_pairBit=8;Box2D.Dynamics.b2DebugDraw.e_centerOfMassBit=16;Box2D.Dynamics.b2DebugDraw.e_controllerBit=32});fa.b2DestructionListener=function(){};fa.prototype.SayGoodbyeJoint=
function(){};fa.prototype.SayGoodbyeFixture=function(){};O.b2FilterData=function(){this.categoryBits=1;this.maskBits=65535;this.groupIndex=0};O.prototype.Copy=function(){var b=new O;b.categoryBits=this.categoryBits;b.maskBits=this.maskBits;b.groupIndex=this.groupIndex;return b};P.b2Fixture=function(){this.m_filter=new O};P.prototype.GetType=function(){return this.m_shape.GetType()};P.prototype.GetShape=function(){return this.m_shape};P.prototype.SetSensor=function(b){if(this.m_isSensor!=b&&(this.m_isSensor=
b,null!=this.m_body))for(b=this.m_body.GetContactList();b;){var c=b.contact,d=c.GetFixtureA(),e=c.GetFixtureB();if(d==this||e==this)c.SetSensor(d.IsSensor()||e.IsSensor());b=b.next}};P.prototype.IsSensor=function(){return this.m_isSensor};P.prototype.SetFilterData=function(b){this.m_filter=b.Copy();if(!this.m_body)for(b=this.m_body.GetContactList();b;){var c=b.contact,d=c.GetFixtureA(),e=c.GetFixtureB();(d==this||e==this)&&c.FlagForFiltering();b=b.next}};P.prototype.GetFilterData=function(){return this.m_filter.Copy()};
P.prototype.GetBody=function(){return this.m_body};P.prototype.GetNext=function(){return this.m_next};P.prototype.GetUserData=function(){return this.m_userData};P.prototype.SetUserData=function(b){this.m_userData=b};P.prototype.TestPoint=function(b){return this.m_shape.TestPoint(this.m_body.GetTransform(),b)};P.prototype.RayCast=function(b,c){return this.m_shape.RayCast(b,c,this.m_body.GetTransform())};P.prototype.GetMassData=function(b){void 0===b&&(b=null);null==b&&(b=new B);this.m_shape.ComputeMass(b,
this.m_density);return b};P.prototype.SetDensity=function(b){void 0===b&&(b=0);this.m_density=b};P.prototype.GetDensity=function(){return this.m_density};P.prototype.GetFriction=function(){return this.m_friction};P.prototype.SetFriction=function(b){void 0===b&&(b=0);this.m_friction=b};P.prototype.GetRestitution=function(){return this.m_restitution};P.prototype.SetRestitution=function(b){void 0===b&&(b=0);this.m_restitution=b};P.prototype.GetAABB=function(){return this.m_aabb};P.prototype.b2Fixture=
function(){this.m_aabb=new n;this.m_shape=this.m_next=this.m_body=this.m_userData=null;this.m_restitution=this.m_friction=this.m_density=0};P.prototype.Create=function(b,c,d){this.m_userData=d.userData;this.m_friction=d.friction;this.m_restitution=d.restitution;this.m_body=b;this.m_next=null;this.m_filter=d.filter.Copy();this.m_isSensor=d.isSensor;this.m_shape=d.shape.Copy();this.m_density=d.density};P.prototype.Destroy=function(){this.m_shape=null};P.prototype.CreateProxy=function(b,c){this.m_shape.ComputeAABB(this.m_aabb,
c);this.m_proxy=b.CreateProxy(this.m_aabb,this)};P.prototype.DestroyProxy=function(b){null!=this.m_proxy&&(b.DestroyProxy(this.m_proxy),this.m_proxy=null)};P.prototype.Synchronize=function(c,d,e){if(this.m_proxy){var f=new n,j=new n;this.m_shape.ComputeAABB(f,d);this.m_shape.ComputeAABB(j,e);this.m_aabb.Combine(f,j);d=b.SubtractVV(e.position,d.position);c.MoveProxy(this.m_proxy,this.m_aabb,d)}};ba.b2FixtureDef=function(){this.filter=new O};ba.prototype.b2FixtureDef=function(){this.userData=this.shape=
null;this.friction=0.2;this.density=this.restitution=0;this.filter.categoryBits=1;this.filter.maskBits=65535;this.filter.groupIndex=0;this.isSensor=!1};U.b2Island=function(){};U.prototype.b2Island=function(){this.m_bodies=new Vector;this.m_contacts=new Vector;this.m_joints=new Vector};U.prototype.Initialize=function(b,c,d,e,f,j){void 0===b&&(b=0);void 0===c&&(c=0);void 0===d&&(d=0);var g=0;this.m_bodyCapacity=b;this.m_contactCapacity=c;this.m_jointCapacity=d;this.m_jointCount=this.m_contactCount=
this.m_bodyCount=0;this.m_allocator=e;this.m_listener=f;this.m_contactSolver=j;for(g=this.m_bodies.length;g<b;g++)this.m_bodies[g]=null;for(g=this.m_contacts.length;g<c;g++)this.m_contacts[g]=null;for(g=this.m_joints.length;g<d;g++)this.m_joints[g]=null};U.prototype.Clear=function(){this.m_jointCount=this.m_contactCount=this.m_bodyCount=0};U.prototype.Solve=function(c,d,e){for(var f=0,g=0,s,f=0;f<this.m_bodyCount;++f)g=this.m_bodies[f],g.GetType()==x.b2_dynamicBody&&(g.m_linearVelocity.x+=c.dt*(d.x+
g.m_invMass*g.m_force.x),g.m_linearVelocity.y+=c.dt*(d.y+g.m_invMass*g.m_force.y),g.m_angularVelocity+=c.dt*g.m_invI*g.m_torque,g.m_linearVelocity.Multiply(b.Clamp(1-c.dt*g.m_linearDamping,0,1)),g.m_angularVelocity*=b.Clamp(1-c.dt*g.m_angularDamping,0,1));this.m_contactSolver.Initialize(c,this.m_contacts,this.m_contactCount,this.m_allocator);d=this.m_contactSolver;d.InitVelocityConstraints(c);for(f=0;f<this.m_jointCount;++f)s=this.m_joints[f],s.InitVelocityConstraints(c);for(f=0;f<c.velocityIterations;++f){for(g=
0;g<this.m_jointCount;++g)s=this.m_joints[g],s.SolveVelocityConstraints(c);d.SolveVelocityConstraints()}for(f=0;f<this.m_jointCount;++f)s=this.m_joints[f],s.FinalizeVelocityConstraints();d.FinalizeVelocityConstraints();for(f=0;f<this.m_bodyCount;++f)if(g=this.m_bodies[f],g.GetType()!=x.b2_staticBody){var u=c.dt*g.m_linearVelocity.x,C=c.dt*g.m_linearVelocity.y;u*u+C*C>j.b2_maxTranslationSquared&&(g.m_linearVelocity.Normalize(),g.m_linearVelocity.x*=j.b2_maxTranslation*c.inv_dt,g.m_linearVelocity.y*=
j.b2_maxTranslation*c.inv_dt);u=c.dt*g.m_angularVelocity;u*u>j.b2_maxRotationSquared&&(g.m_angularVelocity=0>g.m_angularVelocity?-j.b2_maxRotation*c.inv_dt:j.b2_maxRotation*c.inv_dt);g.m_sweep.c0.SetV(g.m_sweep.c);g.m_sweep.a0=g.m_sweep.a;g.m_sweep.c.x+=c.dt*g.m_linearVelocity.x;g.m_sweep.c.y+=c.dt*g.m_linearVelocity.y;g.m_sweep.a+=c.dt*g.m_angularVelocity;g.SynchronizeTransform()}for(f=0;f<c.positionIterations;++f){u=d.SolvePositionConstraints(j.b2_contactBaumgarte);C=!0;for(g=0;g<this.m_jointCount;++g)s=
this.m_joints[g],s=s.SolvePositionConstraints(j.b2_contactBaumgarte),C=C&&s;if(u&&C)break}this.Report(d.m_constraints);if(e){e=Number.MAX_VALUE;d=j.b2_linearSleepTolerance*j.b2_linearSleepTolerance;u=j.b2_angularSleepTolerance*j.b2_angularSleepTolerance;for(f=0;f<this.m_bodyCount;++f)g=this.m_bodies[f],g.GetType()!=x.b2_staticBody&&(0==(g.m_flags&x.e_allowSleepFlag)&&(e=g.m_sleepTime=0),0==(g.m_flags&x.e_allowSleepFlag)||g.m_angularVelocity*g.m_angularVelocity>u||b.Dot(g.m_linearVelocity,g.m_linearVelocity)>
d?e=g.m_sleepTime=0:(g.m_sleepTime+=c.dt,e=b.Min(e,g.m_sleepTime)));if(e>=j.b2_timeToSleep)for(f=0;f<this.m_bodyCount;++f)g=this.m_bodies[f],g.SetAwake(!1)}};U.prototype.SolveTOI=function(b){var c=0,d=0;this.m_contactSolver.Initialize(b,this.m_contacts,this.m_contactCount,this.m_allocator);for(var e=this.m_contactSolver,c=0;c<this.m_jointCount;++c)this.m_joints[c].InitVelocityConstraints(b);for(c=0;c<b.velocityIterations;++c){e.SolveVelocityConstraints();for(d=0;d<this.m_jointCount;++d)this.m_joints[d].SolveVelocityConstraints(b)}for(c=
0;c<this.m_bodyCount;++c)if(d=this.m_bodies[c],d.GetType()!=x.b2_staticBody){var f=b.dt*d.m_linearVelocity.x,g=b.dt*d.m_linearVelocity.y;f*f+g*g>j.b2_maxTranslationSquared&&(d.m_linearVelocity.Normalize(),d.m_linearVelocity.x*=j.b2_maxTranslation*b.inv_dt,d.m_linearVelocity.y*=j.b2_maxTranslation*b.inv_dt);f=b.dt*d.m_angularVelocity;f*f>j.b2_maxRotationSquared&&(d.m_angularVelocity=0>d.m_angularVelocity?-j.b2_maxRotation*b.inv_dt:j.b2_maxRotation*b.inv_dt);d.m_sweep.c0.SetV(d.m_sweep.c);d.m_sweep.a0=
d.m_sweep.a;d.m_sweep.c.x+=b.dt*d.m_linearVelocity.x;d.m_sweep.c.y+=b.dt*d.m_linearVelocity.y;d.m_sweep.a+=b.dt*d.m_angularVelocity;d.SynchronizeTransform()}for(c=0;c<b.positionIterations;++c){f=e.SolvePositionConstraints(0.75);g=!0;for(d=0;d<this.m_jointCount;++d)var s=this.m_joints[d].SolvePositionConstraints(j.b2_contactBaumgarte),g=g&&s;if(f&&g)break}this.Report(e.m_constraints)};U.prototype.Report=function(b){if(null!=this.m_listener)for(var c=0;c<this.m_contactCount;++c){for(var d=this.m_contacts[c],
e=b[c],f=0;f<e.pointCount;++f)U.s_impulse.normalImpulses[f]=e.points[f].normalImpulse,U.s_impulse.tangentImpulses[f]=e.points[f].tangentImpulse;this.m_listener.PostSolve(d,U.s_impulse)}};U.prototype.AddBody=function(b){b.m_islandIndex=this.m_bodyCount;this.m_bodies[this.m_bodyCount++]=b};U.prototype.AddContact=function(b){this.m_contacts[this.m_contactCount++]=b};U.prototype.AddJoint=function(b){this.m_joints[this.m_jointCount++]=b};Box2D.postDefs.push(function(){Box2D.Dynamics.b2Island.s_impulse=
new L});s.b2TimeStep=function(){};s.prototype.Set=function(b){this.dt=b.dt;this.inv_dt=b.inv_dt;this.positionIterations=b.positionIterations;this.velocityIterations=b.velocityIterations;this.warmStarting=b.warmStarting};u.b2World=function(){this.s_stack=new Vector;this.m_contactManager=new Q;this.m_contactSolver=new H;this.m_island=new U};u.prototype.b2World=function(b,c){this.m_controllerList=this.m_jointList=this.m_contactList=this.m_bodyList=this.m_debugDraw=this.m_destructionListener=null;this.m_controllerCount=
this.m_jointCount=this.m_contactCount=this.m_bodyCount=0;u.m_warmStarting=!0;u.m_continuousPhysics=!0;this.m_allowSleep=c;this.m_gravity=b;this.m_inv_dt0=0;this.m_contactManager.m_world=this;this.m_groundBody=this.CreateBody(new G)};u.prototype.SetDestructionListener=function(b){this.m_destructionListener=b};u.prototype.SetContactFilter=function(b){this.m_contactManager.m_contactFilter=b};u.prototype.SetContactListener=function(b){this.m_contactManager.m_contactListener=b};u.prototype.SetDebugDraw=
function(b){this.m_debugDraw=b};u.prototype.SetBroadPhase=function(b){var c=this.m_contactManager.m_broadPhase;this.m_contactManager.m_broadPhase=b;for(var d=this.m_bodyList;d;d=d.m_next)for(var e=d.m_fixtureList;e;e=e.m_next)e.m_proxy=b.CreateProxy(c.GetFatAABB(e.m_proxy),e)};u.prototype.Validate=function(){this.m_contactManager.m_broadPhase.Validate()};u.prototype.GetProxyCount=function(){return this.m_contactManager.m_broadPhase.GetProxyCount()};u.prototype.CreateBody=function(b){if(!0==this.IsLocked())return null;
b=new x(b,this);b.m_prev=null;if(b.m_next=this.m_bodyList)this.m_bodyList.m_prev=b;this.m_bodyList=b;++this.m_bodyCount;return b};u.prototype.DestroyBody=function(b){if(!0!=this.IsLocked()){for(var c=b.m_jointList;c;){var d=c,c=c.next;this.m_destructionListener&&this.m_destructionListener.SayGoodbyeJoint(d.joint);this.DestroyJoint(d.joint)}for(c=b.m_controllerList;c;)d=c,c=c.nextController,d.controller.RemoveBody(b);for(c=b.m_contactList;c;)d=c,c=c.next,this.m_contactManager.Destroy(d.contact);b.m_contactList=
null;for(c=b.m_fixtureList;c;)d=c,c=c.m_next,this.m_destructionListener&&this.m_destructionListener.SayGoodbyeFixture(d),d.DestroyProxy(this.m_contactManager.m_broadPhase),d.Destroy();b.m_fixtureList=null;b.m_fixtureCount=0;b.m_prev&&(b.m_prev.m_next=b.m_next);b.m_next&&(b.m_next.m_prev=b.m_prev);b==this.m_bodyList&&(this.m_bodyList=b.m_next);--this.m_bodyCount}};u.prototype.CreateJoint=function(b){var c=Z.Create(b,null);c.m_prev=null;if(c.m_next=this.m_jointList)this.m_jointList.m_prev=c;this.m_jointList=
c;++this.m_jointCount;c.m_edgeA.joint=c;c.m_edgeA.other=c.m_bodyB;c.m_edgeA.prev=null;if(c.m_edgeA.next=c.m_bodyA.m_jointList)c.m_bodyA.m_jointList.prev=c.m_edgeA;c.m_bodyA.m_jointList=c.m_edgeA;c.m_edgeB.joint=c;c.m_edgeB.other=c.m_bodyA;c.m_edgeB.prev=null;if(c.m_edgeB.next=c.m_bodyB.m_jointList)c.m_bodyB.m_jointList.prev=c.m_edgeB;c.m_bodyB.m_jointList=c.m_edgeB;var d=b.bodyA,e=b.bodyB;if(!1==b.collideConnected)for(b=e.GetContactList();b;)b.other==d&&b.contact.FlagForFiltering(),b=b.next;return c};
u.prototype.DestroyJoint=function(b){var c=b.m_collideConnected;b.m_prev&&(b.m_prev.m_next=b.m_next);b.m_next&&(b.m_next.m_prev=b.m_prev);b==this.m_jointList&&(this.m_jointList=b.m_next);var d=b.m_bodyA,e=b.m_bodyB;d.SetAwake(!0);e.SetAwake(!0);b.m_edgeA.prev&&(b.m_edgeA.prev.next=b.m_edgeA.next);b.m_edgeA.next&&(b.m_edgeA.next.prev=b.m_edgeA.prev);b.m_edgeA==d.m_jointList&&(d.m_jointList=b.m_edgeA.next);b.m_edgeA.prev=null;b.m_edgeA.next=null;b.m_edgeB.prev&&(b.m_edgeB.prev.next=b.m_edgeB.next);
b.m_edgeB.next&&(b.m_edgeB.next.prev=b.m_edgeB.prev);b.m_edgeB==e.m_jointList&&(e.m_jointList=b.m_edgeB.next);b.m_edgeB.prev=null;b.m_edgeB.next=null;Z.Destroy(b,null);--this.m_jointCount;if(!1==c)for(b=e.GetContactList();b;)b.other==d&&b.contact.FlagForFiltering(),b=b.next};u.prototype.AddController=function(b){b.m_next=this.m_controllerList;b.m_prev=null;this.m_controllerList=b;b.m_world=this;this.m_controllerCount++;return b};u.prototype.RemoveController=function(b){b.m_prev&&(b.m_prev.m_next=
b.m_next);b.m_next&&(b.m_next.m_prev=b.m_prev);this.m_controllerList==b&&(this.m_controllerList=b.m_next);this.m_controllerCount--};u.prototype.CreateController=function(b){if(b.m_world!=this)throw Error("Controller can only be a member of one world");b.m_next=this.m_controllerList;b.m_prev=null;this.m_controllerList&&(this.m_controllerList.m_prev=b);this.m_controllerList=b;++this.m_controllerCount;b.m_world=this;return b};u.prototype.DestroyController=function(b){b.Clear();b.m_next&&(b.m_next.m_prev=
b.m_prev);b.m_prev&&(b.m_prev.m_next=b.m_next);b==this.m_controllerList&&(this.m_controllerList=b.m_next);--this.m_controllerCount};u.prototype.SetWarmStarting=function(b){u.m_warmStarting=b};u.prototype.SetContinuousPhysics=function(b){u.m_continuousPhysics=b};u.prototype.GetBodyCount=function(){return this.m_bodyCount};u.prototype.GetJointCount=function(){return this.m_jointCount};u.prototype.GetContactCount=function(){return this.m_contactCount};u.prototype.SetGravity=function(b){this.m_gravity=
b};u.prototype.GetGravity=function(){return this.m_gravity};u.prototype.GetGroundBody=function(){return this.m_groundBody};u.prototype.Step=function(b,c,d){void 0===b&&(b=0);void 0===c&&(c=0);void 0===d&&(d=0);this.m_flags&u.e_newFixture&&(this.m_contactManager.FindNewContacts(),this.m_flags&=~u.e_newFixture);this.m_flags|=u.e_locked;var e=u.s_timestep2;e.dt=b;e.velocityIterations=c;e.positionIterations=d;e.inv_dt=0<b?1/b:0;e.dtRatio=this.m_inv_dt0*b;e.warmStarting=u.m_warmStarting;this.m_contactManager.Collide();
0<e.dt&&this.Solve(e);u.m_continuousPhysics&&0<e.dt&&this.SolveTOI(e);0<e.dt&&(this.m_inv_dt0=e.inv_dt);this.m_flags&=~u.e_locked};u.prototype.ClearForces=function(){for(var b=this.m_bodyList;b;b=b.m_next)b.m_force.SetZero(),b.m_torque=0};u.prototype.DrawDebugData=function(){if(null!=this.m_debugDraw){this.m_debugDraw.m_sprite.graphics.clear();var b=this.m_debugDraw.GetFlags(),c,d,g;new e;new e;new e;var j;new n;new n;new e;new e;new e;new e;var s=new f(0,0,0);if(b&J.e_shapeBit)for(c=this.m_bodyList;c;c=
c.m_next){j=c.m_xf;for(d=c.GetFixtureList();d;d=d.m_next)g=d.GetShape(),!1==c.IsActive()?s.Set(0.5,0.5,0.3):c.GetType()==x.b2_staticBody?s.Set(0.5,0.9,0.5):c.GetType()==x.b2_kinematicBody?s.Set(0.5,0.5,0.9):!1==c.IsAwake()?s.Set(0.6,0.6,0.6):s.Set(0.9,0.7,0.7),this.DrawShape(g,j,s)}if(b&J.e_jointBit)for(c=this.m_jointList;c;c=c.m_next)this.DrawJoint(c);if(b&J.e_controllerBit)for(c=this.m_controllerList;c;c=c.m_next)c.Draw(this.m_debugDraw);if(b&J.e_pairBit){s.Set(0.3,0.9,0.9);for(c=this.m_contactManager.m_contactList;c;c=
c.GetNext())g=c.GetFixtureA(),d=c.GetFixtureB(),g=g.GetAABB().GetCenter(),d=d.GetAABB().GetCenter(),this.m_debugDraw.DrawSegment(g,d,s)}if(b&J.e_aabbBit){g=this.m_contactManager.m_broadPhase;j=[new e,new e,new e,new e];for(c=this.m_bodyList;c;c=c.GetNext())if(!1!=c.IsActive())for(d=c.GetFixtureList();d;d=d.GetNext()){var C=g.GetFatAABB(d.m_proxy);j[0].Set(C.lowerBound.x,C.lowerBound.y);j[1].Set(C.upperBound.x,C.lowerBound.y);j[2].Set(C.upperBound.x,C.upperBound.y);j[3].Set(C.lowerBound.x,C.upperBound.y);
this.m_debugDraw.DrawPolygon(j,4,s)}}if(b&J.e_centerOfMassBit)for(c=this.m_bodyList;c;c=c.m_next)j=u.s_xf,j.R=c.m_xf.R,j.position=c.GetWorldCenter(),this.m_debugDraw.DrawTransform(j)}};u.prototype.QueryAABB=function(b,c){var d=this.m_contactManager.m_broadPhase;d.Query(function(c){return b(d.GetUserData(c))},c)};u.prototype.QueryShape=function(b,c,e){void 0===e&&(e=null);null==e&&(e=new d,e.SetIdentity());var f=this.m_contactManager.m_broadPhase,g=new n;c.ComputeAABB(g,e);f.Query(function(d){d=f.GetUserData(d)instanceof
P?f.GetUserData(d):null;return D.TestOverlap(c,e,d.GetShape(),d.GetBody().GetTransform())?b(d):!0},g)};u.prototype.QueryPoint=function(b,c){var d=this.m_contactManager.m_broadPhase,e=new n;e.lowerBound.Set(c.x-j.b2_linearSlop,c.y-j.b2_linearSlop);e.upperBound.Set(c.x+j.b2_linearSlop,c.y+j.b2_linearSlop);d.Query(function(e){e=d.GetUserData(e)instanceof P?d.GetUserData(e):null;return e.TestPoint(c)?b(e):!0},e)};u.prototype.RayCast=function(b,c,d){var f=this.m_contactManager.m_broadPhase,g=new z,j=new t(c,
d);f.RayCast(function(j,s){var u=f.GetUserData(s),u=u instanceof P?u:null;if(u.RayCast(g,j)){var C=g.fraction,m=new e((1-C)*c.x+C*d.x,(1-C)*c.y+C*d.y);return b(u,m,g.normal,C)}return j.maxFraction},j)};u.prototype.RayCastOne=function(b,c){var d;this.RayCast(function(b,c,e,f){void 0===f&&(f=0);d=b;return f},b,c);return d};u.prototype.RayCastAll=function(b,c){var d=new Vector;this.RayCast(function(b){d[d.length]=b;return 1},b,c);return d};u.prototype.GetBodyList=function(){return this.m_bodyList};u.prototype.GetJointList=
function(){return this.m_jointList};u.prototype.GetContactList=function(){return this.m_contactList};u.prototype.IsLocked=function(){return 0<(this.m_flags&u.e_locked)};u.prototype.Solve=function(b){for(var c,d=this.m_controllerList;d;d=d.m_next)d.Step(b);d=this.m_island;d.Initialize(this.m_bodyCount,this.m_contactCount,this.m_jointCount,null,this.m_contactManager.m_contactListener,this.m_contactSolver);for(c=this.m_bodyList;c;c=c.m_next)c.m_flags&=~x.e_islandFlag;for(var e=this.m_contactList;e;e=
e.m_next)e.m_flags&=~F.e_islandFlag;for(e=this.m_jointList;e;e=e.m_next)e.m_islandFlag=!1;parseInt(this.m_bodyCount);for(var e=this.s_stack,f=this.m_bodyList;f;f=f.m_next)if(!(f.m_flags&x.e_islandFlag)&&!(!1==f.IsAwake()||!1==f.IsActive())&&f.GetType()!=x.b2_staticBody){d.Clear();var g=0;e[g++]=f;for(f.m_flags|=x.e_islandFlag;0<g;)if(c=e[--g],d.AddBody(c),!1==c.IsAwake()&&c.SetAwake(!0),c.GetType()!=x.b2_staticBody){for(var j,s=c.m_contactList;s;s=s.next)if(!(s.contact.m_flags&F.e_islandFlag)&&!(!0==
s.contact.IsSensor()||!1==s.contact.IsEnabled()||!1==s.contact.IsTouching()))d.AddContact(s.contact),s.contact.m_flags|=F.e_islandFlag,j=s.other,j.m_flags&x.e_islandFlag||(e[g++]=j,j.m_flags|=x.e_islandFlag);for(c=c.m_jointList;c;c=c.next)!0!=c.joint.m_islandFlag&&(j=c.other,!1!=j.IsActive()&&(d.AddJoint(c.joint),c.joint.m_islandFlag=!0,j.m_flags&x.e_islandFlag||(e[g++]=j,j.m_flags|=x.e_islandFlag)))}d.Solve(b,this.m_gravity,this.m_allowSleep);for(g=0;g<d.m_bodyCount;++g)c=d.m_bodies[g],c.GetType()==
x.b2_staticBody&&(c.m_flags&=~x.e_islandFlag)}for(g=0;g<e.length&&e[g];++g)e[g]=null;for(c=this.m_bodyList;c;c=c.m_next)!1==c.IsAwake()||!1==c.IsActive()||c.GetType()!=x.b2_staticBody&&c.SynchronizeFixtures();this.m_contactManager.FindNewContacts()};u.prototype.SolveTOI=function(b){var c,d,e,f=this.m_island;f.Initialize(this.m_bodyCount,j.b2_maxTOIContactsPerIsland,j.b2_maxTOIJointsPerIsland,null,this.m_contactManager.m_contactListener,this.m_contactSolver);var g=u.s_queue;for(c=this.m_bodyList;c;c=
c.m_next)c.m_flags&=~x.e_islandFlag,c.m_sweep.t0=0;for(e=this.m_contactList;e;e=e.m_next)e.m_flags&=~(F.e_toiFlag|F.e_islandFlag);for(e=this.m_jointList;e;e=e.m_next)e.m_islandFlag=!1;for(;;){var s=null,C=1;for(e=this.m_contactList;e;e=e.m_next)if(!(!0==e.IsSensor()||!1==e.IsEnabled()||!1==e.IsContinuous())){if(e.m_flags&F.e_toiFlag)c=e.m_toi;else{c=e.m_fixtureA;d=e.m_fixtureB;c=c.m_body;d=d.m_body;if((c.GetType()!=x.b2_dynamicBody||!1==c.IsAwake())&&(d.GetType()!=x.b2_dynamicBody||!1==d.IsAwake()))continue;
var m=c.m_sweep.t0;c.m_sweep.t0<d.m_sweep.t0?(m=d.m_sweep.t0,c.m_sweep.Advance(m)):d.m_sweep.t0<c.m_sweep.t0&&(m=c.m_sweep.t0,d.m_sweep.Advance(m));c=e.ComputeTOI(c.m_sweep,d.m_sweep);j.b2Assert(0<=c&&1>=c);0<c&&1>c&&(c=(1-c)*m+c,1<c&&(c=1));e.m_toi=c;e.m_flags|=F.e_toiFlag}Number.MIN_VALUE<c&&c<C&&(s=e,C=c)}if(null==s||1-100*Number.MIN_VALUE<C)break;c=s.m_fixtureA;d=s.m_fixtureB;c=c.m_body;d=d.m_body;u.s_backupA.Set(c.m_sweep);u.s_backupB.Set(d.m_sweep);c.Advance(C);d.Advance(C);s.Update(this.m_contactManager.m_contactListener);
s.m_flags&=~F.e_toiFlag;if(!0==s.IsSensor()||!1==s.IsEnabled())c.m_sweep.Set(u.s_backupA),d.m_sweep.Set(u.s_backupB),c.SynchronizeTransform(),d.SynchronizeTransform();else if(!1!=s.IsTouching()){c.GetType()!=x.b2_dynamicBody&&(c=d);f.Clear();s=e=0;g[e+s++]=c;for(c.m_flags|=x.e_islandFlag;0<s;)if(c=g[e++],--s,f.AddBody(c),!1==c.IsAwake()&&c.SetAwake(!0),c.GetType()==x.b2_dynamicBody){for(d=c.m_contactList;d&&f.m_contactCount!=f.m_contactCapacity;d=d.next)if(!(d.contact.m_flags&F.e_islandFlag)&&!(!0==
d.contact.IsSensor()||!1==d.contact.IsEnabled()||!1==d.contact.IsTouching()))f.AddContact(d.contact),d.contact.m_flags|=F.e_islandFlag,m=d.other,m.m_flags&x.e_islandFlag||(m.GetType()!=x.b2_staticBody&&(m.Advance(C),m.SetAwake(!0)),g[e+s]=m,++s,m.m_flags|=x.e_islandFlag);for(c=c.m_jointList;c;c=c.next)f.m_jointCount!=f.m_jointCapacity&&!0!=c.joint.m_islandFlag&&(m=c.other,!1!=m.IsActive()&&(f.AddJoint(c.joint),c.joint.m_islandFlag=!0,m.m_flags&x.e_islandFlag||(m.GetType()!=x.b2_staticBody&&(m.Advance(C),
m.SetAwake(!0)),g[e+s]=m,++s,m.m_flags|=x.e_islandFlag)))}e=u.s_timestep;e.warmStarting=!1;e.dt=(1-C)*b.dt;e.inv_dt=1/e.dt;e.dtRatio=0;e.velocityIterations=b.velocityIterations;e.positionIterations=b.positionIterations;f.SolveTOI(e);for(C=C=0;C<f.m_bodyCount;++C)if(c=f.m_bodies[C],c.m_flags&=~x.e_islandFlag,!1!=c.IsAwake()&&c.GetType()==x.b2_dynamicBody){c.SynchronizeFixtures();for(d=c.m_contactList;d;d=d.next)d.contact.m_flags&=~F.e_toiFlag}for(C=0;C<f.m_contactCount;++C)e=f.m_contacts[C],e.m_flags&=
~(F.e_toiFlag|F.e_islandFlag);for(C=0;C<f.m_jointCount;++C)e=f.m_joints[C],e.m_islandFlag=!1;this.m_contactManager.FindNewContacts()}}};u.prototype.DrawJoint=function(b){var c=b.GetBodyA(),d=b.GetBodyB(),e=c.m_xf.position,f=d.m_xf.position,g=b.GetAnchorA(),j=b.GetAnchorB(),s=u.s_jointColor;switch(b.m_type){case Z.e_distanceJoint:this.m_debugDraw.DrawSegment(g,j,s);break;case Z.e_pulleyJoint:c=b instanceof R?b:null;b=c.GetGroundAnchorA();c=c.GetGroundAnchorB();this.m_debugDraw.DrawSegment(b,g,s);this.m_debugDraw.DrawSegment(c,
j,s);this.m_debugDraw.DrawSegment(b,c,s);break;case Z.e_mouseJoint:this.m_debugDraw.DrawSegment(g,j,s);break;default:c!=this.m_groundBody&&this.m_debugDraw.DrawSegment(e,g,s),this.m_debugDraw.DrawSegment(g,j,s),d!=this.m_groundBody&&this.m_debugDraw.DrawSegment(f,j,s)}};u.prototype.DrawShape=function(c,d,e){switch(c.m_type){case D.e_circleShape:var f=c instanceof y?c:null;this.m_debugDraw.DrawSolidCircle(b.MulX(d,f.m_p),f.m_radius,d.R.col1,e);break;case D.e_polygonShape:f=c instanceof I?c:null;c=
parseInt(f.GetVertexCount());for(var g=f.GetVertices(),j=new Vector(c),f=0;f<c;++f)j[f]=b.MulX(d,g[f]);this.m_debugDraw.DrawSolidPolygon(j,c,e);break;case D.e_edgeShape:f=c instanceof A?c:null,this.m_debugDraw.DrawSegment(b.MulX(d,f.GetVertex1()),b.MulX(d,f.GetVertex2()),e)}};Box2D.postDefs.push(function(){Box2D.Dynamics.b2World.s_timestep2=new s;Box2D.Dynamics.b2World.s_xf=new d;Box2D.Dynamics.b2World.s_backupA=new c;Box2D.Dynamics.b2World.s_backupB=new c;Box2D.Dynamics.b2World.s_timestep=new s;
Box2D.Dynamics.b2World.s_queue=new Vector;Box2D.Dynamics.b2World.s_jointColor=new f(0.5,0.8,0.8);Box2D.Dynamics.b2World.e_newFixture=1;Box2D.Dynamics.b2World.e_locked=2})})();
(function(){var b=Box2D.Collision.Shapes.b2CircleShape,c=Box2D.Collision.Shapes.b2EdgeShape,d=Box2D.Collision.Shapes.b2PolygonShape,e=Box2D.Collision.Shapes.b2Shape,f=Box2D.Dynamics.Contacts.b2CircleContact,j=Box2D.Dynamics.Contacts.b2Contact,n=Box2D.Dynamics.Contacts.b2ContactConstraint,m=Box2D.Dynamics.Contacts.b2ContactConstraintPoint,g=Box2D.Dynamics.Contacts.b2ContactEdge,t=Box2D.Dynamics.Contacts.b2ContactFactory,z=Box2D.Dynamics.Contacts.b2ContactRegister,y=Box2D.Dynamics.Contacts.b2ContactResult,
A=Box2D.Dynamics.Contacts.b2ContactSolver,B=Box2D.Dynamics.Contacts.b2EdgeAndCircleContact,I=Box2D.Dynamics.Contacts.b2NullContact,D=Box2D.Dynamics.Contacts.b2PolyAndCircleContact,x=Box2D.Dynamics.Contacts.b2PolyAndEdgeContact,G=Box2D.Dynamics.Contacts.b2PolygonContact,E=Box2D.Dynamics.Contacts.b2PositionSolverManifold,L=Box2D.Dynamics.b2Body,M=Box2D.Dynamics.b2TimeStep,Q=Box2D.Common.b2Settings,J=Box2D.Common.Math.b2Mat22,fa=Box2D.Common.Math.b2Math,O=Box2D.Common.Math.b2Vec2,P=Box2D.Collision.b2Collision,
ba=Box2D.Collision.b2ContactID,U=Box2D.Collision.b2Manifold,s=Box2D.Collision.b2TimeOfImpact,u=Box2D.Collision.b2TOIInput,F=Box2D.Collision.b2WorldManifold;Box2D.inherit(f,Box2D.Dynamics.Contacts.b2Contact);f.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;f.b2CircleContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};f.Create=function(){return new f};f.Destroy=function(){};f.prototype.Reset=function(b,c){this.__super.Reset.call(this,b,c)};f.prototype.Evaluate=
function(){var c=this.m_fixtureA.GetBody(),d=this.m_fixtureB.GetBody();P.CollideCircles(this.m_manifold,this.m_fixtureA.GetShape()instanceof b?this.m_fixtureA.GetShape():null,c.m_xf,this.m_fixtureB.GetShape()instanceof b?this.m_fixtureB.GetShape():null,d.m_xf)};j.b2Contact=function(){this.m_nodeA=new g;this.m_nodeB=new g;this.m_manifold=new U;this.m_oldManifold=new U};j.prototype.GetManifold=function(){return this.m_manifold};j.prototype.GetWorldManifold=function(b){var c=this.m_fixtureA.GetBody(),
d=this.m_fixtureB.GetBody(),e=this.m_fixtureA.GetShape(),f=this.m_fixtureB.GetShape();b.Initialize(this.m_manifold,c.GetTransform(),e.m_radius,d.GetTransform(),f.m_radius)};j.prototype.IsTouching=function(){return(this.m_flags&j.e_touchingFlag)==j.e_touchingFlag};j.prototype.IsContinuous=function(){return(this.m_flags&j.e_continuousFlag)==j.e_continuousFlag};j.prototype.SetSensor=function(b){this.m_flags=b?this.m_flags|j.e_sensorFlag:this.m_flags&~j.e_sensorFlag};j.prototype.IsSensor=function(){return(this.m_flags&
j.e_sensorFlag)==j.e_sensorFlag};j.prototype.SetEnabled=function(b){this.m_flags=b?this.m_flags|j.e_enabledFlag:this.m_flags&~j.e_enabledFlag};j.prototype.IsEnabled=function(){return(this.m_flags&j.e_enabledFlag)==j.e_enabledFlag};j.prototype.GetNext=function(){return this.m_next};j.prototype.GetFixtureA=function(){return this.m_fixtureA};j.prototype.GetFixtureB=function(){return this.m_fixtureB};j.prototype.FlagForFiltering=function(){this.m_flags|=j.e_filterFlag};j.prototype.b2Contact=function(){};
j.prototype.Reset=function(b,c){void 0===b&&(b=null);void 0===c&&(c=null);this.m_flags=j.e_enabledFlag;if(!b||!c)this.m_fixtureB=this.m_fixtureA=null;else{if(b.IsSensor()||c.IsSensor())this.m_flags|=j.e_sensorFlag;var d=b.GetBody(),e=c.GetBody();if(d.GetType()!=L.b2_dynamicBody||d.IsBullet()||e.GetType()!=L.b2_dynamicBody||e.IsBullet())this.m_flags|=j.e_continuousFlag;this.m_fixtureA=b;this.m_fixtureB=c;this.m_manifold.m_pointCount=0;this.m_next=this.m_prev=null;this.m_nodeA.contact=null;this.m_nodeA.prev=
null;this.m_nodeA.next=null;this.m_nodeA.other=null;this.m_nodeB.contact=null;this.m_nodeB.prev=null;this.m_nodeB.next=null;this.m_nodeB.other=null}};j.prototype.Update=function(b){var c=this.m_oldManifold;this.m_oldManifold=this.m_manifold;this.m_manifold=c;this.m_flags|=j.e_enabledFlag;var d=!1,c=(this.m_flags&j.e_touchingFlag)==j.e_touchingFlag,f=this.m_fixtureA.m_body,g=this.m_fixtureB.m_body,s=this.m_fixtureA.m_aabb.TestOverlap(this.m_fixtureB.m_aabb);if(this.m_flags&j.e_sensorFlag)s&&(d=this.m_fixtureA.GetShape(),
s=this.m_fixtureB.GetShape(),f=f.GetTransform(),g=g.GetTransform(),d=e.TestOverlap(d,f,s,g)),this.m_manifold.m_pointCount=0;else{this.m_flags=f.GetType()!=L.b2_dynamicBody||f.IsBullet()||g.GetType()!=L.b2_dynamicBody||g.IsBullet()?this.m_flags|j.e_continuousFlag:this.m_flags&~j.e_continuousFlag;if(s){this.Evaluate();d=0<this.m_manifold.m_pointCount;for(s=0;s<this.m_manifold.m_pointCount;++s){var u=this.m_manifold.m_points[s];u.m_normalImpulse=0;u.m_tangentImpulse=0;for(var m=u.m_id,F=0;F<this.m_oldManifold.m_pointCount;++F){var n=
this.m_oldManifold.m_points[F];if(n.m_id.key==m.key){u.m_normalImpulse=n.m_normalImpulse;u.m_tangentImpulse=n.m_tangentImpulse;break}}}}else this.m_manifold.m_pointCount=0;d!=c&&(f.SetAwake(!0),g.SetAwake(!0))}this.m_flags=d?this.m_flags|j.e_touchingFlag:this.m_flags&~j.e_touchingFlag;!1==c&&!0==d&&b.BeginContact(this);!0==c&&!1==d&&b.EndContact(this);0==(this.m_flags&j.e_sensorFlag)&&b.PreSolve(this,this.m_oldManifold)};j.prototype.Evaluate=function(){};j.prototype.ComputeTOI=function(b,c){j.s_input.proxyA.Set(this.m_fixtureA.GetShape());
j.s_input.proxyB.Set(this.m_fixtureB.GetShape());j.s_input.sweepA=b;j.s_input.sweepB=c;j.s_input.tolerance=Q.b2_linearSlop;return s.TimeOfImpact(j.s_input)};Box2D.postDefs.push(function(){Box2D.Dynamics.Contacts.b2Contact.e_sensorFlag=1;Box2D.Dynamics.Contacts.b2Contact.e_continuousFlag=2;Box2D.Dynamics.Contacts.b2Contact.e_islandFlag=4;Box2D.Dynamics.Contacts.b2Contact.e_toiFlag=8;Box2D.Dynamics.Contacts.b2Contact.e_touchingFlag=16;Box2D.Dynamics.Contacts.b2Contact.e_enabledFlag=32;Box2D.Dynamics.Contacts.b2Contact.e_filterFlag=
64;Box2D.Dynamics.Contacts.b2Contact.s_input=new u});n.b2ContactConstraint=function(){this.localPlaneNormal=new O;this.localPoint=new O;this.normal=new O;this.normalMass=new J;this.K=new J};n.prototype.b2ContactConstraint=function(){this.points=new Vector(Q.b2_maxManifoldPoints);for(var b=0;b<Q.b2_maxManifoldPoints;b++)this.points[b]=new m};m.b2ContactConstraintPoint=function(){this.localPoint=new O;this.rA=new O;this.rB=new O};g.b2ContactEdge=function(){};t.b2ContactFactory=function(){};t.prototype.b2ContactFactory=
function(b){this.m_allocator=b;this.InitializeRegisters()};t.prototype.AddType=function(b,c,d,e){void 0===d&&(d=0);void 0===e&&(e=0);this.m_registers[d][e].createFcn=b;this.m_registers[d][e].destroyFcn=c;this.m_registers[d][e].primary=!0;d!=e&&(this.m_registers[e][d].createFcn=b,this.m_registers[e][d].destroyFcn=c,this.m_registers[e][d].primary=!1)};t.prototype.InitializeRegisters=function(){this.m_registers=new Vector(e.e_shapeTypeCount);for(var b=0;b<e.e_shapeTypeCount;b++){this.m_registers[b]=
new Vector(e.e_shapeTypeCount);for(var c=0;c<e.e_shapeTypeCount;c++)this.m_registers[b][c]=new z}this.AddType(f.Create,f.Destroy,e.e_circleShape,e.e_circleShape);this.AddType(D.Create,D.Destroy,e.e_polygonShape,e.e_circleShape);this.AddType(G.Create,G.Destroy,e.e_polygonShape,e.e_polygonShape);this.AddType(B.Create,B.Destroy,e.e_edgeShape,e.e_circleShape);this.AddType(x.Create,x.Destroy,e.e_polygonShape,e.e_edgeShape)};t.prototype.Create=function(b,c){var d=parseInt(b.GetType()),e=parseInt(c.GetType()),
d=this.m_registers[d][e];if(d.pool)return e=d.pool,d.pool=e.m_next,d.poolCount--,e.Reset(b,c),e;e=d.createFcn;return null!=e?(d.primary?(e=e(this.m_allocator),e.Reset(b,c)):(e=e(this.m_allocator),e.Reset(c,b)),e):null};t.prototype.Destroy=function(b){0<b.m_manifold.m_pointCount&&(b.m_fixtureA.m_body.SetAwake(!0),b.m_fixtureB.m_body.SetAwake(!0));var c=parseInt(b.m_fixtureA.GetType()),d=parseInt(b.m_fixtureB.GetType()),c=this.m_registers[c][d];c.poolCount++;b.m_next=c.pool;c.pool=b;c=c.destroyFcn;
c(b,this.m_allocator)};z.b2ContactRegister=function(){};y.b2ContactResult=function(){this.position=new O;this.normal=new O;this.id=new ba};A.b2ContactSolver=function(){this.m_step=new M;this.m_constraints=new Vector};A.prototype.b2ContactSolver=function(){};A.prototype.Initialize=function(b,c,d,e){void 0===d&&(d=0);var f;this.m_step.Set(b);this.m_allocator=e;for(this.m_constraintCount=d;this.m_constraints.length<this.m_constraintCount;)this.m_constraints[this.m_constraints.length]=new n;for(b=0;b<
d;++b){f=c[b];e=f.m_fixtureA;var g=f.m_fixtureB,j=e.m_shape.m_radius,s=g.m_shape.m_radius,u=e.m_body,m=g.m_body,F=f.GetManifold(),t=Q.b2MixFriction(e.GetFriction(),g.GetFriction()),x=Q.b2MixRestitution(e.GetRestitution(),g.GetRestitution()),y=u.m_linearVelocity.x,B=u.m_linearVelocity.y,z=m.m_linearVelocity.x,D=m.m_linearVelocity.y,E=u.m_angularVelocity,I=m.m_angularVelocity;Q.b2Assert(0<F.m_pointCount);A.s_worldManifold.Initialize(F,u.m_xf,j,m.m_xf,s);g=A.s_worldManifold.m_normal.x;f=A.s_worldManifold.m_normal.y;
e=this.m_constraints[b];e.bodyA=u;e.bodyB=m;e.manifold=F;e.normal.x=g;e.normal.y=f;e.pointCount=F.m_pointCount;e.friction=t;e.restitution=x;e.localPlaneNormal.x=F.m_localPlaneNormal.x;e.localPlaneNormal.y=F.m_localPlaneNormal.y;e.localPoint.x=F.m_localPoint.x;e.localPoint.y=F.m_localPoint.y;e.radius=j+s;e.type=F.m_type;for(j=0;j<e.pointCount;++j){t=F.m_points[j];s=e.points[j];s.normalImpulse=t.m_normalImpulse;s.tangentImpulse=t.m_tangentImpulse;s.localPoint.SetV(t.m_localPoint);var t=s.rA.x=A.s_worldManifold.m_points[j].x-
u.m_sweep.c.x,x=s.rA.y=A.s_worldManifold.m_points[j].y-u.m_sweep.c.y,G=s.rB.x=A.s_worldManifold.m_points[j].x-m.m_sweep.c.x,L=s.rB.y=A.s_worldManifold.m_points[j].y-m.m_sweep.c.y,J=t*f-x*g,M=G*f-L*g,J=J*J,M=M*M;s.normalMass=1/(u.m_invMass+m.m_invMass+u.m_invI*J+m.m_invI*M);var O=u.m_mass*u.m_invMass+m.m_mass*m.m_invMass,O=O+(u.m_mass*u.m_invI*J+m.m_mass*m.m_invI*M);s.equalizedMass=1/O;M=f;O=-g;J=t*O-x*M;M=G*O-L*M;J*=J;M*=M;s.tangentMass=1/(u.m_invMass+m.m_invMass+u.m_invI*J+m.m_invI*M);s.velocityBias=
0;t=e.normal.x*(z+-I*L-y- -E*x)+e.normal.y*(D+I*G-B-E*t);t<-Q.b2_velocityThreshold&&(s.velocityBias+=-e.restitution*t)}2==e.pointCount&&(D=e.points[0],z=e.points[1],F=u.m_invMass,u=u.m_invI,y=m.m_invMass,m=m.m_invI,B=D.rA.x*f-D.rA.y*g,D=D.rB.x*f-D.rB.y*g,E=z.rA.x*f-z.rA.y*g,z=z.rB.x*f-z.rB.y*g,g=F+y+u*B*B+m*D*D,f=F+y+u*E*E+m*z*z,m=F+y+u*B*E+m*D*z,g*g<100*(g*f-m*m)?(e.K.col1.Set(g,m),e.K.col2.Set(m,f),e.K.GetInverse(e.normalMass)):e.pointCount=1)}};A.prototype.InitVelocityConstraints=function(b){for(var c=
0;c<this.m_constraintCount;++c){var d=this.m_constraints[c],e=d.bodyA,f=d.bodyB,g=e.m_invMass,j=e.m_invI,s=f.m_invMass,u=f.m_invI,m=d.normal.x,F=d.normal.y,n=F,t=-m,x=0,y=0;if(b.warmStarting){y=d.pointCount;for(x=0;x<y;++x){var A=d.points[x];A.normalImpulse*=b.dtRatio;A.tangentImpulse*=b.dtRatio;var B=A.normalImpulse*m+A.tangentImpulse*n,z=A.normalImpulse*F+A.tangentImpulse*t;e.m_angularVelocity-=j*(A.rA.x*z-A.rA.y*B);e.m_linearVelocity.x-=g*B;e.m_linearVelocity.y-=g*z;f.m_angularVelocity+=u*(A.rB.x*
z-A.rB.y*B);f.m_linearVelocity.x+=s*B;f.m_linearVelocity.y+=s*z}}else{y=d.pointCount;for(x=0;x<y;++x)e=d.points[x],e.normalImpulse=0,e.tangentImpulse=0}}};A.prototype.SolveVelocityConstraints=function(){for(var b=0,c,d=0,e=0,f=0,g=0,j=0,s=0,u=0,m,F=0;F<this.m_constraintCount;++F){var f=this.m_constraints[F],n=f.bodyA,t=f.bodyB,x=n.m_angularVelocity,y=t.m_angularVelocity,A=n.m_linearVelocity,B=t.m_linearVelocity,z=n.m_invMass,D=n.m_invI,E=t.m_invMass,I=t.m_invI,s=f.normal.x,G=u=f.normal.y;m=-s;j=f.friction;
for(b=0;b<f.pointCount;b++)c=f.points[b],d=B.x-y*c.rB.y-A.x+x*c.rA.y,e=B.y+y*c.rB.x-A.y-x*c.rA.x,d=d*G+e*m,d=c.tangentMass*-d,e=j*c.normalImpulse,e=fa.Clamp(c.tangentImpulse+d,-e,e),d=e-c.tangentImpulse,g=d*G,d*=m,A.x-=z*g,A.y-=z*d,x-=D*(c.rA.x*d-c.rA.y*g),B.x+=E*g,B.y+=E*d,y+=I*(c.rB.x*d-c.rB.y*g),c.tangentImpulse=e;parseInt(f.pointCount);if(1==f.pointCount)c=f.points[0],d=B.x+-y*c.rB.y-A.x- -x*c.rA.y,e=B.y+y*c.rB.x-A.y-x*c.rA.x,f=d*s+e*u,d=-c.normalMass*(f-c.velocityBias),e=c.normalImpulse+d,e=
0<e?e:0,d=e-c.normalImpulse,g=d*s,d*=u,A.x-=z*g,A.y-=z*d,x-=D*(c.rA.x*d-c.rA.y*g),B.x+=E*g,B.y+=E*d,y+=I*(c.rB.x*d-c.rB.y*g),c.normalImpulse=e;else{c=f.points[0];var b=f.points[1],d=c.normalImpulse,j=b.normalImpulse,L=(B.x-y*c.rB.y-A.x+x*c.rA.y)*s+(B.y+y*c.rB.x-A.y-x*c.rA.x)*u,J=(B.x-y*b.rB.y-A.x+x*b.rA.y)*s+(B.y+y*b.rB.x-A.y-x*b.rA.x)*u,e=L-c.velocityBias,g=J-b.velocityBias;m=f.K;e-=m.col1.x*d+m.col2.x*j;for(g-=m.col1.y*d+m.col2.y*j;;){m=f.normalMass;G=-(m.col1.x*e+m.col2.x*g);m=-(m.col1.y*e+m.col2.y*
g);if(0<=G&&0<=m){d=G-d;j=m-j;f=d*s;d*=u;s*=j;u*=j;A.x-=z*(f+s);A.y-=z*(d+u);x-=D*(c.rA.x*d-c.rA.y*f+b.rA.x*u-b.rA.y*s);B.x+=E*(f+s);B.y+=E*(d+u);y+=I*(c.rB.x*d-c.rB.y*f+b.rB.x*u-b.rB.y*s);c.normalImpulse=G;b.normalImpulse=m;break}G=-c.normalMass*e;m=0;J=f.K.col1.y*G+g;if(0<=G&&0<=J){d=G-d;j=m-j;f=d*s;d*=u;s*=j;u*=j;A.x-=z*(f+s);A.y-=z*(d+u);x-=D*(c.rA.x*d-c.rA.y*f+b.rA.x*u-b.rA.y*s);B.x+=E*(f+s);B.y+=E*(d+u);y+=I*(c.rB.x*d-c.rB.y*f+b.rB.x*u-b.rB.y*s);c.normalImpulse=G;b.normalImpulse=m;break}G=0;
m=-b.normalMass*g;L=f.K.col2.x*m+e;if(0<=m&&0<=L){d=G-d;j=m-j;f=d*s;d*=u;s*=j;u*=j;A.x-=z*(f+s);A.y-=z*(d+u);x-=D*(c.rA.x*d-c.rA.y*f+b.rA.x*u-b.rA.y*s);B.x+=E*(f+s);B.y+=E*(d+u);y+=I*(c.rB.x*d-c.rB.y*f+b.rB.x*u-b.rB.y*s);c.normalImpulse=G;b.normalImpulse=m;break}m=G=0;L=e;J=g;if(0<=L&&0<=J){d=G-d;j=m-j;f=d*s;d*=u;s*=j;u*=j;A.x-=z*(f+s);A.y-=z*(d+u);x-=D*(c.rA.x*d-c.rA.y*f+b.rA.x*u-b.rA.y*s);B.x+=E*(f+s);B.y+=E*(d+u);y+=I*(c.rB.x*d-c.rB.y*f+b.rB.x*u-b.rB.y*s);c.normalImpulse=G;b.normalImpulse=m;break}break}}n.m_angularVelocity=
x;t.m_angularVelocity=y}};A.prototype.FinalizeVelocityConstraints=function(){for(var b=0;b<this.m_constraintCount;++b)for(var c=this.m_constraints[b],d=c.manifold,e=0;e<c.pointCount;++e){var f=d.m_points[e],g=c.points[e];f.m_normalImpulse=g.normalImpulse;f.m_tangentImpulse=g.tangentImpulse}};A.prototype.SolvePositionConstraints=function(b){void 0===b&&(b=0);for(var c=0,d=0;d<this.m_constraintCount;d++){var e=this.m_constraints[d],f=e.bodyA,g=e.bodyB,j=f.m_mass*f.m_invMass,s=f.m_mass*f.m_invI,u=g.m_mass*
g.m_invMass,m=g.m_mass*g.m_invI;A.s_psm.Initialize(e);for(var F=A.s_psm.m_normal,n=0;n<e.pointCount;n++){var x=e.points[n],t=A.s_psm.m_points[n],y=A.s_psm.m_separations[n],B=t.x-f.m_sweep.c.x,z=t.y-f.m_sweep.c.y,D=t.x-g.m_sweep.c.x,t=t.y-g.m_sweep.c.y,c=c<y?c:y,y=fa.Clamp(b*(y+Q.b2_linearSlop),-Q.b2_maxLinearCorrection,0),y=-x.equalizedMass*y,x=y*F.x,y=y*F.y;f.m_sweep.c.x-=j*x;f.m_sweep.c.y-=j*y;f.m_sweep.a-=s*(B*y-z*x);f.SynchronizeTransform();g.m_sweep.c.x+=u*x;g.m_sweep.c.y+=u*y;g.m_sweep.a+=m*
(D*y-t*x);g.SynchronizeTransform()}}return c>-1.5*Q.b2_linearSlop};Box2D.postDefs.push(function(){Box2D.Dynamics.Contacts.b2ContactSolver.s_worldManifold=new F;Box2D.Dynamics.Contacts.b2ContactSolver.s_psm=new E});Box2D.inherit(B,Box2D.Dynamics.Contacts.b2Contact);B.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;B.b2EdgeAndCircleContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};B.Create=function(){return new B};B.Destroy=function(){};B.prototype.Reset=
function(b,c){this.__super.Reset.call(this,b,c)};B.prototype.Evaluate=function(){var d=this.m_fixtureA.GetBody(),e=this.m_fixtureB.GetBody();this.b2CollideEdgeAndCircle(this.m_manifold,this.m_fixtureA.GetShape()instanceof c?this.m_fixtureA.GetShape():null,d.m_xf,this.m_fixtureB.GetShape()instanceof b?this.m_fixtureB.GetShape():null,e.m_xf)};B.prototype.b2CollideEdgeAndCircle=function(){};Box2D.inherit(I,Box2D.Dynamics.Contacts.b2Contact);I.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;
I.b2NullContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};I.prototype.b2NullContact=function(){this.__super.b2Contact.call(this)};I.prototype.Evaluate=function(){};Box2D.inherit(D,Box2D.Dynamics.Contacts.b2Contact);D.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;D.b2PolyAndCircleContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};D.Create=function(){return new D};D.Destroy=function(){};D.prototype.Reset=function(b,
c){this.__super.Reset.call(this,b,c);Q.b2Assert(b.GetType()==e.e_polygonShape);Q.b2Assert(c.GetType()==e.e_circleShape)};D.prototype.Evaluate=function(){var c=this.m_fixtureA.m_body,e=this.m_fixtureB.m_body;P.CollidePolygonAndCircle(this.m_manifold,this.m_fixtureA.GetShape()instanceof d?this.m_fixtureA.GetShape():null,c.m_xf,this.m_fixtureB.GetShape()instanceof b?this.m_fixtureB.GetShape():null,e.m_xf)};Box2D.inherit(x,Box2D.Dynamics.Contacts.b2Contact);x.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;
x.b2PolyAndEdgeContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};x.Create=function(){return new x};x.Destroy=function(){};x.prototype.Reset=function(b,c){this.__super.Reset.call(this,b,c);Q.b2Assert(b.GetType()==e.e_polygonShape);Q.b2Assert(c.GetType()==e.e_edgeShape)};x.prototype.Evaluate=function(){var b=this.m_fixtureA.GetBody(),e=this.m_fixtureB.GetBody();this.b2CollidePolyAndEdge(this.m_manifold,this.m_fixtureA.GetShape()instanceof d?this.m_fixtureA.GetShape():
null,b.m_xf,this.m_fixtureB.GetShape()instanceof c?this.m_fixtureB.GetShape():null,e.m_xf)};x.prototype.b2CollidePolyAndEdge=function(){};Box2D.inherit(G,Box2D.Dynamics.Contacts.b2Contact);G.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;G.b2PolygonContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};G.Create=function(){return new G};G.Destroy=function(){};G.prototype.Reset=function(b,c){this.__super.Reset.call(this,b,c)};G.prototype.Evaluate=function(){var b=
this.m_fixtureA.GetBody(),c=this.m_fixtureB.GetBody();P.CollidePolygons(this.m_manifold,this.m_fixtureA.GetShape()instanceof d?this.m_fixtureA.GetShape():null,b.m_xf,this.m_fixtureB.GetShape()instanceof d?this.m_fixtureB.GetShape():null,c.m_xf)};E.b2PositionSolverManifold=function(){};E.prototype.b2PositionSolverManifold=function(){this.m_normal=new O;this.m_separations=new Vector_a2j_Number(Q.b2_maxManifoldPoints);this.m_points=new Vector(Q.b2_maxManifoldPoints);for(var b=0;b<Q.b2_maxManifoldPoints;b++)this.m_points[b]=
new O};E.prototype.Initialize=function(b){Q.b2Assert(0<b.pointCount);var c=0,d=0,e=0,f,g=0,j=0;switch(b.type){case U.e_circles:f=b.bodyA.m_xf.R;e=b.localPoint;c=b.bodyA.m_xf.position.x+(f.col1.x*e.x+f.col2.x*e.y);d=b.bodyA.m_xf.position.y+(f.col1.y*e.x+f.col2.y*e.y);f=b.bodyB.m_xf.R;e=b.points[0].localPoint;g=b.bodyB.m_xf.position.x+(f.col1.x*e.x+f.col2.x*e.y);f=b.bodyB.m_xf.position.y+(f.col1.y*e.x+f.col2.y*e.y);var e=g-c,j=f-d,s=e*e+j*j;s>Number.MIN_VALUE*Number.MIN_VALUE?(s=Math.sqrt(s),this.m_normal.x=
e/s,this.m_normal.y=j/s):(this.m_normal.x=1,this.m_normal.y=0);this.m_points[0].x=0.5*(c+g);this.m_points[0].y=0.5*(d+f);this.m_separations[0]=e*this.m_normal.x+j*this.m_normal.y-b.radius;break;case U.e_faceA:f=b.bodyA.m_xf.R;e=b.localPlaneNormal;this.m_normal.x=f.col1.x*e.x+f.col2.x*e.y;this.m_normal.y=f.col1.y*e.x+f.col2.y*e.y;f=b.bodyA.m_xf.R;e=b.localPoint;g=b.bodyA.m_xf.position.x+(f.col1.x*e.x+f.col2.x*e.y);j=b.bodyA.m_xf.position.y+(f.col1.y*e.x+f.col2.y*e.y);f=b.bodyB.m_xf.R;for(c=0;c<b.pointCount;++c)e=
b.points[c].localPoint,d=b.bodyB.m_xf.position.x+(f.col1.x*e.x+f.col2.x*e.y),e=b.bodyB.m_xf.position.y+(f.col1.y*e.x+f.col2.y*e.y),this.m_separations[c]=(d-g)*this.m_normal.x+(e-j)*this.m_normal.y-b.radius,this.m_points[c].x=d,this.m_points[c].y=e;break;case U.e_faceB:f=b.bodyB.m_xf.R;e=b.localPlaneNormal;this.m_normal.x=f.col1.x*e.x+f.col2.x*e.y;this.m_normal.y=f.col1.y*e.x+f.col2.y*e.y;f=b.bodyB.m_xf.R;e=b.localPoint;g=b.bodyB.m_xf.position.x+(f.col1.x*e.x+f.col2.x*e.y);j=b.bodyB.m_xf.position.y+
(f.col1.y*e.x+f.col2.y*e.y);f=b.bodyA.m_xf.R;for(c=0;c<b.pointCount;++c)e=b.points[c].localPoint,d=b.bodyA.m_xf.position.x+(f.col1.x*e.x+f.col2.x*e.y),e=b.bodyA.m_xf.position.y+(f.col1.y*e.x+f.col2.y*e.y),this.m_separations[c]=(d-g)*this.m_normal.x+(e-j)*this.m_normal.y-b.radius,this.m_points[c].Set(d,e);this.m_normal.x*=-1;this.m_normal.y*=-1}};Box2D.postDefs.push(function(){Box2D.Dynamics.Contacts.b2PositionSolverManifold.circlePointA=new O;Box2D.Dynamics.Contacts.b2PositionSolverManifold.circlePointB=
new O})})();
(function(){var b=Box2D.Common.Math.b2Mat22,c=Box2D.Common.Math.b2Math,d=Box2D.Common.Math.b2Vec2,e=Box2D.Common.b2Color,f=Box2D.Dynamics.Controllers.b2BuoyancyController,j=Box2D.Dynamics.Controllers.b2ConstantAccelController,n=Box2D.Dynamics.Controllers.b2ConstantForceController,m=Box2D.Dynamics.Controllers.b2Controller,g=Box2D.Dynamics.Controllers.b2ControllerEdge,t=Box2D.Dynamics.Controllers.b2GravityController,z=Box2D.Dynamics.Controllers.b2TensorDampingController;Box2D.inherit(f,Box2D.Dynamics.Controllers.b2Controller);
f.prototype.__super=Box2D.Dynamics.Controllers.b2Controller.prototype;f.b2BuoyancyController=function(){Box2D.Dynamics.Controllers.b2Controller.b2Controller.apply(this,arguments);this.normal=new d(0,-1);this.density=this.offset=0;this.velocity=new d(0,0);this.linearDrag=2;this.angularDrag=1;this.useDensity=!1;this.useWorldGravity=!0;this.gravity=null};f.prototype.Step=function(){if(this.m_bodyList){this.useWorldGravity&&(this.gravity=this.GetWorld().GetGravity().Copy());for(var b=this.m_bodyList;b;b=
b.nextBody){var c=b.body;if(!1!=c.IsAwake()){for(var e=new d,f=new d,g=0,j=0,m=c.GetFixtureList();m;m=m.GetNext()){var n=new d,t=m.GetShape().ComputeSubmergedArea(this.normal,this.offset,c.GetTransform(),n),g=g+t;e.x+=t*n.x;e.y+=t*n.y;var z=0,z=1,j=j+t*z;f.x+=t*n.x*z;f.y+=t*n.y*z}e.x/=g;e.y/=g;f.x/=j;f.y/=j;g<Number.MIN_VALUE||(j=this.gravity.GetNegative(),j.Multiply(this.density*g),c.ApplyForce(j,f),f=c.GetLinearVelocityFromWorldPoint(e),f.Subtract(this.velocity),f.Multiply(-this.linearDrag*g),c.ApplyForce(f,
e),c.ApplyTorque(-c.GetInertia()/c.GetMass()*g*c.GetAngularVelocity()*this.angularDrag))}}}};f.prototype.Draw=function(b){var c=new d,f=new d;c.x=this.normal.x*this.offset+1E3*this.normal.y;c.y=this.normal.y*this.offset-1E3*this.normal.x;f.x=this.normal.x*this.offset-1E3*this.normal.y;f.y=this.normal.y*this.offset+1E3*this.normal.x;var g=new e(0,0,1);b.DrawSegment(c,f,g)};Box2D.inherit(j,Box2D.Dynamics.Controllers.b2Controller);j.prototype.__super=Box2D.Dynamics.Controllers.b2Controller.prototype;
j.b2ConstantAccelController=function(){Box2D.Dynamics.Controllers.b2Controller.b2Controller.apply(this,arguments);this.A=new d(0,0)};j.prototype.Step=function(b){b=new d(this.A.x*b.dt,this.A.y*b.dt);for(var c=this.m_bodyList;c;c=c.nextBody){var e=c.body;e.IsAwake()&&e.SetLinearVelocity(new d(e.GetLinearVelocity().x+b.x,e.GetLinearVelocity().y+b.y))}};Box2D.inherit(n,Box2D.Dynamics.Controllers.b2Controller);n.prototype.__super=Box2D.Dynamics.Controllers.b2Controller.prototype;n.b2ConstantForceController=
function(){Box2D.Dynamics.Controllers.b2Controller.b2Controller.apply(this,arguments);this.F=new d(0,0)};n.prototype.Step=function(){for(var b=this.m_bodyList;b;b=b.nextBody){var c=b.body;c.IsAwake()&&c.ApplyForce(this.F,c.GetWorldCenter())}};m.b2Controller=function(){};m.prototype.Step=function(){};m.prototype.Draw=function(){};m.prototype.AddBody=function(b){var c=new g;c.controller=this;c.body=b;c.nextBody=this.m_bodyList;c.prevBody=null;this.m_bodyList=c;c.nextBody&&(c.nextBody.prevBody=c);this.m_bodyCount++;
c.nextController=b.m_controllerList;c.prevController=null;b.m_controllerList=c;c.nextController&&(c.nextController.prevController=c);b.m_controllerCount++};m.prototype.RemoveBody=function(b){for(var c=b.m_controllerList;c&&c.controller!=this;)c=c.nextController;c.prevBody&&(c.prevBody.nextBody=c.nextBody);c.nextBody&&(c.nextBody.prevBody=c.prevBody);c.nextController&&(c.nextController.prevController=c.prevController);c.prevController&&(c.prevController.nextController=c.nextController);this.m_bodyList==
c&&(this.m_bodyList=c.nextBody);b.m_controllerList==c&&(b.m_controllerList=c.nextController);b.m_controllerCount--;this.m_bodyCount--};m.prototype.Clear=function(){for(;this.m_bodyList;)this.RemoveBody(this.m_bodyList.body)};m.prototype.GetNext=function(){return this.m_next};m.prototype.GetWorld=function(){return this.m_world};m.prototype.GetBodyList=function(){return this.m_bodyList};g.b2ControllerEdge=function(){};Box2D.inherit(t,Box2D.Dynamics.Controllers.b2Controller);t.prototype.__super=Box2D.Dynamics.Controllers.b2Controller.prototype;
t.b2GravityController=function(){Box2D.Dynamics.Controllers.b2Controller.b2Controller.apply(this,arguments);this.G=1;this.invSqr=!0};t.prototype.Step=function(){var b=null,c=null,e=null,f=0,g=null,j=null,m=null,n=0,t=0,z=0;if(this.invSqr)for(b=this.m_bodyList;b;b=b.nextBody){c=b.body;e=c.GetWorldCenter();f=c.GetMass();for(g=this.m_bodyList;g!=b;g=g.nextBody)j=g.body,m=j.GetWorldCenter(),n=m.x-e.x,t=m.y-e.y,z=n*n+t*t,z<Number.MIN_VALUE||(n=new d(n,t),n.Multiply(this.G/z/Math.sqrt(z)*f*j.GetMass()),
c.IsAwake()&&c.ApplyForce(n,e),n.Multiply(-1),j.IsAwake()&&j.ApplyForce(n,m))}else for(b=this.m_bodyList;b;b=b.nextBody){c=b.body;e=c.GetWorldCenter();f=c.GetMass();for(g=this.m_bodyList;g!=b;g=g.nextBody)j=g.body,m=j.GetWorldCenter(),n=m.x-e.x,t=m.y-e.y,z=n*n+t*t,z<Number.MIN_VALUE||(n=new d(n,t),n.Multiply(this.G/z*f*j.GetMass()),c.IsAwake()&&c.ApplyForce(n,e),n.Multiply(-1),j.IsAwake()&&j.ApplyForce(n,m))}};Box2D.inherit(z,Box2D.Dynamics.Controllers.b2Controller);z.prototype.__super=Box2D.Dynamics.Controllers.b2Controller.prototype;
z.b2TensorDampingController=function(){Box2D.Dynamics.Controllers.b2Controller.b2Controller.apply(this,arguments);this.T=new b;this.maxTimestep=0};z.prototype.SetAxisAligned=function(b,c){void 0===b&&(b=0);void 0===c&&(c=0);this.T.col1.x=-b;this.T.col1.y=0;this.T.col2.x=0;this.T.col2.y=-c;this.maxTimestep=0<b||0<c?1/Math.max(b,c):0};z.prototype.Step=function(b){b=b.dt;if(!(b<=Number.MIN_VALUE)){b>this.maxTimestep&&0<this.maxTimestep&&(b=this.maxTimestep);for(var e=this.m_bodyList;e;e=e.nextBody){var f=
e.body;if(f.IsAwake()){var g=f.GetWorldVector(c.MulMV(this.T,f.GetLocalVector(f.GetLinearVelocity())));f.SetLinearVelocity(new d(f.GetLinearVelocity().x+g.x*b,f.GetLinearVelocity().y+g.y*b))}}}}})();
(function(){var b=Box2D.Common.b2Settings,c=Box2D.Common.Math.b2Mat22,d=Box2D.Common.Math.b2Mat33,e=Box2D.Common.Math.b2Math,f=Box2D.Common.Math.b2Vec2,j=Box2D.Common.Math.b2Vec3,n=Box2D.Dynamics.Joints.b2DistanceJoint,m=Box2D.Dynamics.Joints.b2DistanceJointDef,g=Box2D.Dynamics.Joints.b2FrictionJoint,t=Box2D.Dynamics.Joints.b2FrictionJointDef,z=Box2D.Dynamics.Joints.b2GearJoint,y=Box2D.Dynamics.Joints.b2GearJointDef,A=Box2D.Dynamics.Joints.b2Jacobian,B=Box2D.Dynamics.Joints.b2Joint,I=Box2D.Dynamics.Joints.b2JointDef,
D=Box2D.Dynamics.Joints.b2JointEdge,x=Box2D.Dynamics.Joints.b2LineJoint,G=Box2D.Dynamics.Joints.b2LineJointDef,E=Box2D.Dynamics.Joints.b2MouseJoint,L=Box2D.Dynamics.Joints.b2MouseJointDef,M=Box2D.Dynamics.Joints.b2PrismaticJoint,Q=Box2D.Dynamics.Joints.b2PrismaticJointDef,J=Box2D.Dynamics.Joints.b2PulleyJoint,fa=Box2D.Dynamics.Joints.b2PulleyJointDef,O=Box2D.Dynamics.Joints.b2RevoluteJoint,P=Box2D.Dynamics.Joints.b2RevoluteJointDef,ba=Box2D.Dynamics.Joints.b2WeldJoint,U=Box2D.Dynamics.Joints.b2WeldJointDef;
Box2D.inherit(n,Box2D.Dynamics.Joints.b2Joint);n.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;n.b2DistanceJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_localAnchor1=new f;this.m_localAnchor2=new f;this.m_u=new f};n.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};n.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};n.prototype.GetReactionForce=function(b){void 0===b&&(b=0);
return new f(b*this.m_impulse*this.m_u.x,b*this.m_impulse*this.m_u.y)};n.prototype.GetReactionTorque=function(){return 0};n.prototype.GetLength=function(){return this.m_length};n.prototype.SetLength=function(b){void 0===b&&(b=0);this.m_length=b};n.prototype.GetFrequency=function(){return this.m_frequencyHz};n.prototype.SetFrequency=function(b){void 0===b&&(b=0);this.m_frequencyHz=b};n.prototype.GetDampingRatio=function(){return this.m_dampingRatio};n.prototype.SetDampingRatio=function(b){void 0===
b&&(b=0);this.m_dampingRatio=b};n.prototype.b2DistanceJoint=function(b){this.__super.b2Joint.call(this,b);this.m_localAnchor1.SetV(b.localAnchorA);this.m_localAnchor2.SetV(b.localAnchorB);this.m_length=b.length;this.m_frequencyHz=b.frequencyHz;this.m_dampingRatio=b.dampingRatio;this.m_bias=this.m_gamma=this.m_impulse=0};n.prototype.InitVelocityConstraints=function(c){var d,e=0,f=this.m_bodyA,g=this.m_bodyB;d=f.m_xf.R;var j=this.m_localAnchor1.x-f.m_sweep.localCenter.x,m=this.m_localAnchor1.y-f.m_sweep.localCenter.y,
e=d.col1.x*j+d.col2.x*m,m=d.col1.y*j+d.col2.y*m,j=e;d=g.m_xf.R;var l=this.m_localAnchor2.x-g.m_sweep.localCenter.x,q=this.m_localAnchor2.y-g.m_sweep.localCenter.y,e=d.col1.x*l+d.col2.x*q,q=d.col1.y*l+d.col2.y*q,l=e;this.m_u.x=g.m_sweep.c.x+l-f.m_sweep.c.x-j;this.m_u.y=g.m_sweep.c.y+q-f.m_sweep.c.y-m;e=Math.sqrt(this.m_u.x*this.m_u.x+this.m_u.y*this.m_u.y);e>b.b2_linearSlop?this.m_u.Multiply(1/e):this.m_u.SetZero();d=j*this.m_u.y-m*this.m_u.x;var n=l*this.m_u.y-q*this.m_u.x;d=f.m_invMass+f.m_invI*
d*d+g.m_invMass+g.m_invI*n*n;this.m_mass=0!=d?1/d:0;if(0<this.m_frequencyHz){var e=e-this.m_length,n=2*Math.PI*this.m_frequencyHz,r=this.m_mass*n*n;this.m_gamma=c.dt*(2*this.m_mass*this.m_dampingRatio*n+c.dt*r);this.m_gamma=0!=this.m_gamma?1/this.m_gamma:0;this.m_bias=e*c.dt*r*this.m_gamma;this.m_mass=d+this.m_gamma;this.m_mass=0!=this.m_mass?1/this.m_mass:0}c.warmStarting?(this.m_impulse*=c.dtRatio,c=this.m_impulse*this.m_u.x,d=this.m_impulse*this.m_u.y,f.m_linearVelocity.x-=f.m_invMass*c,f.m_linearVelocity.y-=
f.m_invMass*d,f.m_angularVelocity-=f.m_invI*(j*d-m*c),g.m_linearVelocity.x+=g.m_invMass*c,g.m_linearVelocity.y+=g.m_invMass*d,g.m_angularVelocity+=g.m_invI*(l*d-q*c)):this.m_impulse=0};n.prototype.SolveVelocityConstraints=function(){var b,c=this.m_bodyA,d=this.m_bodyB;b=c.m_xf.R;var e=this.m_localAnchor1.x-c.m_sweep.localCenter.x,f=this.m_localAnchor1.y-c.m_sweep.localCenter.y,g=b.col1.x*e+b.col2.x*f,f=b.col1.y*e+b.col2.y*f,e=g;b=d.m_xf.R;var j=this.m_localAnchor2.x-d.m_sweep.localCenter.x,l=this.m_localAnchor2.y-
d.m_sweep.localCenter.y,g=b.col1.x*j+b.col2.x*l,l=b.col1.y*j+b.col2.y*l,j=g,g=-this.m_mass*(this.m_u.x*(d.m_linearVelocity.x+-d.m_angularVelocity*l-(c.m_linearVelocity.x+-c.m_angularVelocity*f))+this.m_u.y*(d.m_linearVelocity.y+d.m_angularVelocity*j-(c.m_linearVelocity.y+c.m_angularVelocity*e))+this.m_bias+this.m_gamma*this.m_impulse);this.m_impulse+=g;b=g*this.m_u.x;g*=this.m_u.y;c.m_linearVelocity.x-=c.m_invMass*b;c.m_linearVelocity.y-=c.m_invMass*g;c.m_angularVelocity-=c.m_invI*(e*g-f*b);d.m_linearVelocity.x+=
d.m_invMass*b;d.m_linearVelocity.y+=d.m_invMass*g;d.m_angularVelocity+=d.m_invI*(j*g-l*b)};n.prototype.SolvePositionConstraints=function(){var c;if(0<this.m_frequencyHz)return!0;var d=this.m_bodyA,f=this.m_bodyB;c=d.m_xf.R;var g=this.m_localAnchor1.x-d.m_sweep.localCenter.x,j=this.m_localAnchor1.y-d.m_sweep.localCenter.y,m=c.col1.x*g+c.col2.x*j,j=c.col1.y*g+c.col2.y*j,g=m;c=f.m_xf.R;var n=this.m_localAnchor2.x-f.m_sweep.localCenter.x,l=this.m_localAnchor2.y-f.m_sweep.localCenter.y,m=c.col1.x*n+c.col2.x*
l,l=c.col1.y*n+c.col2.y*l,n=m,m=f.m_sweep.c.x+n-d.m_sweep.c.x-g,q=f.m_sweep.c.y+l-d.m_sweep.c.y-j;c=Math.sqrt(m*m+q*q);m/=c;q/=c;c-=this.m_length;c=e.Clamp(c,-b.b2_maxLinearCorrection,b.b2_maxLinearCorrection);var t=-this.m_mass*c;this.m_u.Set(m,q);m=t*this.m_u.x;q=t*this.m_u.y;d.m_sweep.c.x-=d.m_invMass*m;d.m_sweep.c.y-=d.m_invMass*q;d.m_sweep.a-=d.m_invI*(g*q-j*m);f.m_sweep.c.x+=f.m_invMass*m;f.m_sweep.c.y+=f.m_invMass*q;f.m_sweep.a+=f.m_invI*(n*q-l*m);d.SynchronizeTransform();f.SynchronizeTransform();
return e.Abs(c)<b.b2_linearSlop};Box2D.inherit(m,Box2D.Dynamics.Joints.b2JointDef);m.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;m.b2DistanceJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=new f;this.localAnchorB=new f};m.prototype.b2DistanceJointDef=function(){this.__super.b2JointDef.call(this);this.type=B.e_distanceJoint;this.length=1;this.dampingRatio=this.frequencyHz=0};m.prototype.Initialize=function(b,c,d,e){this.bodyA=
b;this.bodyB=c;this.localAnchorA.SetV(this.bodyA.GetLocalPoint(d));this.localAnchorB.SetV(this.bodyB.GetLocalPoint(e));b=e.x-d.x;d=e.y-d.y;this.length=Math.sqrt(b*b+d*d);this.dampingRatio=this.frequencyHz=0};Box2D.inherit(g,Box2D.Dynamics.Joints.b2Joint);g.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;g.b2FrictionJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_localAnchorA=new f;this.m_localAnchorB=new f;this.m_linearMass=new c;this.m_linearImpulse=
new f};g.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA)};g.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB)};g.prototype.GetReactionForce=function(b){void 0===b&&(b=0);return new f(b*this.m_linearImpulse.x,b*this.m_linearImpulse.y)};g.prototype.GetReactionTorque=function(b){void 0===b&&(b=0);return b*this.m_angularImpulse};g.prototype.SetMaxForce=function(b){void 0===b&&(b=0);this.m_maxForce=b};g.prototype.GetMaxForce=function(){return this.m_maxForce};
g.prototype.SetMaxTorque=function(b){void 0===b&&(b=0);this.m_maxTorque=b};g.prototype.GetMaxTorque=function(){return this.m_maxTorque};g.prototype.b2FrictionJoint=function(b){this.__super.b2Joint.call(this,b);this.m_localAnchorA.SetV(b.localAnchorA);this.m_localAnchorB.SetV(b.localAnchorB);this.m_linearMass.SetZero();this.m_angularMass=0;this.m_linearImpulse.SetZero();this.m_angularImpulse=0;this.m_maxForce=b.maxForce;this.m_maxTorque=b.maxTorque};g.prototype.InitVelocityConstraints=function(b){var d,
e=0,f=this.m_bodyA,g=this.m_bodyB;d=f.m_xf.R;var j=this.m_localAnchorA.x-f.m_sweep.localCenter.x,m=this.m_localAnchorA.y-f.m_sweep.localCenter.y,e=d.col1.x*j+d.col2.x*m,m=d.col1.y*j+d.col2.y*m,j=e;d=g.m_xf.R;var l=this.m_localAnchorB.x-g.m_sweep.localCenter.x,q=this.m_localAnchorB.y-g.m_sweep.localCenter.y,e=d.col1.x*l+d.col2.x*q,q=d.col1.y*l+d.col2.y*q,l=e;d=f.m_invMass;var e=g.m_invMass,n=f.m_invI,r=g.m_invI,t=new c;t.col1.x=d+e;t.col2.x=0;t.col1.y=0;t.col2.y=d+e;t.col1.x+=n*m*m;t.col2.x+=-n*j*
m;t.col1.y+=-n*j*m;t.col2.y+=n*j*j;t.col1.x+=r*q*q;t.col2.x+=-r*l*q;t.col1.y+=-r*l*q;t.col2.y+=r*l*l;t.GetInverse(this.m_linearMass);this.m_angularMass=n+r;0<this.m_angularMass&&(this.m_angularMass=1/this.m_angularMass);b.warmStarting?(this.m_linearImpulse.x*=b.dtRatio,this.m_linearImpulse.y*=b.dtRatio,this.m_angularImpulse*=b.dtRatio,b=this.m_linearImpulse,f.m_linearVelocity.x-=d*b.x,f.m_linearVelocity.y-=d*b.y,f.m_angularVelocity-=n*(j*b.y-m*b.x+this.m_angularImpulse),g.m_linearVelocity.x+=e*b.x,
g.m_linearVelocity.y+=e*b.y,g.m_angularVelocity+=r*(l*b.y-q*b.x+this.m_angularImpulse)):(this.m_linearImpulse.SetZero(),this.m_angularImpulse=0)};g.prototype.SolveVelocityConstraints=function(b){var c,d=0,g=this.m_bodyA,j=this.m_bodyB,m=g.m_linearVelocity,n=g.m_angularVelocity,l=j.m_linearVelocity,q=j.m_angularVelocity,t=g.m_invMass,r=j.m_invMass,x=g.m_invI,y=j.m_invI;c=g.m_xf.R;var z=this.m_localAnchorA.x-g.m_sweep.localCenter.x,B=this.m_localAnchorA.y-g.m_sweep.localCenter.y,d=c.col1.x*z+c.col2.x*
B,B=c.col1.y*z+c.col2.y*B,z=d;c=j.m_xf.R;var A=this.m_localAnchorB.x-j.m_sweep.localCenter.x,D=this.m_localAnchorB.y-j.m_sweep.localCenter.y,d=c.col1.x*A+c.col2.x*D,D=c.col1.y*A+c.col2.y*D,A=d,d=-this.m_angularMass*(q-n),E=this.m_angularImpulse;c=b.dt*this.m_maxTorque;this.m_angularImpulse=e.Clamp(this.m_angularImpulse+d,-c,c);d=this.m_angularImpulse-E;n-=x*d;q+=y*d;c=e.MulMV(this.m_linearMass,new f(-(l.x-q*D-m.x+n*B),-(l.y+q*A-m.y-n*z)));d=this.m_linearImpulse.Copy();this.m_linearImpulse.Add(c);
c=b.dt*this.m_maxForce;this.m_linearImpulse.LengthSquared()>c*c&&(this.m_linearImpulse.Normalize(),this.m_linearImpulse.Multiply(c));c=e.SubtractVV(this.m_linearImpulse,d);m.x-=t*c.x;m.y-=t*c.y;n-=x*(z*c.y-B*c.x);l.x+=r*c.x;l.y+=r*c.y;q+=y*(A*c.y-D*c.x);g.m_angularVelocity=n;j.m_angularVelocity=q};g.prototype.SolvePositionConstraints=function(){return!0};Box2D.inherit(t,Box2D.Dynamics.Joints.b2JointDef);t.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;t.b2FrictionJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,
arguments);this.localAnchorA=new f;this.localAnchorB=new f};t.prototype.b2FrictionJointDef=function(){this.__super.b2JointDef.call(this);this.type=B.e_frictionJoint;this.maxTorque=this.maxForce=0};t.prototype.Initialize=function(b,c,d){this.bodyA=b;this.bodyB=c;this.localAnchorA.SetV(this.bodyA.GetLocalPoint(d));this.localAnchorB.SetV(this.bodyB.GetLocalPoint(d))};Box2D.inherit(z,Box2D.Dynamics.Joints.b2Joint);z.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;z.b2GearJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,
arguments);this.m_groundAnchor1=new f;this.m_groundAnchor2=new f;this.m_localAnchor1=new f;this.m_localAnchor2=new f;this.m_J=new A};z.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};z.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};z.prototype.GetReactionForce=function(b){void 0===b&&(b=0);return new f(b*this.m_impulse*this.m_J.linearB.x,b*this.m_impulse*this.m_J.linearB.y)};z.prototype.GetReactionTorque=function(b){void 0===
b&&(b=0);var c=this.m_bodyB.m_xf.R,d=this.m_localAnchor1.x-this.m_bodyB.m_sweep.localCenter.x,e=this.m_localAnchor1.y-this.m_bodyB.m_sweep.localCenter.y,f=c.col1.x*d+c.col2.x*e,e=c.col1.y*d+c.col2.y*e;return b*(this.m_impulse*this.m_J.angularB-f*this.m_impulse*this.m_J.linearB.y+e*this.m_impulse*this.m_J.linearB.x)};z.prototype.GetRatio=function(){return this.m_ratio};z.prototype.SetRatio=function(b){void 0===b&&(b=0);this.m_ratio=b};z.prototype.b2GearJoint=function(b){this.__super.b2Joint.call(this,
b);var c=parseInt(b.joint1.m_type),d=parseInt(b.joint2.m_type);this.m_prismatic2=this.m_revolute2=this.m_prismatic1=this.m_revolute1=null;var e=0,f=0;this.m_ground1=b.joint1.GetBodyA();this.m_bodyA=b.joint1.GetBodyB();c==B.e_revoluteJoint?(this.m_revolute1=b.joint1 instanceof O?b.joint1:null,this.m_groundAnchor1.SetV(this.m_revolute1.m_localAnchor1),this.m_localAnchor1.SetV(this.m_revolute1.m_localAnchor2),e=this.m_revolute1.GetJointAngle()):(this.m_prismatic1=b.joint1 instanceof M?b.joint1:null,
this.m_groundAnchor1.SetV(this.m_prismatic1.m_localAnchor1),this.m_localAnchor1.SetV(this.m_prismatic1.m_localAnchor2),e=this.m_prismatic1.GetJointTranslation());this.m_ground2=b.joint2.GetBodyA();this.m_bodyB=b.joint2.GetBodyB();d==B.e_revoluteJoint?(this.m_revolute2=b.joint2 instanceof O?b.joint2:null,this.m_groundAnchor2.SetV(this.m_revolute2.m_localAnchor1),this.m_localAnchor2.SetV(this.m_revolute2.m_localAnchor2),f=this.m_revolute2.GetJointAngle()):(this.m_prismatic2=b.joint2 instanceof M?b.joint2:
null,this.m_groundAnchor2.SetV(this.m_prismatic2.m_localAnchor1),this.m_localAnchor2.SetV(this.m_prismatic2.m_localAnchor2),f=this.m_prismatic2.GetJointTranslation());this.m_ratio=b.ratio;this.m_constant=e+this.m_ratio*f;this.m_impulse=0};z.prototype.InitVelocityConstraints=function(b){var c=this.m_ground1,d=this.m_ground2,e=this.m_bodyA,f=this.m_bodyB,g=0,j=0,l=0,m=0,n=0,r=0;this.m_J.SetZero();this.m_revolute1?(this.m_J.angularA=-1,r+=e.m_invI):(c=c.m_xf.R,j=this.m_prismatic1.m_localXAxis1,g=c.col1.x*
j.x+c.col2.x*j.y,j=c.col1.y*j.x+c.col2.y*j.y,c=e.m_xf.R,l=this.m_localAnchor1.x-e.m_sweep.localCenter.x,m=this.m_localAnchor1.y-e.m_sweep.localCenter.y,n=c.col1.x*l+c.col2.x*m,m=c.col1.y*l+c.col2.y*m,l=n*j-m*g,this.m_J.linearA.Set(-g,-j),this.m_J.angularA=-l,r+=e.m_invMass+e.m_invI*l*l);this.m_revolute2?(this.m_J.angularB=-this.m_ratio,r+=this.m_ratio*this.m_ratio*f.m_invI):(c=d.m_xf.R,j=this.m_prismatic2.m_localXAxis1,g=c.col1.x*j.x+c.col2.x*j.y,j=c.col1.y*j.x+c.col2.y*j.y,c=f.m_xf.R,l=this.m_localAnchor2.x-
f.m_sweep.localCenter.x,m=this.m_localAnchor2.y-f.m_sweep.localCenter.y,n=c.col1.x*l+c.col2.x*m,m=c.col1.y*l+c.col2.y*m,l=n*j-m*g,this.m_J.linearB.Set(-this.m_ratio*g,-this.m_ratio*j),this.m_J.angularB=-this.m_ratio*l,r+=this.m_ratio*this.m_ratio*(f.m_invMass+f.m_invI*l*l));this.m_mass=0<r?1/r:0;b.warmStarting?(e.m_linearVelocity.x+=e.m_invMass*this.m_impulse*this.m_J.linearA.x,e.m_linearVelocity.y+=e.m_invMass*this.m_impulse*this.m_J.linearA.y,e.m_angularVelocity+=e.m_invI*this.m_impulse*this.m_J.angularA,
f.m_linearVelocity.x+=f.m_invMass*this.m_impulse*this.m_J.linearB.x,f.m_linearVelocity.y+=f.m_invMass*this.m_impulse*this.m_J.linearB.y,f.m_angularVelocity+=f.m_invI*this.m_impulse*this.m_J.angularB):this.m_impulse=0};z.prototype.SolveVelocityConstraints=function(){var b=this.m_bodyA,c=this.m_bodyB,d=-this.m_mass*this.m_J.Compute(b.m_linearVelocity,b.m_angularVelocity,c.m_linearVelocity,c.m_angularVelocity);this.m_impulse+=d;b.m_linearVelocity.x+=b.m_invMass*d*this.m_J.linearA.x;b.m_linearVelocity.y+=
b.m_invMass*d*this.m_J.linearA.y;b.m_angularVelocity+=b.m_invI*d*this.m_J.angularA;c.m_linearVelocity.x+=c.m_invMass*d*this.m_J.linearB.x;c.m_linearVelocity.y+=c.m_invMass*d*this.m_J.linearB.y;c.m_angularVelocity+=c.m_invI*d*this.m_J.angularB};z.prototype.SolvePositionConstraints=function(){var c=this.m_bodyA,d=this.m_bodyB,e=0,f=0,e=this.m_revolute1?this.m_revolute1.GetJointAngle():this.m_prismatic1.GetJointTranslation(),f=this.m_revolute2?this.m_revolute2.GetJointAngle():this.m_prismatic2.GetJointTranslation(),
e=-this.m_mass*(this.m_constant-(e+this.m_ratio*f));c.m_sweep.c.x+=c.m_invMass*e*this.m_J.linearA.x;c.m_sweep.c.y+=c.m_invMass*e*this.m_J.linearA.y;c.m_sweep.a+=c.m_invI*e*this.m_J.angularA;d.m_sweep.c.x+=d.m_invMass*e*this.m_J.linearB.x;d.m_sweep.c.y+=d.m_invMass*e*this.m_J.linearB.y;d.m_sweep.a+=d.m_invI*e*this.m_J.angularB;c.SynchronizeTransform();d.SynchronizeTransform();return 0<b.b2_linearSlop};Box2D.inherit(y,Box2D.Dynamics.Joints.b2JointDef);y.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;
y.b2GearJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments)};y.prototype.b2GearJointDef=function(){this.__super.b2JointDef.call(this);this.type=B.e_gearJoint;this.joint2=this.joint1=null;this.ratio=1};A.b2Jacobian=function(){this.linearA=new f;this.linearB=new f};A.prototype.SetZero=function(){this.linearA.SetZero();this.angularA=0;this.linearB.SetZero();this.angularB=0};A.prototype.Set=function(b,c,d,e){void 0===c&&(c=0);void 0===e&&(e=0);this.linearA.SetV(b);this.angularA=
c;this.linearB.SetV(d);this.angularB=e};A.prototype.Compute=function(b,c,d,e){void 0===c&&(c=0);void 0===e&&(e=0);return this.linearA.x*b.x+this.linearA.y*b.y+this.angularA*c+(this.linearB.x*d.x+this.linearB.y*d.y)+this.angularB*e};B.b2Joint=function(){this.m_edgeA=new D;this.m_edgeB=new D;this.m_localCenterA=new f;this.m_localCenterB=new f};B.prototype.GetType=function(){return this.m_type};B.prototype.GetAnchorA=function(){return null};B.prototype.GetAnchorB=function(){return null};B.prototype.GetReactionForce=
function(){return null};B.prototype.GetReactionTorque=function(){return 0};B.prototype.GetBodyA=function(){return this.m_bodyA};B.prototype.GetBodyB=function(){return this.m_bodyB};B.prototype.GetNext=function(){return this.m_next};B.prototype.GetUserData=function(){return this.m_userData};B.prototype.SetUserData=function(b){this.m_userData=b};B.prototype.IsActive=function(){return this.m_bodyA.IsActive()&&this.m_bodyB.IsActive()};B.Create=function(b){var c=null;switch(b.type){case B.e_distanceJoint:c=
new n(b instanceof m?b:null);break;case B.e_mouseJoint:c=new E(b instanceof L?b:null);break;case B.e_prismaticJoint:c=new M(b instanceof Q?b:null);break;case B.e_revoluteJoint:c=new O(b instanceof P?b:null);break;case B.e_pulleyJoint:c=new J(b instanceof fa?b:null);break;case B.e_gearJoint:c=new z(b instanceof y?b:null);break;case B.e_lineJoint:c=new x(b instanceof G?b:null);break;case B.e_weldJoint:c=new ba(b instanceof U?b:null);break;case B.e_frictionJoint:c=new g(b instanceof t?b:null)}return c};
B.Destroy=function(){};B.prototype.b2Joint=function(c){b.b2Assert(c.bodyA!=c.bodyB);this.m_type=c.type;this.m_next=this.m_prev=null;this.m_bodyA=c.bodyA;this.m_bodyB=c.bodyB;this.m_collideConnected=c.collideConnected;this.m_islandFlag=!1;this.m_userData=c.userData};B.prototype.InitVelocityConstraints=function(){};B.prototype.SolveVelocityConstraints=function(){};B.prototype.FinalizeVelocityConstraints=function(){};B.prototype.SolvePositionConstraints=function(){return!1};Box2D.postDefs.push(function(){Box2D.Dynamics.Joints.b2Joint.e_unknownJoint=
0;Box2D.Dynamics.Joints.b2Joint.e_revoluteJoint=1;Box2D.Dynamics.Joints.b2Joint.e_prismaticJoint=2;Box2D.Dynamics.Joints.b2Joint.e_distanceJoint=3;Box2D.Dynamics.Joints.b2Joint.e_pulleyJoint=4;Box2D.Dynamics.Joints.b2Joint.e_mouseJoint=5;Box2D.Dynamics.Joints.b2Joint.e_gearJoint=6;Box2D.Dynamics.Joints.b2Joint.e_lineJoint=7;Box2D.Dynamics.Joints.b2Joint.e_weldJoint=8;Box2D.Dynamics.Joints.b2Joint.e_frictionJoint=9;Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit=0;Box2D.Dynamics.Joints.b2Joint.e_atLowerLimit=
1;Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit=2;Box2D.Dynamics.Joints.b2Joint.e_equalLimits=3});I.b2JointDef=function(){};I.prototype.b2JointDef=function(){this.type=B.e_unknownJoint;this.bodyB=this.bodyA=this.userData=null;this.collideConnected=!1};D.b2JointEdge=function(){};Box2D.inherit(x,Box2D.Dynamics.Joints.b2Joint);x.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;x.b2LineJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_localAnchor1=new f;this.m_localAnchor2=
new f;this.m_localXAxis1=new f;this.m_localYAxis1=new f;this.m_axis=new f;this.m_perp=new f;this.m_K=new c;this.m_impulse=new f};x.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};x.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};x.prototype.GetReactionForce=function(b){void 0===b&&(b=0);return new f(b*(this.m_impulse.x*this.m_perp.x+(this.m_motorImpulse+this.m_impulse.y)*this.m_axis.x),b*(this.m_impulse.x*this.m_perp.y+
(this.m_motorImpulse+this.m_impulse.y)*this.m_axis.y))};x.prototype.GetReactionTorque=function(b){void 0===b&&(b=0);return b*this.m_impulse.y};x.prototype.GetJointTranslation=function(){var b=this.m_bodyA,c=this.m_bodyB,d=b.GetWorldPoint(this.m_localAnchor1),e=c.GetWorldPoint(this.m_localAnchor2),c=e.x-d.x,d=e.y-d.y,b=b.GetWorldVector(this.m_localXAxis1);return b.x*c+b.y*d};x.prototype.GetJointSpeed=function(){var b=this.m_bodyA,c=this.m_bodyB,d;d=b.m_xf.R;var e=this.m_localAnchor1.x-b.m_sweep.localCenter.x,
f=this.m_localAnchor1.y-b.m_sweep.localCenter.y,g=d.col1.x*e+d.col2.x*f,f=d.col1.y*e+d.col2.y*f,e=g;d=c.m_xf.R;var j=this.m_localAnchor2.x-c.m_sweep.localCenter.x,l=this.m_localAnchor2.y-c.m_sweep.localCenter.y,g=d.col1.x*j+d.col2.x*l,l=d.col1.y*j+d.col2.y*l,j=g;d=c.m_sweep.c.x+j-(b.m_sweep.c.x+e);var g=c.m_sweep.c.y+l-(b.m_sweep.c.y+f),m=b.GetWorldVector(this.m_localXAxis1),n=b.m_linearVelocity,r=c.m_linearVelocity,b=b.m_angularVelocity,c=c.m_angularVelocity;return d*-b*m.y+g*b*m.x+(m.x*(r.x+-c*
l-n.x- -b*f)+m.y*(r.y+c*j-n.y-b*e))};x.prototype.IsLimitEnabled=function(){return this.m_enableLimit};x.prototype.EnableLimit=function(b){this.m_bodyA.SetAwake(!0);this.m_bodyB.SetAwake(!0);this.m_enableLimit=b};x.prototype.GetLowerLimit=function(){return this.m_lowerTranslation};x.prototype.GetUpperLimit=function(){return this.m_upperTranslation};x.prototype.SetLimits=function(b,c){void 0===b&&(b=0);void 0===c&&(c=0);this.m_bodyA.SetAwake(!0);this.m_bodyB.SetAwake(!0);this.m_lowerTranslation=b;this.m_upperTranslation=
c};x.prototype.IsMotorEnabled=function(){return this.m_enableMotor};x.prototype.EnableMotor=function(b){this.m_bodyA.SetAwake(!0);this.m_bodyB.SetAwake(!0);this.m_enableMotor=b};x.prototype.SetMotorSpeed=function(b){void 0===b&&(b=0);this.m_bodyA.SetAwake(!0);this.m_bodyB.SetAwake(!0);this.m_motorSpeed=b};x.prototype.GetMotorSpeed=function(){return this.m_motorSpeed};x.prototype.SetMaxMotorForce=function(b){void 0===b&&(b=0);this.m_bodyA.SetAwake(!0);this.m_bodyB.SetAwake(!0);this.m_maxMotorForce=
b};x.prototype.GetMaxMotorForce=function(){return this.m_maxMotorForce};x.prototype.GetMotorForce=function(){return this.m_motorImpulse};x.prototype.b2LineJoint=function(b){this.__super.b2Joint.call(this,b);this.m_localAnchor1.SetV(b.localAnchorA);this.m_localAnchor2.SetV(b.localAnchorB);this.m_localXAxis1.SetV(b.localAxisA);this.m_localYAxis1.x=-this.m_localXAxis1.y;this.m_localYAxis1.y=this.m_localXAxis1.x;this.m_impulse.SetZero();this.m_motorImpulse=this.m_motorMass=0;this.m_lowerTranslation=b.lowerTranslation;
this.m_upperTranslation=b.upperTranslation;this.m_maxMotorForce=b.maxMotorForce;this.m_motorSpeed=b.motorSpeed;this.m_enableLimit=b.enableLimit;this.m_enableMotor=b.enableMotor;this.m_limitState=B.e_inactiveLimit;this.m_axis.SetZero();this.m_perp.SetZero()};x.prototype.InitVelocityConstraints=function(c){var d=this.m_bodyA,f=this.m_bodyB,g,j=0;this.m_localCenterA.SetV(d.GetLocalCenter());this.m_localCenterB.SetV(f.GetLocalCenter());var m=d.GetTransform();f.GetTransform();g=d.m_xf.R;var n=this.m_localAnchor1.x-
this.m_localCenterA.x,l=this.m_localAnchor1.y-this.m_localCenterA.y,j=g.col1.x*n+g.col2.x*l,l=g.col1.y*n+g.col2.y*l,n=j;g=f.m_xf.R;var q=this.m_localAnchor2.x-this.m_localCenterB.x,t=this.m_localAnchor2.y-this.m_localCenterB.y,j=g.col1.x*q+g.col2.x*t,t=g.col1.y*q+g.col2.y*t,q=j;g=f.m_sweep.c.x+q-d.m_sweep.c.x-n;j=f.m_sweep.c.y+t-d.m_sweep.c.y-l;this.m_invMassA=d.m_invMass;this.m_invMassB=f.m_invMass;this.m_invIA=d.m_invI;this.m_invIB=f.m_invI;this.m_axis.SetV(e.MulMV(m.R,this.m_localXAxis1));this.m_a1=
(g+n)*this.m_axis.y-(j+l)*this.m_axis.x;this.m_a2=q*this.m_axis.y-t*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=this.m_motorMass>Number.MIN_VALUE?1/this.m_motorMass:0;this.m_perp.SetV(e.MulMV(m.R,this.m_localYAxis1));this.m_s1=(g+n)*this.m_perp.y-(j+l)*this.m_perp.x;this.m_s2=q*this.m_perp.y-t*this.m_perp.x;m=this.m_invMassA;n=this.m_invMassB;l=this.m_invIA;q=this.m_invIB;this.m_K.col1.x=m+n+l*this.m_s1*
this.m_s1+q*this.m_s2*this.m_s2;this.m_K.col1.y=l*this.m_s1*this.m_a1+q*this.m_s2*this.m_a2;this.m_K.col2.x=this.m_K.col1.y;this.m_K.col2.y=m+n+l*this.m_a1*this.m_a1+q*this.m_a2*this.m_a2;this.m_enableLimit?(g=this.m_axis.x*g+this.m_axis.y*j,e.Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*b.b2_linearSlop?this.m_limitState=B.e_equalLimits:g<=this.m_lowerTranslation?this.m_limitState!=B.e_atLowerLimit&&(this.m_limitState=B.e_atLowerLimit,this.m_impulse.y=0):g>=this.m_upperTranslation?this.m_limitState!=
B.e_atUpperLimit&&(this.m_limitState=B.e_atUpperLimit,this.m_impulse.y=0):(this.m_limitState=B.e_inactiveLimit,this.m_impulse.y=0)):this.m_limitState=B.e_inactiveLimit;!1==this.m_enableMotor&&(this.m_motorImpulse=0);c.warmStarting?(this.m_impulse.x*=c.dtRatio,this.m_impulse.y*=c.dtRatio,this.m_motorImpulse*=c.dtRatio,c=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,j=this.m_impulse.x*
this.m_s1+(this.m_motorImpulse+this.m_impulse.y)*this.m_a1,m=this.m_impulse.x*this.m_s2+(this.m_motorImpulse+this.m_impulse.y)*this.m_a2,d.m_linearVelocity.x-=this.m_invMassA*c,d.m_linearVelocity.y-=this.m_invMassA*g,d.m_angularVelocity-=this.m_invIA*j,f.m_linearVelocity.x+=this.m_invMassB*c,f.m_linearVelocity.y+=this.m_invMassB*g,f.m_angularVelocity+=this.m_invIB*m):(this.m_impulse.SetZero(),this.m_motorImpulse=0)};x.prototype.SolveVelocityConstraints=function(b){var c=this.m_bodyA,d=this.m_bodyB,
g=c.m_linearVelocity,j=c.m_angularVelocity,m=d.m_linearVelocity,n=d.m_angularVelocity,l=0,q=0,t=0,r=0;this.m_enableMotor&&this.m_limitState!=B.e_equalLimits&&(r=this.m_motorMass*(this.m_motorSpeed-(this.m_axis.x*(m.x-g.x)+this.m_axis.y*(m.y-g.y)+this.m_a2*n-this.m_a1*j)),l=this.m_motorImpulse,q=b.dt*this.m_maxMotorForce,this.m_motorImpulse=e.Clamp(this.m_motorImpulse+r,-q,q),r=this.m_motorImpulse-l,l=r*this.m_axis.x,q=r*this.m_axis.y,t=r*this.m_a1,r*=this.m_a2,g.x-=this.m_invMassA*l,g.y-=this.m_invMassA*
q,j-=this.m_invIA*t,m.x+=this.m_invMassB*l,m.y+=this.m_invMassB*q,n+=this.m_invIB*r);q=this.m_perp.x*(m.x-g.x)+this.m_perp.y*(m.y-g.y)+this.m_s2*n-this.m_s1*j;this.m_enableLimit&&this.m_limitState!=B.e_inactiveLimit?(t=this.m_axis.x*(m.x-g.x)+this.m_axis.y*(m.y-g.y)+this.m_a2*n-this.m_a1*j,l=this.m_impulse.Copy(),b=this.m_K.Solve(new f,-q,-t),this.m_impulse.Add(b),this.m_limitState==B.e_atLowerLimit?this.m_impulse.y=e.Max(this.m_impulse.y,0):this.m_limitState==B.e_atUpperLimit&&(this.m_impulse.y=
e.Min(this.m_impulse.y,0)),q=-q-(this.m_impulse.y-l.y)*this.m_K.col2.x,t=0!=this.m_K.col1.x?q/this.m_K.col1.x+l.x:l.x,this.m_impulse.x=t,b.x=this.m_impulse.x-l.x,b.y=this.m_impulse.y-l.y,l=b.x*this.m_perp.x+b.y*this.m_axis.x,q=b.x*this.m_perp.y+b.y*this.m_axis.y,t=b.x*this.m_s1+b.y*this.m_a1,r=b.x*this.m_s2+b.y*this.m_a2):(b=0!=this.m_K.col1.x?-q/this.m_K.col1.x:0,this.m_impulse.x+=b,l=b*this.m_perp.x,q=b*this.m_perp.y,t=b*this.m_s1,r=b*this.m_s2);g.x-=this.m_invMassA*l;g.y-=this.m_invMassA*q;j-=
this.m_invIA*t;m.x+=this.m_invMassB*l;m.y+=this.m_invMassB*q;n+=this.m_invIB*r;c.m_linearVelocity.SetV(g);c.m_angularVelocity=j;d.m_linearVelocity.SetV(m);d.m_angularVelocity=n};x.prototype.SolvePositionConstraints=function(){var d=this.m_bodyA,g=this.m_bodyB,j=d.m_sweep.c,m=d.m_sweep.a,n=g.m_sweep.c,t=g.m_sweep.a,x,l=0,q=0,y=0,r=0,z=0,B=0,q=!1,A=0,D=c.FromAngle(m),y=c.FromAngle(t);x=D;var B=this.m_localAnchor1.x-this.m_localCenterA.x,E=this.m_localAnchor1.y-this.m_localCenterA.y,l=x.col1.x*B+x.col2.x*
E,E=x.col1.y*B+x.col2.y*E,B=l;x=y;y=this.m_localAnchor2.x-this.m_localCenterB.x;r=this.m_localAnchor2.y-this.m_localCenterB.y;l=x.col1.x*y+x.col2.x*r;r=x.col1.y*y+x.col2.y*r;y=l;x=n.x+y-j.x-B;l=n.y+r-j.y-E;if(this.m_enableLimit){this.m_axis=e.MulMV(D,this.m_localXAxis1);this.m_a1=(x+B)*this.m_axis.y-(l+E)*this.m_axis.x;this.m_a2=y*this.m_axis.y-r*this.m_axis.x;var G=this.m_axis.x*x+this.m_axis.y*l;e.Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*b.b2_linearSlop?(A=e.Clamp(G,-b.b2_maxLinearCorrection,
b.b2_maxLinearCorrection),z=e.Abs(G),q=!0):G<=this.m_lowerTranslation?(A=e.Clamp(G-this.m_lowerTranslation+b.b2_linearSlop,-b.b2_maxLinearCorrection,0),z=this.m_lowerTranslation-G,q=!0):G>=this.m_upperTranslation&&(A=e.Clamp(G-this.m_upperTranslation+b.b2_linearSlop,0,b.b2_maxLinearCorrection),z=G-this.m_upperTranslation,q=!0)}this.m_perp=e.MulMV(D,this.m_localYAxis1);this.m_s1=(x+B)*this.m_perp.y-(l+E)*this.m_perp.x;this.m_s2=y*this.m_perp.y-r*this.m_perp.x;D=new f;E=this.m_perp.x*x+this.m_perp.y*
l;z=e.Max(z,e.Abs(E));B=0;q?(q=this.m_invMassA,y=this.m_invMassB,r=this.m_invIA,x=this.m_invIB,this.m_K.col1.x=q+y+r*this.m_s1*this.m_s1+x*this.m_s2*this.m_s2,this.m_K.col1.y=r*this.m_s1*this.m_a1+x*this.m_s2*this.m_a2,this.m_K.col2.x=this.m_K.col1.y,this.m_K.col2.y=q+y+r*this.m_a1*this.m_a1+x*this.m_a2*this.m_a2,this.m_K.Solve(D,-E,-A)):(q=this.m_invMassA,y=this.m_invMassB,r=this.m_invIA,x=this.m_invIB,A=q+y+r*this.m_s1*this.m_s1+x*this.m_s2*this.m_s2,D.x=0!=A?-E/A:0,D.y=0);A=D.x*this.m_perp.x+D.y*
this.m_axis.x;q=D.x*this.m_perp.y+D.y*this.m_axis.y;E=D.x*this.m_s1+D.y*this.m_a1;D=D.x*this.m_s2+D.y*this.m_a2;j.x-=this.m_invMassA*A;j.y-=this.m_invMassA*q;m-=this.m_invIA*E;n.x+=this.m_invMassB*A;n.y+=this.m_invMassB*q;t+=this.m_invIB*D;d.m_sweep.a=m;g.m_sweep.a=t;d.SynchronizeTransform();g.SynchronizeTransform();return z<=b.b2_linearSlop&&B<=b.b2_angularSlop};Box2D.inherit(G,Box2D.Dynamics.Joints.b2JointDef);G.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;G.b2LineJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,
arguments);this.localAnchorA=new f;this.localAnchorB=new f;this.localAxisA=new f};G.prototype.b2LineJointDef=function(){this.__super.b2JointDef.call(this);this.type=B.e_lineJoint;this.localAxisA.Set(1,0);this.enableLimit=!1;this.upperTranslation=this.lowerTranslation=0;this.enableMotor=!1;this.motorSpeed=this.maxMotorForce=0};G.prototype.Initialize=function(b,c,d,e){this.bodyA=b;this.bodyB=c;this.localAnchorA=this.bodyA.GetLocalPoint(d);this.localAnchorB=this.bodyB.GetLocalPoint(d);this.localAxisA=
this.bodyA.GetLocalVector(e)};Box2D.inherit(E,Box2D.Dynamics.Joints.b2Joint);E.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;E.b2MouseJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.K=new c;this.K1=new c;this.K2=new c;this.m_localAnchor=new f;this.m_target=new f;this.m_impulse=new f;this.m_mass=new c;this.m_C=new f};E.prototype.GetAnchorA=function(){return this.m_target};E.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor)};
E.prototype.GetReactionForce=function(b){void 0===b&&(b=0);return new f(b*this.m_impulse.x,b*this.m_impulse.y)};E.prototype.GetReactionTorque=function(){return 0};E.prototype.GetTarget=function(){return this.m_target};E.prototype.SetTarget=function(b){!1==this.m_bodyB.IsAwake()&&this.m_bodyB.SetAwake(!0);this.m_target=b};E.prototype.GetMaxForce=function(){return this.m_maxForce};E.prototype.SetMaxForce=function(b){void 0===b&&(b=0);this.m_maxForce=b};E.prototype.GetFrequency=function(){return this.m_frequencyHz};
E.prototype.SetFrequency=function(b){void 0===b&&(b=0);this.m_frequencyHz=b};E.prototype.GetDampingRatio=function(){return this.m_dampingRatio};E.prototype.SetDampingRatio=function(b){void 0===b&&(b=0);this.m_dampingRatio=b};E.prototype.b2MouseJoint=function(b){this.__super.b2Joint.call(this,b);this.m_target.SetV(b.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,e=this.m_bodyB.m_xf.R;this.m_localAnchor.x=c*e.col1.x+d*e.col1.y;this.m_localAnchor.y=
c*e.col2.x+d*e.col2.y;this.m_maxForce=b.maxForce;this.m_impulse.SetZero();this.m_frequencyHz=b.frequencyHz;this.m_dampingRatio=b.dampingRatio;this.m_gamma=this.m_beta=0};E.prototype.InitVelocityConstraints=function(b){var c=this.m_bodyB,d=c.GetMass(),e=2*Math.PI*this.m_frequencyHz,f=d*e*e;this.m_gamma=b.dt*(2*d*this.m_dampingRatio*e+b.dt*f);this.m_gamma=0!=this.m_gamma?1/this.m_gamma:0;this.m_beta=b.dt*f*this.m_gamma;var f=c.m_xf.R,d=this.m_localAnchor.x-c.m_sweep.localCenter.x,e=this.m_localAnchor.y-
c.m_sweep.localCenter.y,g=f.col1.x*d+f.col2.x*e,e=f.col1.y*d+f.col2.y*e,d=g,f=c.m_invMass,g=c.m_invI;this.K1.col1.x=f;this.K1.col2.x=0;this.K1.col1.y=0;this.K1.col2.y=f;this.K2.col1.x=g*e*e;this.K2.col2.x=-g*d*e;this.K2.col1.y=-g*d*e;this.K2.col2.y=g*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+e-this.m_target.y;c.m_angularVelocity*=0.98;this.m_impulse.x*=
b.dtRatio;this.m_impulse.y*=b.dtRatio;c.m_linearVelocity.x+=f*this.m_impulse.x;c.m_linearVelocity.y+=f*this.m_impulse.y;c.m_angularVelocity+=g*(d*this.m_impulse.y-e*this.m_impulse.x)};E.prototype.SolveVelocityConstraints=function(b){var c=this.m_bodyB,d,e=0,f=0;d=c.m_xf.R;var g=this.m_localAnchor.x-c.m_sweep.localCenter.x,j=this.m_localAnchor.y-c.m_sweep.localCenter.y,e=d.col1.x*g+d.col2.x*j,j=d.col1.y*g+d.col2.y*j,g=e,e=c.m_linearVelocity.x+-c.m_angularVelocity*j,l=c.m_linearVelocity.y+c.m_angularVelocity*
g;d=this.m_mass;e=e+this.m_beta*this.m_C.x+this.m_gamma*this.m_impulse.x;f=l+this.m_beta*this.m_C.y+this.m_gamma*this.m_impulse.y;l=-(d.col1.x*e+d.col2.x*f);f=-(d.col1.y*e+d.col2.y*f);d=this.m_impulse.x;e=this.m_impulse.y;this.m_impulse.x+=l;this.m_impulse.y+=f;b=b.dt*this.m_maxForce;this.m_impulse.LengthSquared()>b*b&&this.m_impulse.Multiply(b/this.m_impulse.Length());l=this.m_impulse.x-d;f=this.m_impulse.y-e;c.m_linearVelocity.x+=c.m_invMass*l;c.m_linearVelocity.y+=c.m_invMass*f;c.m_angularVelocity+=
c.m_invI*(g*f-j*l)};E.prototype.SolvePositionConstraints=function(){return!0};Box2D.inherit(L,Box2D.Dynamics.Joints.b2JointDef);L.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;L.b2MouseJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.target=new f};L.prototype.b2MouseJointDef=function(){this.__super.b2JointDef.call(this);this.type=B.e_mouseJoint;this.maxForce=0;this.frequencyHz=5;this.dampingRatio=0.7};Box2D.inherit(M,Box2D.Dynamics.Joints.b2Joint);
M.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;M.b2PrismaticJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_localAnchor1=new f;this.m_localAnchor2=new f;this.m_localXAxis1=new f;this.m_localYAxis1=new f;this.m_axis=new f;this.m_perp=new f;this.m_K=new d;this.m_impulse=new j};M.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};M.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};
M.prototype.GetReactionForce=function(b){void 0===b&&(b=0);return new f(b*(this.m_impulse.x*this.m_perp.x+(this.m_motorImpulse+this.m_impulse.z)*this.m_axis.x),b*(this.m_impulse.x*this.m_perp.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_axis.y))};M.prototype.GetReactionTorque=function(b){void 0===b&&(b=0);return b*this.m_impulse.y};M.prototype.GetJointTranslation=function(){var b=this.m_bodyA,c=this.m_bodyB,d=b.GetWorldPoint(this.m_localAnchor1),e=c.GetWorldPoint(this.m_localAnchor2),c=e.x-d.x,
d=e.y-d.y,b=b.GetWorldVector(this.m_localXAxis1);return b.x*c+b.y*d};M.prototype.GetJointSpeed=function(){var b=this.m_bodyA,c=this.m_bodyB,d;d=b.m_xf.R;var e=this.m_localAnchor1.x-b.m_sweep.localCenter.x,f=this.m_localAnchor1.y-b.m_sweep.localCenter.y,g=d.col1.x*e+d.col2.x*f,f=d.col1.y*e+d.col2.y*f,e=g;d=c.m_xf.R;var j=this.m_localAnchor2.x-c.m_sweep.localCenter.x,l=this.m_localAnchor2.y-c.m_sweep.localCenter.y,g=d.col1.x*j+d.col2.x*l,l=d.col1.y*j+d.col2.y*l,j=g;d=c.m_sweep.c.x+j-(b.m_sweep.c.x+
e);var g=c.m_sweep.c.y+l-(b.m_sweep.c.y+f),m=b.GetWorldVector(this.m_localXAxis1),n=b.m_linearVelocity,r=c.m_linearVelocity,b=b.m_angularVelocity,c=c.m_angularVelocity;return d*-b*m.y+g*b*m.x+(m.x*(r.x+-c*l-n.x- -b*f)+m.y*(r.y+c*j-n.y-b*e))};M.prototype.IsLimitEnabled=function(){return this.m_enableLimit};M.prototype.EnableLimit=function(b){this.m_bodyA.SetAwake(!0);this.m_bodyB.SetAwake(!0);this.m_enableLimit=b};M.prototype.GetLowerLimit=function(){return this.m_lowerTranslation};M.prototype.GetUpperLimit=
function(){return this.m_upperTranslation};M.prototype.SetLimits=function(b,c){void 0===b&&(b=0);void 0===c&&(c=0);this.m_bodyA.SetAwake(!0);this.m_bodyB.SetAwake(!0);this.m_lowerTranslation=b;this.m_upperTranslation=c};M.prototype.IsMotorEnabled=function(){return this.m_enableMotor};M.prototype.EnableMotor=function(b){this.m_bodyA.SetAwake(!0);this.m_bodyB.SetAwake(!0);this.m_enableMotor=b};M.prototype.SetMotorSpeed=function(b){void 0===b&&(b=0);this.m_bodyA.SetAwake(!0);this.m_bodyB.SetAwake(!0);
this.m_motorSpeed=b};M.prototype.GetMotorSpeed=function(){return this.m_motorSpeed};M.prototype.SetMaxMotorForce=function(b){void 0===b&&(b=0);this.m_bodyA.SetAwake(!0);this.m_bodyB.SetAwake(!0);this.m_maxMotorForce=b};M.prototype.GetMotorForce=function(){return this.m_motorImpulse};M.prototype.b2PrismaticJoint=function(b){this.__super.b2Joint.call(this,b);this.m_localAnchor1.SetV(b.localAnchorA);this.m_localAnchor2.SetV(b.localAnchorB);this.m_localXAxis1.SetV(b.localAxisA);this.m_localYAxis1.x=-this.m_localXAxis1.y;
this.m_localYAxis1.y=this.m_localXAxis1.x;this.m_refAngle=b.referenceAngle;this.m_impulse.SetZero();this.m_motorImpulse=this.m_motorMass=0;this.m_lowerTranslation=b.lowerTranslation;this.m_upperTranslation=b.upperTranslation;this.m_maxMotorForce=b.maxMotorForce;this.m_motorSpeed=b.motorSpeed;this.m_enableLimit=b.enableLimit;this.m_enableMotor=b.enableMotor;this.m_limitState=B.e_inactiveLimit;this.m_axis.SetZero();this.m_perp.SetZero()};M.prototype.InitVelocityConstraints=function(c){var d=this.m_bodyA,
f=this.m_bodyB,g,j=0;this.m_localCenterA.SetV(d.GetLocalCenter());this.m_localCenterB.SetV(f.GetLocalCenter());var m=d.GetTransform();f.GetTransform();g=d.m_xf.R;var n=this.m_localAnchor1.x-this.m_localCenterA.x,l=this.m_localAnchor1.y-this.m_localCenterA.y,j=g.col1.x*n+g.col2.x*l,l=g.col1.y*n+g.col2.y*l,n=j;g=f.m_xf.R;var q=this.m_localAnchor2.x-this.m_localCenterB.x,t=this.m_localAnchor2.y-this.m_localCenterB.y,j=g.col1.x*q+g.col2.x*t,t=g.col1.y*q+g.col2.y*t,q=j;g=f.m_sweep.c.x+q-d.m_sweep.c.x-
n;j=f.m_sweep.c.y+t-d.m_sweep.c.y-l;this.m_invMassA=d.m_invMass;this.m_invMassB=f.m_invMass;this.m_invIA=d.m_invI;this.m_invIB=f.m_invI;this.m_axis.SetV(e.MulMV(m.R,this.m_localXAxis1));this.m_a1=(g+n)*this.m_axis.y-(j+l)*this.m_axis.x;this.m_a2=q*this.m_axis.y-t*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(e.MulMV(m.R,this.m_localYAxis1));
this.m_s1=(g+n)*this.m_perp.y-(j+l)*this.m_perp.x;this.m_s2=q*this.m_perp.y-t*this.m_perp.x;m=this.m_invMassA;n=this.m_invMassB;l=this.m_invIA;q=this.m_invIB;this.m_K.col1.x=m+n+l*this.m_s1*this.m_s1+q*this.m_s2*this.m_s2;this.m_K.col1.y=l*this.m_s1+q*this.m_s2;this.m_K.col1.z=l*this.m_s1*this.m_a1+q*this.m_s2*this.m_a2;this.m_K.col2.x=this.m_K.col1.y;this.m_K.col2.y=l+q;this.m_K.col2.z=l*this.m_a1+q*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=m+n+l*this.m_a1*
this.m_a1+q*this.m_a2*this.m_a2;this.m_enableLimit?(g=this.m_axis.x*g+this.m_axis.y*j,e.Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*b.b2_linearSlop?this.m_limitState=B.e_equalLimits:g<=this.m_lowerTranslation?this.m_limitState!=B.e_atLowerLimit&&(this.m_limitState=B.e_atLowerLimit,this.m_impulse.z=0):g>=this.m_upperTranslation?this.m_limitState!=B.e_atUpperLimit&&(this.m_limitState=B.e_atUpperLimit,this.m_impulse.z=0):(this.m_limitState=B.e_inactiveLimit,this.m_impulse.z=0)):this.m_limitState=
B.e_inactiveLimit;!1==this.m_enableMotor&&(this.m_motorImpulse=0);c.warmStarting?(this.m_impulse.x*=c.dtRatio,this.m_impulse.y*=c.dtRatio,this.m_motorImpulse*=c.dtRatio,c=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,j=this.m_impulse.x*this.m_s1+this.m_impulse.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_a1,m=this.m_impulse.x*this.m_s2+this.m_impulse.y+(this.m_motorImpulse+
this.m_impulse.z)*this.m_a2,d.m_linearVelocity.x-=this.m_invMassA*c,d.m_linearVelocity.y-=this.m_invMassA*g,d.m_angularVelocity-=this.m_invIA*j,f.m_linearVelocity.x+=this.m_invMassB*c,f.m_linearVelocity.y+=this.m_invMassB*g,f.m_angularVelocity+=this.m_invIB*m):(this.m_impulse.SetZero(),this.m_motorImpulse=0)};M.prototype.SolveVelocityConstraints=function(b){var c=this.m_bodyA,d=this.m_bodyB,g=c.m_linearVelocity,m=c.m_angularVelocity,n=d.m_linearVelocity,t=d.m_angularVelocity,l=0,q=0,x=0,r=0;this.m_enableMotor&&
this.m_limitState!=B.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*t-this.m_a1*m)),l=this.m_motorImpulse,b=b.dt*this.m_maxMotorForce,this.m_motorImpulse=e.Clamp(this.m_motorImpulse+r,-b,b),r=this.m_motorImpulse-l,l=r*this.m_axis.x,q=r*this.m_axis.y,x=r*this.m_a1,r*=this.m_a2,g.x-=this.m_invMassA*l,g.y-=this.m_invMassA*q,m-=this.m_invIA*x,n.x+=this.m_invMassB*l,n.y+=this.m_invMassB*q,t+=this.m_invIB*r);x=this.m_perp.x*(n.x-g.x)+this.m_perp.y*
(n.y-g.y)+this.m_s2*t-this.m_s1*m;q=t-m;this.m_enableLimit&&this.m_limitState!=B.e_inactiveLimit?(b=this.m_axis.x*(n.x-g.x)+this.m_axis.y*(n.y-g.y)+this.m_a2*t-this.m_a1*m,l=this.m_impulse.Copy(),b=this.m_K.Solve33(new j,-x,-q,-b),this.m_impulse.Add(b),this.m_limitState==B.e_atLowerLimit?this.m_impulse.z=e.Max(this.m_impulse.z,0):this.m_limitState==B.e_atUpperLimit&&(this.m_impulse.z=e.Min(this.m_impulse.z,0)),x=-x-(this.m_impulse.z-l.z)*this.m_K.col3.x,q=-q-(this.m_impulse.z-l.z)*this.m_K.col3.y,
q=this.m_K.Solve22(new f,x,q),q.x+=l.x,q.y+=l.y,this.m_impulse.x=q.x,this.m_impulse.y=q.y,b.x=this.m_impulse.x-l.x,b.y=this.m_impulse.y-l.y,b.z=this.m_impulse.z-l.z,l=b.x*this.m_perp.x+b.z*this.m_axis.x,q=b.x*this.m_perp.y+b.z*this.m_axis.y,x=b.x*this.m_s1+b.y+b.z*this.m_a1,r=b.x*this.m_s2+b.y+b.z*this.m_a2):(b=this.m_K.Solve22(new f,-x,-q),this.m_impulse.x+=b.x,this.m_impulse.y+=b.y,l=b.x*this.m_perp.x,q=b.x*this.m_perp.y,x=b.x*this.m_s1+b.y,r=b.x*this.m_s2+b.y);g.x-=this.m_invMassA*l;g.y-=this.m_invMassA*
q;m-=this.m_invIA*x;n.x+=this.m_invMassB*l;n.y+=this.m_invMassB*q;t+=this.m_invIB*r;c.m_linearVelocity.SetV(g);c.m_angularVelocity=m;d.m_linearVelocity.SetV(n);d.m_angularVelocity=t};M.prototype.SolvePositionConstraints=function(){var d=this.m_bodyA,g=this.m_bodyB,m=d.m_sweep.c,n=d.m_sweep.a,t=g.m_sweep.c,x=g.m_sweep.a,y,l=0,q=0,z=0,r=0,B=0,q=!1,A=0,D=c.FromAngle(n),E=c.FromAngle(x);y=D;var B=this.m_localAnchor1.x-this.m_localCenterA.x,G=this.m_localAnchor1.y-this.m_localCenterA.y,l=y.col1.x*B+y.col2.x*
G,G=y.col1.y*B+y.col2.y*G,B=l;y=E;E=this.m_localAnchor2.x-this.m_localCenterB.x;z=this.m_localAnchor2.y-this.m_localCenterB.y;l=y.col1.x*E+y.col2.x*z;z=y.col1.y*E+y.col2.y*z;E=l;y=t.x+E-m.x-B;l=t.y+z-m.y-G;if(this.m_enableLimit){this.m_axis=e.MulMV(D,this.m_localXAxis1);this.m_a1=(y+B)*this.m_axis.y-(l+G)*this.m_axis.x;this.m_a2=E*this.m_axis.y-z*this.m_axis.x;var I=this.m_axis.x*y+this.m_axis.y*l;e.Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*b.b2_linearSlop?(A=e.Clamp(I,-b.b2_maxLinearCorrection,
b.b2_maxLinearCorrection),r=e.Abs(I),q=!0):I<=this.m_lowerTranslation?(A=e.Clamp(I-this.m_lowerTranslation+b.b2_linearSlop,-b.b2_maxLinearCorrection,0),r=this.m_lowerTranslation-I,q=!0):I>=this.m_upperTranslation&&(A=e.Clamp(I-this.m_upperTranslation+b.b2_linearSlop,0,b.b2_maxLinearCorrection),r=I-this.m_upperTranslation,q=!0)}this.m_perp=e.MulMV(D,this.m_localYAxis1);this.m_s1=(y+B)*this.m_perp.y-(l+G)*this.m_perp.x;this.m_s2=E*this.m_perp.y-z*this.m_perp.x;D=new j;G=this.m_perp.x*y+this.m_perp.y*
l;E=x-n-this.m_refAngle;r=e.Max(r,e.Abs(G));B=e.Abs(E);q?(q=this.m_invMassA,z=this.m_invMassB,y=this.m_invIA,l=this.m_invIB,this.m_K.col1.x=q+z+y*this.m_s1*this.m_s1+l*this.m_s2*this.m_s2,this.m_K.col1.y=y*this.m_s1+l*this.m_s2,this.m_K.col1.z=y*this.m_s1*this.m_a1+l*this.m_s2*this.m_a2,this.m_K.col2.x=this.m_K.col1.y,this.m_K.col2.y=y+l,this.m_K.col2.z=y*this.m_a1+l*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=q+z+y*this.m_a1*this.m_a1+l*this.m_a2*this.m_a2,
this.m_K.Solve33(D,-G,-E,-A)):(q=this.m_invMassA,z=this.m_invMassB,y=this.m_invIA,l=this.m_invIB,A=y*this.m_s1+l*this.m_s2,I=y+l,this.m_K.col1.Set(q+z+y*this.m_s1*this.m_s1+l*this.m_s2*this.m_s2,A,0),this.m_K.col2.Set(A,I,0),A=this.m_K.Solve22(new f,-G,-E),D.x=A.x,D.y=A.y,D.z=0);A=D.x*this.m_perp.x+D.z*this.m_axis.x;q=D.x*this.m_perp.y+D.z*this.m_axis.y;G=D.x*this.m_s1+D.y+D.z*this.m_a1;D=D.x*this.m_s2+D.y+D.z*this.m_a2;m.x-=this.m_invMassA*A;m.y-=this.m_invMassA*q;n-=this.m_invIA*G;t.x+=this.m_invMassB*
A;t.y+=this.m_invMassB*q;x+=this.m_invIB*D;d.m_sweep.a=n;g.m_sweep.a=x;d.SynchronizeTransform();g.SynchronizeTransform();return r<=b.b2_linearSlop&&B<=b.b2_angularSlop};Box2D.inherit(Q,Box2D.Dynamics.Joints.b2JointDef);Q.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;Q.b2PrismaticJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=new f;this.localAnchorB=new f;this.localAxisA=new f};Q.prototype.b2PrismaticJointDef=function(){this.__super.b2JointDef.call(this);
this.type=B.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};Q.prototype.Initialize=function(b,c,d,e){this.bodyA=b;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(J,Box2D.Dynamics.Joints.b2Joint);
J.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;J.b2PulleyJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_groundAnchor1=new f;this.m_groundAnchor2=new f;this.m_localAnchor1=new f;this.m_localAnchor2=new f;this.m_u1=new f;this.m_u2=new f};J.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};J.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};J.prototype.GetReactionForce=function(b){void 0===
b&&(b=0);return new f(b*this.m_impulse*this.m_u2.x,b*this.m_impulse*this.m_u2.y)};J.prototype.GetReactionTorque=function(){return 0};J.prototype.GetGroundAnchorA=function(){var b=this.m_ground.m_xf.position.Copy();b.Add(this.m_groundAnchor1);return b};J.prototype.GetGroundAnchorB=function(){var b=this.m_ground.m_xf.position.Copy();b.Add(this.m_groundAnchor2);return b};J.prototype.GetLength1=function(){var b=this.m_bodyA.GetWorldPoint(this.m_localAnchor1),c=b.x-(this.m_ground.m_xf.position.x+this.m_groundAnchor1.x),
b=b.y-(this.m_ground.m_xf.position.y+this.m_groundAnchor1.y);return Math.sqrt(c*c+b*b)};J.prototype.GetLength2=function(){var b=this.m_bodyB.GetWorldPoint(this.m_localAnchor2),c=b.x-(this.m_ground.m_xf.position.x+this.m_groundAnchor2.x),b=b.y-(this.m_ground.m_xf.position.y+this.m_groundAnchor2.y);return Math.sqrt(c*c+b*b)};J.prototype.GetRatio=function(){return this.m_ratio};J.prototype.b2PulleyJoint=function(b){this.__super.b2Joint.call(this,b);this.m_ground=this.m_bodyA.m_world.m_groundBody;this.m_groundAnchor1.x=
b.groundAnchorA.x-this.m_ground.m_xf.position.x;this.m_groundAnchor1.y=b.groundAnchorA.y-this.m_ground.m_xf.position.y;this.m_groundAnchor2.x=b.groundAnchorB.x-this.m_ground.m_xf.position.x;this.m_groundAnchor2.y=b.groundAnchorB.y-this.m_ground.m_xf.position.y;this.m_localAnchor1.SetV(b.localAnchorA);this.m_localAnchor2.SetV(b.localAnchorB);this.m_ratio=b.ratio;this.m_constant=b.lengthA+this.m_ratio*b.lengthB;this.m_maxLength1=e.Min(b.maxLengthA,this.m_constant-this.m_ratio*J.b2_minPulleyLength);
this.m_maxLength2=e.Min(b.maxLengthB,(this.m_constant-J.b2_minPulleyLength)/this.m_ratio);this.m_limitImpulse2=this.m_limitImpulse1=this.m_impulse=0};J.prototype.InitVelocityConstraints=function(c){var d=this.m_bodyA,e=this.m_bodyB,f;f=d.m_xf.R;var g=this.m_localAnchor1.x-d.m_sweep.localCenter.x,j=this.m_localAnchor1.y-d.m_sweep.localCenter.y,m=f.col1.x*g+f.col2.x*j,j=f.col1.y*g+f.col2.y*j,g=m;f=e.m_xf.R;var l=this.m_localAnchor2.x-e.m_sweep.localCenter.x,n=this.m_localAnchor2.y-e.m_sweep.localCenter.y,
m=f.col1.x*l+f.col2.x*n,n=f.col1.y*l+f.col2.y*n,l=m;f=e.m_sweep.c.x+l;var m=e.m_sweep.c.y+n,t=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(d.m_sweep.c.x+g-(this.m_ground.m_xf.position.x+this.m_groundAnchor1.x),d.m_sweep.c.y+j-(this.m_ground.m_xf.position.y+this.m_groundAnchor1.y));this.m_u2.Set(f-t,m-r);f=this.m_u1.Length();m=this.m_u2.Length();f>b.b2_linearSlop?this.m_u1.Multiply(1/f):this.m_u1.SetZero();m>b.b2_linearSlop?
this.m_u2.Multiply(1/m):this.m_u2.SetZero();0<this.m_constant-f-this.m_ratio*m?(this.m_state=B.e_inactiveLimit,this.m_impulse=0):this.m_state=B.e_atUpperLimit;f<this.m_maxLength1?(this.m_limitState1=B.e_inactiveLimit,this.m_limitImpulse1=0):this.m_limitState1=B.e_atUpperLimit;m<this.m_maxLength2?(this.m_limitState2=B.e_inactiveLimit,this.m_limitImpulse2=0):this.m_limitState2=B.e_atUpperLimit;f=g*this.m_u1.y-j*this.m_u1.x;m=l*this.m_u2.y-n*this.m_u2.x;this.m_limitMass1=d.m_invMass+d.m_invI*f*f;this.m_limitMass2=
e.m_invMass+e.m_invI*m*m;this.m_pulleyMass=this.m_limitMass1+this.m_ratio*this.m_ratio*this.m_limitMass2;this.m_limitMass1=1/this.m_limitMass1;this.m_limitMass2=1/this.m_limitMass2;this.m_pulleyMass=1/this.m_pulleyMass;c.warmStarting?(this.m_impulse*=c.dtRatio,this.m_limitImpulse1*=c.dtRatio,this.m_limitImpulse2*=c.dtRatio,c=(-this.m_impulse-this.m_limitImpulse1)*this.m_u1.x,f=(-this.m_impulse-this.m_limitImpulse1)*this.m_u1.y,m=(-this.m_ratio*this.m_impulse-this.m_limitImpulse2)*this.m_u2.x,t=(-this.m_ratio*
this.m_impulse-this.m_limitImpulse2)*this.m_u2.y,d.m_linearVelocity.x+=d.m_invMass*c,d.m_linearVelocity.y+=d.m_invMass*f,d.m_angularVelocity+=d.m_invI*(g*f-j*c),e.m_linearVelocity.x+=e.m_invMass*m,e.m_linearVelocity.y+=e.m_invMass*t,e.m_angularVelocity+=e.m_invI*(l*t-n*m)):this.m_limitImpulse2=this.m_limitImpulse1=this.m_impulse=0};J.prototype.SolveVelocityConstraints=function(){var b=this.m_bodyA,c=this.m_bodyB,d;d=b.m_xf.R;var f=this.m_localAnchor1.x-b.m_sweep.localCenter.x,g=this.m_localAnchor1.y-
b.m_sweep.localCenter.y,j=d.col1.x*f+d.col2.x*g,g=d.col1.y*f+d.col2.y*g,f=j;d=c.m_xf.R;var m=this.m_localAnchor2.x-c.m_sweep.localCenter.x,l=this.m_localAnchor2.y-c.m_sweep.localCenter.y,j=d.col1.x*m+d.col2.x*l,l=d.col1.y*m+d.col2.y*l,m=j,n=0,t=0;this.m_state==B.e_atUpperLimit&&(d=b.m_linearVelocity.x+-b.m_angularVelocity*g,j=b.m_linearVelocity.y+b.m_angularVelocity*f,n=c.m_linearVelocity.x+-c.m_angularVelocity*l,t=c.m_linearVelocity.y+c.m_angularVelocity*m,d=-(this.m_u1.x*d+this.m_u1.y*j)-this.m_ratio*
(this.m_u2.x*n+this.m_u2.y*t),t=this.m_pulleyMass*-d,d=this.m_impulse,this.m_impulse=e.Max(0,this.m_impulse+t),t=this.m_impulse-d,d=-t*this.m_u1.x,j=-t*this.m_u1.y,n=-this.m_ratio*t*this.m_u2.x,t=-this.m_ratio*t*this.m_u2.y,b.m_linearVelocity.x+=b.m_invMass*d,b.m_linearVelocity.y+=b.m_invMass*j,b.m_angularVelocity+=b.m_invI*(f*j-g*d),c.m_linearVelocity.x+=c.m_invMass*n,c.m_linearVelocity.y+=c.m_invMass*t,c.m_angularVelocity+=c.m_invI*(m*t-l*n));this.m_limitState1==B.e_atUpperLimit&&(d=b.m_linearVelocity.x+
-b.m_angularVelocity*g,j=b.m_linearVelocity.y+b.m_angularVelocity*f,d=-(this.m_u1.x*d+this.m_u1.y*j),t=-this.m_limitMass1*d,d=this.m_limitImpulse1,this.m_limitImpulse1=e.Max(0,this.m_limitImpulse1+t),t=this.m_limitImpulse1-d,d=-t*this.m_u1.x,j=-t*this.m_u1.y,b.m_linearVelocity.x+=b.m_invMass*d,b.m_linearVelocity.y+=b.m_invMass*j,b.m_angularVelocity+=b.m_invI*(f*j-g*d));this.m_limitState2==B.e_atUpperLimit&&(n=c.m_linearVelocity.x+-c.m_angularVelocity*l,t=c.m_linearVelocity.y+c.m_angularVelocity*m,
d=-(this.m_u2.x*n+this.m_u2.y*t),t=-this.m_limitMass2*d,d=this.m_limitImpulse2,this.m_limitImpulse2=e.Max(0,this.m_limitImpulse2+t),t=this.m_limitImpulse2-d,n=-t*this.m_u2.x,t=-t*this.m_u2.y,c.m_linearVelocity.x+=c.m_invMass*n,c.m_linearVelocity.y+=c.m_invMass*t,c.m_angularVelocity+=c.m_invI*(m*t-l*n))};J.prototype.SolvePositionConstraints=function(){var c=this.m_bodyA,d=this.m_bodyB,f,g=this.m_ground.m_xf.position.x+this.m_groundAnchor1.x,j=this.m_ground.m_xf.position.y+this.m_groundAnchor1.y,m=
this.m_ground.m_xf.position.x+this.m_groundAnchor2.x,n=this.m_ground.m_xf.position.y+this.m_groundAnchor2.y,l=0,q=0,t=0,r=0,x=0,y=0,z=0,A=0;this.m_state==B.e_atUpperLimit&&(f=c.m_xf.R,l=this.m_localAnchor1.x-c.m_sweep.localCenter.x,q=this.m_localAnchor1.y-c.m_sweep.localCenter.y,x=f.col1.x*l+f.col2.x*q,q=f.col1.y*l+f.col2.y*q,l=x,f=d.m_xf.R,t=this.m_localAnchor2.x-d.m_sweep.localCenter.x,r=this.m_localAnchor2.y-d.m_sweep.localCenter.y,x=f.col1.x*t+f.col2.x*r,r=f.col1.y*t+f.col2.y*r,t=x,f=c.m_sweep.c.x+
l,x=c.m_sweep.c.y+q,y=d.m_sweep.c.x+t,z=d.m_sweep.c.y+r,this.m_u1.Set(f-g,x-j),this.m_u2.Set(y-m,z-n),f=this.m_u1.Length(),x=this.m_u2.Length(),f>b.b2_linearSlop?this.m_u1.Multiply(1/f):this.m_u1.SetZero(),x>b.b2_linearSlop?this.m_u2.Multiply(1/x):this.m_u2.SetZero(),f=this.m_constant-f-this.m_ratio*x,A=e.Max(A,-f),f=e.Clamp(f+b.b2_linearSlop,-b.b2_maxLinearCorrection,0),z=-this.m_pulleyMass*f,f=-z*this.m_u1.x,x=-z*this.m_u1.y,y=-this.m_ratio*z*this.m_u2.x,z=-this.m_ratio*z*this.m_u2.y,c.m_sweep.c.x+=
c.m_invMass*f,c.m_sweep.c.y+=c.m_invMass*x,c.m_sweep.a+=c.m_invI*(l*x-q*f),d.m_sweep.c.x+=d.m_invMass*y,d.m_sweep.c.y+=d.m_invMass*z,d.m_sweep.a+=d.m_invI*(t*z-r*y),c.SynchronizeTransform(),d.SynchronizeTransform());this.m_limitState1==B.e_atUpperLimit&&(f=c.m_xf.R,l=this.m_localAnchor1.x-c.m_sweep.localCenter.x,q=this.m_localAnchor1.y-c.m_sweep.localCenter.y,x=f.col1.x*l+f.col2.x*q,q=f.col1.y*l+f.col2.y*q,l=x,f=c.m_sweep.c.x+l,x=c.m_sweep.c.y+q,this.m_u1.Set(f-g,x-j),f=this.m_u1.Length(),f>b.b2_linearSlop?
(this.m_u1.x*=1/f,this.m_u1.y*=1/f):this.m_u1.SetZero(),f=this.m_maxLength1-f,A=e.Max(A,-f),f=e.Clamp(f+b.b2_linearSlop,-b.b2_maxLinearCorrection,0),z=-this.m_limitMass1*f,f=-z*this.m_u1.x,x=-z*this.m_u1.y,c.m_sweep.c.x+=c.m_invMass*f,c.m_sweep.c.y+=c.m_invMass*x,c.m_sweep.a+=c.m_invI*(l*x-q*f),c.SynchronizeTransform());this.m_limitState2==B.e_atUpperLimit&&(f=d.m_xf.R,t=this.m_localAnchor2.x-d.m_sweep.localCenter.x,r=this.m_localAnchor2.y-d.m_sweep.localCenter.y,x=f.col1.x*t+f.col2.x*r,r=f.col1.y*
t+f.col2.y*r,t=x,y=d.m_sweep.c.x+t,z=d.m_sweep.c.y+r,this.m_u2.Set(y-m,z-n),x=this.m_u2.Length(),x>b.b2_linearSlop?(this.m_u2.x*=1/x,this.m_u2.y*=1/x):this.m_u2.SetZero(),f=this.m_maxLength2-x,A=e.Max(A,-f),f=e.Clamp(f+b.b2_linearSlop,-b.b2_maxLinearCorrection,0),z=-this.m_limitMass2*f,y=-z*this.m_u2.x,z=-z*this.m_u2.y,d.m_sweep.c.x+=d.m_invMass*y,d.m_sweep.c.y+=d.m_invMass*z,d.m_sweep.a+=d.m_invI*(t*z-r*y),d.SynchronizeTransform());return A<b.b2_linearSlop};Box2D.postDefs.push(function(){Box2D.Dynamics.Joints.b2PulleyJoint.b2_minPulleyLength=
2});Box2D.inherit(fa,Box2D.Dynamics.Joints.b2JointDef);fa.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;fa.b2PulleyJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.groundAnchorA=new f;this.groundAnchorB=new f;this.localAnchorA=new f;this.localAnchorB=new f};fa.prototype.b2PulleyJointDef=function(){this.__super.b2JointDef.call(this);this.type=B.e_pulleyJoint;this.groundAnchorA.Set(-1,1);this.groundAnchorB.Set(1,1);this.localAnchorA.Set(-1,0);
this.localAnchorB.Set(1,0);this.maxLengthB=this.lengthB=this.maxLengthA=this.lengthA=0;this.ratio=1;this.collideConnected=!0};fa.prototype.Initialize=function(b,c,d,e,f,g,j){void 0===j&&(j=0);this.bodyA=b;this.bodyB=c;this.groundAnchorA.SetV(d);this.groundAnchorB.SetV(e);this.localAnchorA=this.bodyA.GetLocalPoint(f);this.localAnchorB=this.bodyB.GetLocalPoint(g);b=f.x-d.x;d=f.y-d.y;this.lengthA=Math.sqrt(b*b+d*d);d=g.x-e.x;e=g.y-e.y;this.lengthB=Math.sqrt(d*d+e*e);this.ratio=j;j=this.lengthA+this.ratio*
this.lengthB;this.maxLengthA=j-this.ratio*J.b2_minPulleyLength;this.maxLengthB=(j-J.b2_minPulleyLength)/this.ratio};Box2D.inherit(O,Box2D.Dynamics.Joints.b2Joint);O.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;O.b2RevoluteJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.K=new c;this.K1=new c;this.K2=new c;this.K3=new c;this.impulse3=new j;this.impulse2=new f;this.reduced=new f;this.m_localAnchor1=new f;this.m_localAnchor2=new f;this.m_impulse=new j;this.m_mass=
new d};O.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};O.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};O.prototype.GetReactionForce=function(b){void 0===b&&(b=0);return new f(b*this.m_impulse.x,b*this.m_impulse.y)};O.prototype.GetReactionTorque=function(b){void 0===b&&(b=0);return b*this.m_impulse.z};O.prototype.GetJointAngle=function(){return this.m_bodyB.m_sweep.a-this.m_bodyA.m_sweep.a-this.m_referenceAngle};O.prototype.GetJointSpeed=
function(){return this.m_bodyB.m_angularVelocity-this.m_bodyA.m_angularVelocity};O.prototype.IsLimitEnabled=function(){return this.m_enableLimit};O.prototype.EnableLimit=function(b){this.m_enableLimit=b};O.prototype.GetLowerLimit=function(){return this.m_lowerAngle};O.prototype.GetUpperLimit=function(){return this.m_upperAngle};O.prototype.SetLimits=function(b,c){void 0===b&&(b=0);void 0===c&&(c=0);this.m_lowerAngle=b;this.m_upperAngle=c};O.prototype.IsMotorEnabled=function(){this.m_bodyA.SetAwake(!0);
this.m_bodyB.SetAwake(!0);return this.m_enableMotor};O.prototype.EnableMotor=function(b){this.m_enableMotor=b};O.prototype.SetMotorSpeed=function(b){void 0===b&&(b=0);this.m_bodyA.SetAwake(!0);this.m_bodyB.SetAwake(!0);this.m_motorSpeed=b};O.prototype.GetMotorSpeed=function(){return this.m_motorSpeed};O.prototype.SetMaxMotorTorque=function(b){void 0===b&&(b=0);this.m_maxMotorTorque=b};O.prototype.GetMotorTorque=function(){return this.m_maxMotorTorque};O.prototype.b2RevoluteJoint=function(b){this.__super.b2Joint.call(this,
b);this.m_localAnchor1.SetV(b.localAnchorA);this.m_localAnchor2.SetV(b.localAnchorB);this.m_referenceAngle=b.referenceAngle;this.m_impulse.SetZero();this.m_motorImpulse=0;this.m_lowerAngle=b.lowerAngle;this.m_upperAngle=b.upperAngle;this.m_maxMotorTorque=b.maxMotorTorque;this.m_motorSpeed=b.motorSpeed;this.m_enableLimit=b.enableLimit;this.m_enableMotor=b.enableMotor;this.m_limitState=B.e_inactiveLimit};O.prototype.InitVelocityConstraints=function(c){var d=this.m_bodyA,f=this.m_bodyB,g,j=0;g=d.m_xf.R;
var m=this.m_localAnchor1.x-d.m_sweep.localCenter.x,n=this.m_localAnchor1.y-d.m_sweep.localCenter.y,j=g.col1.x*m+g.col2.x*n,n=g.col1.y*m+g.col2.y*n,m=j;g=f.m_xf.R;var l=this.m_localAnchor2.x-f.m_sweep.localCenter.x,q=this.m_localAnchor2.y-f.m_sweep.localCenter.y,j=g.col1.x*l+g.col2.x*q,q=g.col1.y*l+g.col2.y*q,l=j;g=d.m_invMass;var j=f.m_invMass,t=d.m_invI,r=f.m_invI;this.m_mass.col1.x=g+j+n*n*t+q*q*r;this.m_mass.col2.x=-n*m*t-q*l*r;this.m_mass.col3.x=-n*t-q*r;this.m_mass.col1.y=this.m_mass.col2.x;
this.m_mass.col2.y=g+j+m*m*t+l*l*r;this.m_mass.col3.y=m*t+l*r;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=t+r;this.m_motorMass=1/(t+r);!1==this.m_enableMotor&&(this.m_motorImpulse=0);if(this.m_enableLimit){var x=f.m_sweep.a-d.m_sweep.a-this.m_referenceAngle;e.Abs(this.m_upperAngle-this.m_lowerAngle)<2*b.b2_angularSlop?this.m_limitState=B.e_equalLimits:x<=this.m_lowerAngle?(this.m_limitState!=B.e_atLowerLimit&&(this.m_impulse.z=0),this.m_limitState=
B.e_atLowerLimit):x>=this.m_upperAngle?(this.m_limitState!=B.e_atUpperLimit&&(this.m_impulse.z=0),this.m_limitState=B.e_atUpperLimit):(this.m_limitState=B.e_inactiveLimit,this.m_impulse.z=0)}else this.m_limitState=B.e_inactiveLimit;c.warmStarting?(this.m_impulse.x*=c.dtRatio,this.m_impulse.y*=c.dtRatio,this.m_motorImpulse*=c.dtRatio,c=this.m_impulse.x,x=this.m_impulse.y,d.m_linearVelocity.x-=g*c,d.m_linearVelocity.y-=g*x,d.m_angularVelocity-=t*(m*x-n*c+this.m_motorImpulse+this.m_impulse.z),f.m_linearVelocity.x+=
j*c,f.m_linearVelocity.y+=j*x,f.m_angularVelocity+=r*(l*x-q*c+this.m_motorImpulse+this.m_impulse.z)):(this.m_impulse.SetZero(),this.m_motorImpulse=0)};O.prototype.SolveVelocityConstraints=function(b){var c=this.m_bodyA,d=this.m_bodyB,f=0,g=0,j=0,m=0,l=0,n=c.m_linearVelocity,t=c.m_angularVelocity,r=d.m_linearVelocity,x=d.m_angularVelocity,y=c.m_invMass,z=d.m_invMass,A=c.m_invI,D=d.m_invI;this.m_enableMotor&&this.m_limitState!=B.e_equalLimits&&(g=this.m_motorMass*-(x-t-this.m_motorSpeed),j=this.m_motorImpulse,
m=b.dt*this.m_maxMotorTorque,this.m_motorImpulse=e.Clamp(this.m_motorImpulse+g,-m,m),g=this.m_motorImpulse-j,t-=A*g,x+=D*g);if(this.m_enableLimit&&this.m_limitState!=B.e_inactiveLimit){b=c.m_xf.R;g=this.m_localAnchor1.x-c.m_sweep.localCenter.x;j=this.m_localAnchor1.y-c.m_sweep.localCenter.y;f=b.col1.x*g+b.col2.x*j;j=b.col1.y*g+b.col2.y*j;g=f;b=d.m_xf.R;m=this.m_localAnchor2.x-d.m_sweep.localCenter.x;l=this.m_localAnchor2.y-d.m_sweep.localCenter.y;f=b.col1.x*m+b.col2.x*l;l=b.col1.y*m+b.col2.y*l;m=
f;b=r.x+-x*l-n.x- -t*j;var E=r.y+x*m-n.y-t*g;this.m_mass.Solve33(this.impulse3,-b,-E,-(x-t));this.m_limitState==B.e_equalLimits?this.m_impulse.Add(this.impulse3):this.m_limitState==B.e_atLowerLimit?(f=this.m_impulse.z+this.impulse3.z,0>f&&(this.m_mass.Solve22(this.reduced,-b,-E),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==B.e_atUpperLimit&&(f=
this.m_impulse.z+this.impulse3.z,0<f&&(this.m_mass.Solve22(this.reduced,-b,-E),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));n.x-=y*this.impulse3.x;n.y-=y*this.impulse3.y;t-=A*(g*this.impulse3.y-j*this.impulse3.x+this.impulse3.z);r.x+=z*this.impulse3.x;r.y+=z*this.impulse3.y;x+=D*(m*this.impulse3.y-l*this.impulse3.x+this.impulse3.z)}else b=c.m_xf.R,g=this.m_localAnchor1.x-
c.m_sweep.localCenter.x,j=this.m_localAnchor1.y-c.m_sweep.localCenter.y,f=b.col1.x*g+b.col2.x*j,j=b.col1.y*g+b.col2.y*j,g=f,b=d.m_xf.R,m=this.m_localAnchor2.x-d.m_sweep.localCenter.x,l=this.m_localAnchor2.y-d.m_sweep.localCenter.y,f=b.col1.x*m+b.col2.x*l,l=b.col1.y*m+b.col2.y*l,m=f,this.m_mass.Solve22(this.impulse2,-(r.x+-x*l-n.x- -t*j),-(r.y+x*m-n.y-t*g)),this.m_impulse.x+=this.impulse2.x,this.m_impulse.y+=this.impulse2.y,n.x-=y*this.impulse2.x,n.y-=y*this.impulse2.y,t-=A*(g*this.impulse2.y-j*this.impulse2.x),
r.x+=z*this.impulse2.x,r.y+=z*this.impulse2.y,x+=D*(m*this.impulse2.y-l*this.impulse2.x);c.m_linearVelocity.SetV(n);c.m_angularVelocity=t;d.m_linearVelocity.SetV(r);d.m_angularVelocity=x};O.prototype.SolvePositionConstraints=function(){var c=0,d,f=this.m_bodyA,g=this.m_bodyB,j=0,m=0,n=0,l=0;if(this.m_enableLimit&&this.m_limitState!=B.e_inactiveLimit){var c=g.m_sweep.a-f.m_sweep.a-this.m_referenceAngle,q=0;this.m_limitState==B.e_equalLimits?(c=e.Clamp(c-this.m_lowerAngle,-b.b2_maxAngularCorrection,
b.b2_maxAngularCorrection),q=-this.m_motorMass*c,j=e.Abs(c)):this.m_limitState==B.e_atLowerLimit?(c-=this.m_lowerAngle,j=-c,c=e.Clamp(c+b.b2_angularSlop,-b.b2_maxAngularCorrection,0),q=-this.m_motorMass*c):this.m_limitState==B.e_atUpperLimit&&(j=c-=this.m_upperAngle,c=e.Clamp(c-b.b2_angularSlop,0,b.b2_maxAngularCorrection),q=-this.m_motorMass*c);f.m_sweep.a-=f.m_invI*q;g.m_sweep.a+=g.m_invI*q;f.SynchronizeTransform();g.SynchronizeTransform()}d=f.m_xf.R;q=this.m_localAnchor1.x-f.m_sweep.localCenter.x;
c=this.m_localAnchor1.y-f.m_sweep.localCenter.y;m=d.col1.x*q+d.col2.x*c;c=d.col1.y*q+d.col2.y*c;q=m;d=g.m_xf.R;var t=this.m_localAnchor2.x-g.m_sweep.localCenter.x,r=this.m_localAnchor2.y-g.m_sweep.localCenter.y,m=d.col1.x*t+d.col2.x*r,r=d.col1.y*t+d.col2.y*r,t=m,n=g.m_sweep.c.x+t-f.m_sweep.c.x-q,l=g.m_sweep.c.y+r-f.m_sweep.c.y-c,x=n*n+l*l;d=Math.sqrt(x);var m=f.m_invMass,y=g.m_invMass,z=f.m_invI,A=g.m_invI,D=10*b.b2_linearSlop;x>D*D&&(x=1/(m+y),n=x*-n,l=x*-l,f.m_sweep.c.x-=0.5*m*n,f.m_sweep.c.y-=
0.5*m*l,g.m_sweep.c.x+=0.5*y*n,g.m_sweep.c.y+=0.5*y*l,n=g.m_sweep.c.x+t-f.m_sweep.c.x-q,l=g.m_sweep.c.y+r-f.m_sweep.c.y-c);this.K1.col1.x=m+y;this.K1.col2.x=0;this.K1.col1.y=0;this.K1.col2.y=m+y;this.K2.col1.x=z*c*c;this.K2.col2.x=-z*q*c;this.K2.col1.y=-z*q*c;this.K2.col2.y=z*q*q;this.K3.col1.x=A*r*r;this.K3.col2.x=-A*t*r;this.K3.col1.y=-A*t*r;this.K3.col2.y=A*t*t;this.K.SetM(this.K1);this.K.AddM(this.K2);this.K.AddM(this.K3);this.K.Solve(O.tImpulse,-n,-l);n=O.tImpulse.x;l=O.tImpulse.y;f.m_sweep.c.x-=
f.m_invMass*n;f.m_sweep.c.y-=f.m_invMass*l;f.m_sweep.a-=f.m_invI*(q*l-c*n);g.m_sweep.c.x+=g.m_invMass*n;g.m_sweep.c.y+=g.m_invMass*l;g.m_sweep.a+=g.m_invI*(t*l-r*n);f.SynchronizeTransform();g.SynchronizeTransform();return d<=b.b2_linearSlop&&j<=b.b2_angularSlop};Box2D.postDefs.push(function(){Box2D.Dynamics.Joints.b2RevoluteJoint.tImpulse=new f});Box2D.inherit(P,Box2D.Dynamics.Joints.b2JointDef);P.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;P.b2RevoluteJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,
arguments);this.localAnchorA=new f;this.localAnchorB=new f};P.prototype.b2RevoluteJointDef=function(){this.__super.b2JointDef.call(this);this.type=B.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};P.prototype.Initialize=function(b,c,d){this.bodyA=b;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(ba,Box2D.Dynamics.Joints.b2Joint);ba.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;ba.b2WeldJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_localAnchorA=new f;this.m_localAnchorB=new f;this.m_impulse=new j;this.m_mass=new d};ba.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA)};ba.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB)};
ba.prototype.GetReactionForce=function(b){void 0===b&&(b=0);return new f(b*this.m_impulse.x,b*this.m_impulse.y)};ba.prototype.GetReactionTorque=function(b){void 0===b&&(b=0);return b*this.m_impulse.z};ba.prototype.b2WeldJoint=function(b){this.__super.b2Joint.call(this,b);this.m_localAnchorA.SetV(b.localAnchorA);this.m_localAnchorB.SetV(b.localAnchorB);this.m_referenceAngle=b.referenceAngle;this.m_impulse.SetZero();this.m_mass=new d};ba.prototype.InitVelocityConstraints=function(b){var c,d=0,e=this.m_bodyA,
f=this.m_bodyB;c=e.m_xf.R;var g=this.m_localAnchorA.x-e.m_sweep.localCenter.x,j=this.m_localAnchorA.y-e.m_sweep.localCenter.y,d=c.col1.x*g+c.col2.x*j,j=c.col1.y*g+c.col2.y*j,g=d;c=f.m_xf.R;var l=this.m_localAnchorB.x-f.m_sweep.localCenter.x,m=this.m_localAnchorB.y-f.m_sweep.localCenter.y,d=c.col1.x*l+c.col2.x*m,m=c.col1.y*l+c.col2.y*m,l=d;c=e.m_invMass;var d=f.m_invMass,n=e.m_invI,r=f.m_invI;this.m_mass.col1.x=c+d+j*j*n+m*m*r;this.m_mass.col2.x=-j*g*n-m*l*r;this.m_mass.col3.x=-j*n-m*r;this.m_mass.col1.y=
this.m_mass.col2.x;this.m_mass.col2.y=c+d+g*g*n+l*l*r;this.m_mass.col3.y=g*n+l*r;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=n+r;b.warmStarting?(this.m_impulse.x*=b.dtRatio,this.m_impulse.y*=b.dtRatio,this.m_impulse.z*=b.dtRatio,e.m_linearVelocity.x-=c*this.m_impulse.x,e.m_linearVelocity.y-=c*this.m_impulse.y,e.m_angularVelocity-=n*(g*this.m_impulse.y-j*this.m_impulse.x+this.m_impulse.z),f.m_linearVelocity.x+=d*this.m_impulse.x,f.m_linearVelocity.y+=
d*this.m_impulse.y,f.m_angularVelocity+=r*(l*this.m_impulse.y-m*this.m_impulse.x+this.m_impulse.z)):this.m_impulse.SetZero()};ba.prototype.SolveVelocityConstraints=function(){var b,c=0,d=this.m_bodyA,e=this.m_bodyB,f=d.m_linearVelocity,g=d.m_angularVelocity,m=e.m_linearVelocity,l=e.m_angularVelocity,n=d.m_invMass,t=e.m_invMass,r=d.m_invI,x=e.m_invI;b=d.m_xf.R;var y=this.m_localAnchorA.x-d.m_sweep.localCenter.x,z=this.m_localAnchorA.y-d.m_sweep.localCenter.y,c=b.col1.x*y+b.col2.x*z,z=b.col1.y*y+b.col2.y*
z,y=c;b=e.m_xf.R;var A=this.m_localAnchorB.x-e.m_sweep.localCenter.x,B=this.m_localAnchorB.y-e.m_sweep.localCenter.y,c=b.col1.x*A+b.col2.x*B,B=b.col1.y*A+b.col2.y*B,A=c;b=m.x-l*B-f.x+g*z;var c=m.y+l*A-f.y-g*y,D=l-g,E=new j;this.m_mass.Solve33(E,-b,-c,-D);this.m_impulse.Add(E);f.x-=n*E.x;f.y-=n*E.y;g-=r*(y*E.y-z*E.x+E.z);m.x+=t*E.x;m.y+=t*E.y;l+=x*(A*E.y-B*E.x+E.z);d.m_angularVelocity=g;e.m_angularVelocity=l};ba.prototype.SolvePositionConstraints=function(){var c,d=0,f=this.m_bodyA,g=this.m_bodyB;
c=f.m_xf.R;var m=this.m_localAnchorA.x-f.m_sweep.localCenter.x,n=this.m_localAnchorA.y-f.m_sweep.localCenter.y,d=c.col1.x*m+c.col2.x*n,n=c.col1.y*m+c.col2.y*n,m=d;c=g.m_xf.R;var t=this.m_localAnchorB.x-g.m_sweep.localCenter.x,l=this.m_localAnchorB.y-g.m_sweep.localCenter.y,d=c.col1.x*t+c.col2.x*l,l=c.col1.y*t+c.col2.y*l,t=d;c=f.m_invMass;var d=g.m_invMass,q=f.m_invI,x=g.m_invI,r=g.m_sweep.c.x+t-f.m_sweep.c.x-m,y=g.m_sweep.c.y+l-f.m_sweep.c.y-n,z=g.m_sweep.a-f.m_sweep.a-this.m_referenceAngle,A=10*
b.b2_linearSlop,B=Math.sqrt(r*r+y*y),D=e.Abs(z);B>A&&(q*=1,x*=1);this.m_mass.col1.x=c+d+n*n*q+l*l*x;this.m_mass.col2.x=-n*m*q-l*t*x;this.m_mass.col3.x=-n*q-l*x;this.m_mass.col1.y=this.m_mass.col2.x;this.m_mass.col2.y=c+d+m*m*q+t*t*x;this.m_mass.col3.y=m*q+t*x;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=q+x;A=new j;this.m_mass.Solve33(A,-r,-y,-z);f.m_sweep.c.x-=c*A.x;f.m_sweep.c.y-=c*A.y;f.m_sweep.a-=q*(m*A.y-n*A.x+A.z);g.m_sweep.c.x+=d*A.x;g.m_sweep.c.y+=
d*A.y;g.m_sweep.a+=x*(t*A.y-l*A.x+A.z);f.SynchronizeTransform();g.SynchronizeTransform();return B<=b.b2_linearSlop&&D<=b.b2_angularSlop};Box2D.inherit(U,Box2D.Dynamics.Joints.b2JointDef);U.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;U.b2WeldJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=new f;this.localAnchorB=new f};U.prototype.b2WeldJointDef=function(){this.__super.b2JointDef.call(this);this.type=B.e_weldJoint;this.referenceAngle=
0};U.prototype.Initialize=function(b,c,d){this.bodyA=b;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 b=Box2D.Dynamics.b2DebugDraw;b.b2DebugDraw=function(){this.m_xformScale=this.m_fillAlpha=this.m_alpha=this.m_lineThickness=this.m_drawScale=1;var b=this;this.m_sprite={graphics:{clear:function(){b.m_ctx.clearRect(0,0,b.m_ctx.canvas.width,b.m_ctx.canvas.height)}}}};b.prototype._color=function(b,d){return"rgba("+((b&16711680)>>16)+","+((b&65280)>>8)+","+(b&255)+","+d+")"};b.prototype.b2DebugDraw=function(){this.m_drawFlags=0};b.prototype.SetFlags=function(b){void 0===b&&(b=0);this.m_drawFlags=
b};b.prototype.GetFlags=function(){return this.m_drawFlags};b.prototype.AppendFlags=function(b){void 0===b&&(b=0);this.m_drawFlags|=b};b.prototype.ClearFlags=function(b){void 0===b&&(b=0);this.m_drawFlags&=~b};b.prototype.SetSprite=function(b){this.m_ctx=b};b.prototype.GetSprite=function(){return this.m_ctx};b.prototype.SetDrawScale=function(b){void 0===b&&(b=0);this.m_drawScale=b};b.prototype.GetDrawScale=function(){return this.m_drawScale};b.prototype.SetLineThickness=function(b){void 0===b&&(b=
0);this.m_lineThickness=b;this.m_ctx.strokeWidth=b};b.prototype.GetLineThickness=function(){return this.m_lineThickness};b.prototype.SetAlpha=function(b){void 0===b&&(b=0);this.m_alpha=b};b.prototype.GetAlpha=function(){return this.m_alpha};b.prototype.SetFillAlpha=function(b){void 0===b&&(b=0);this.m_fillAlpha=b};b.prototype.GetFillAlpha=function(){return this.m_fillAlpha};b.prototype.SetXFormScale=function(b){void 0===b&&(b=0);this.m_xformScale=b};b.prototype.GetXFormScale=function(){return this.m_xformScale};
b.prototype.DrawPolygon=function(b,d,e){if(d){var f=this.m_ctx,j=this.m_drawScale;f.beginPath();f.strokeStyle=this._color(e.color,this.m_alpha);f.moveTo(b[0].x*j,b[0].y*j);for(e=1;e<d;e++)f.lineTo(b[e].x*j,b[e].y*j);f.lineTo(b[0].x*j,b[0].y*j);f.closePath();f.stroke()}};b.prototype.DrawSolidPolygon=function(b,d,e){if(d){var f=this.m_ctx,j=this.m_drawScale;f.beginPath();f.strokeStyle=this._color(e.color,this.m_alpha);f.fillStyle=this._color(e.color,this.m_fillAlpha);f.moveTo(b[0].x*j,b[0].y*j);for(e=
1;e<d;e++)f.lineTo(b[e].x*j,b[e].y*j);f.lineTo(b[0].x*j,b[0].y*j);f.closePath();f.fill();f.stroke()}};b.prototype.DrawCircle=function(b,d,e){if(d){var f=this.m_ctx,j=this.m_drawScale;f.beginPath();f.strokeStyle=this._color(e.color,this.m_alpha);f.arc(b.x*j,b.y*j,d*j,0,2*Math.PI,!0);f.closePath();f.stroke()}};b.prototype.DrawSolidCircle=function(b,d,e,f){if(d){var j=this.m_ctx,n=this.m_drawScale,m=b.x*n,g=b.y*n;j.moveTo(0,0);j.beginPath();j.strokeStyle=this._color(f.color,this.m_alpha);j.fillStyle=
this._color(f.color,this.m_fillAlpha);j.arc(m,g,d*n,0,2*Math.PI,!0);j.moveTo(m,g);j.lineTo((b.x+e.x*d)*n,(b.y+e.y*d)*n);j.closePath();j.fill();j.stroke()}};b.prototype.DrawSegment=function(b,d,e){var f=this.m_ctx,j=this.m_drawScale;f.strokeStyle=this._color(e.color,this.m_alpha);f.beginPath();f.moveTo(b.x*j,b.y*j);f.lineTo(d.x*j,d.y*j);f.closePath();f.stroke()};b.prototype.DrawTransform=function(b){var d=this.m_ctx,e=this.m_drawScale;d.beginPath();d.strokeStyle=this._color(16711680,this.m_alpha);
d.moveTo(b.position.x*e,b.position.y*e);d.lineTo((b.position.x+this.m_xformScale*b.R.col1.x)*e,(b.position.y+this.m_xformScale*b.R.col1.y)*e);d.strokeStyle=this._color(65280,this.m_alpha);d.moveTo(b.position.x*e,b.position.y*e);d.lineTo((b.position.x+this.m_xformScale*b.R.col2.x)*e,(b.position.y+this.m_xformScale*b.R.col2.y)*e);d.closePath();d.stroke()}})();var i;for(i=0;i<Box2D.postDefs.length;++i)Box2D.postDefs[i]();delete Box2D.postDefs;"undefined"!=typeof global&&(global.Box2D=Box2D);
ig.baked=!0;ig.module("plugins.box2d.lib").defines(function(){});ig.baked=!0;
ig.module("plugins.box2d.game").requires("plugins.box2d.lib","impact.game").defines(function(){ig.Box2DGame=ig.Game.extend({collisionRects:[],debugCollisionRects:!1,worldVelocityIterations:30,worldPositionIterations:30,updateTimestep:1/60,updateTimestepAccumulator:0,updateTimestepAccumulatorRatio:0,lastUpdateTime:-1,nWorldSteps:0,bodyDestroyQueue:[],defaultTileSegmentsDef:{},defaultTileVerticesDef:{},loadLevel:function(b){this.collisionMap=ig.CollisionMap.staticNoCollision;for(var c=0;c<b.layer.length;c++){var d=
b.layer[c];"collision"==d.name&&(this.collisionMap=new ig.CollisionMap(d.tilesize,d.data))}this.mergedShape=this.mergeRectangles(this.collisionMap);ig.world=this.createWorldFromCollisionMap(this.collisionMap,this.mergedShape);this.setupContactListener();this.parent(b)},createWorldFromMap:function(b,c,d,e){var f=new Box2D.Collision.b2AABB;f.lowerBound.Set(0,0);f.upperBound.Set((c+1)*e*Box2D.SCALE,(d+1)*e*Box2D.SCALE);f=new Box2D.Common.Math.b2Vec2(0,ig.game.gravity*Box2D.SCALE);world=new Box2D.Dynamics.b2World(f,
!0);b=ig.copy(b);this.collisionRects=[];for(f=0;f<d;f++)for(var j=0;j<c;j++)if(b[f][j]){var n=this._extractRectFromMap(b,c,d,j,f);this.collisionRects.push(n)}for(c=0;c<this.collisionRects.length;c++)d=this.collisionRects[c],b=new Box2D.Dynamics.b2BodyDef,b.position.Set(d.x*e*Box2D.SCALE+d.width*e/2*Box2D.SCALE,d.y*e*Box2D.SCALE+d.height*e/2*Box2D.SCALE),b=world.CreateBody(b),f=new Box2D.Collision.Shapes.b2PolygonShape,f.SetAsBox(d.width*e/2*Box2D.SCALE,d.height*e/2*Box2D.SCALE),b.CreateFixture2(f);
return world},_extractRectFromMap:function(b,c,d,e,f){for(var j={x:e,y:f,width:1,height:1},n=e+1;n<c&&b[f][n];n++)j.width++,b[f][n]=0;for(c=f+1;c<d;c++){f=0;for(n=e;n<e+j.width&&b[c][n];n++)f++;if(f==j.width){j.height++;for(n=e;n<e+j.width;n++)b[c][n]=0}else break}return j},update:function(){if(!ig.game.box2dPaused&&ig.world){var b=ig.system.clock.delta()-this.lastUpdateTime;this.lastUpdateTime=ig.system.clock.delta();this.updateTimestepAccumulator+=b;this.nWorldSteps=Math.floor(this.updateTimestepAccumulator/
this.updateTimestep);0<this.nWorldSteps&&(this.updateTimestepAccumulator-=this.nWorldSteps*this.updateTimestep);this.updateTimestepAccumulatorRatio=this.updateTimestepAccumulator/this.updateTimestep;for(var b=Math.min(this.nWorldSteps,5),c=0;c<b;c++){this.resetSmoothStates();ig.world.Step(this.updateTimestep,this.worldVelocityIterations,this.worldPositionIterations);for(var d=ig.world.GetBodyList();d;d=d.m_next)if(d.IsAwake()){var e=d.GetFixtureList();if(!e||!e.IsSensor()){var e=0.6>Math.abs(d.GetAngularVelocity()),
f=0.6>Math.abs(d.GetLinearVelocity().Length());e&&f?30<d.slowTime?(d.slowTime=0,d.SetAwake(!1)):d.slowTime+=1:d.slowTime=0}}}ig.world.ClearForces();this.smoothStates()}this.parent();if(0<this.bodyDestroyQueue.length){for(c=0;c<this.bodyDestroyQueue.length;c++)ig.world.DestroyBody(this.bodyDestroyQueue[c]);this.bodyDestroyQueue=[]}},smoothStates:function(){for(var b=1-this.updateTimestepAccumulatorRatio,c=0;c<this.entities.length;c++){var d=this.entities[c];null!=d.body&&d.dynamicType!=Box2D.Dynamics.b2Body.b2_staticBody&&
(d.pos.x=this.updateTimestepAccumulatorRatio*d.body.GetPosition().x+b*d.previousBodyPosition.x,d.pos.y=this.updateTimestepAccumulatorRatio*d.body.GetPosition().y+b*d.previousBodyPosition.y,d.angle=this.updateTimestepAccumulatorRatio*d.body.GetAngle()+b*d.previousBodyAngle,d.currentAnim&&(d.currentAnim.update(),d.currentAnim.angle=d.angle))}},resetSmoothStates:function(){for(var b=0;b<this.entities.length;b++){var c=this.entities[b];null!=c.body&&c.dynamicType!=Box2D.Dynamics.b2Body.b2_staticBody&&
(c.pos.x=c.body.GetPosition().x,c.previousBodyPosition.x=c.pos.x,c.pos.y=c.body.GetPosition().y,c.previousBodyPosition.y=c.pos.y,c.angle=c.body.GetAngle(),c.previousBodyAngle=c.body.GetAngle(),c.currentAnim&&(c.currentAnim.update(),c.currentAnim.angle=c.angle))}},draw:function(){this.parent();if(this.debugCollisionRects)for(var b=this.collisionMap.tilesize,c=0;c<this.collisionRects.length;c++){var d=this.collisionRects[c];ig.system.context.strokeStyle="#00ff00";ig.system.context.strokeRect(ig.system.getDrawPos(d.x*
b-this.screen.x),ig.system.getDrawPos(d.y*b-this.screen.y),ig.system.getDrawPos(d.width*b),ig.system.getDrawPos(d.height*b))}},queueDestroyBody:function(b){this.bodyDestroyQueue.push(b)},mergeRectangles:function(b){if(void 0!=b.data){for(var c=ig.copy(b.data),d=[],e=0;e<c.length;e++){void 0==d[e]&&(d[e]=[]);for(var f=0;f<c[0].length;f++)d[e].push(0)}c=this._shapesFromCollisionMap(b);b=[];f=[];for(e=0;e<c.length;e++)1==c[e].id?(f.push(c[e]),d[c[e].tile.y][c[e].tile.x]=f[f.length-1]):b.push(c[e]);for(e=
f.length-1;0<=e;e--)1==f[e].id&&(f[e].neighbours=this.checkNeighbour(d,f[e].tile.x,f[e].tile.y));d=this.linkSquares(f,d);return b.concat(d)}},sideAbleCheck:function(b,c,d,e){return b?b[d]?b[d][c]?b[d][c].neighbours?-1<b[d][c].neighbours.indexOf(e)?!0:!1:!1:!1:!1:!1},linkSquares:function(b,c){for(var d=[],e=[],f=0;f<b.length;f++){var j=b[f],n=j.tile.x,m=j.tile.y;if(!(-1<d.indexOf(j)))if(d.push(j),-1<j.neighbours.indexOf("right")){for(var g=1;!0==this.sideAbleCheck(c,j.tile.x+g,j.tile.y,"right");)j.tile.x+
g<n&&(n=j.tile.x+g),d.push(c[j.tile.y][j.tile.x+g]),g++;c[j.tile.y][n].settings.size.x*=g+1;for(var t=c[j.tile.y][n].settings.vertices,z=0;z<t.length;z++)t[z].x*=g+1;d.push(c[j.tile.y][j.tile.x+g+1]);e.push(c[j.tile.y][n])}else if(-1<j.neighbours.indexOf("down")&&-1==j.neighbours.indexOf("right")&&-1==j.neighbours.indexOf("left")){j.tile.y+g<m&&(m=j.tile.y+g);t=0;for(n=1;!0==this.sideAbleCheck(c,j.tile.x,j.tile.y+n,"down")&&!1==this.sideAbleCheck(c,j.tile.x,j.tile.y+n,"right")&&!1==this.sideAbleCheck(c,
j.tile.x,j.tile.y+n,"left");)t=1,d.push(c[j.tile.y+n][j.tile.x]),n++;!0==this.sideAbleCheck(c,j.tile.x,j.tile.y+n,"up")&&!1==this.sideAbleCheck(c,j.tile.x,j.tile.y+n,"right")&&!1==this.sideAbleCheck(c,j.tile.x,j.tile.y+n,"left")?t=1:!0==this.sideAbleCheck(c,j.tile.x,j.tile.y+n,"up")&&!0==this.sideAbleCheck(c,j.tile.x,j.tile.y+n,"right")?(d.splice(d.indexOf(c[j.tile.y+n][j.tile.x]),1),n--):!0==this.sideAbleCheck(c,j.tile.x,j.tile.y+n,"up")&&!0==this.sideAbleCheck(c,j.tile.x,j.tile.y+n,"left")&&(d.splice(d.indexOf(c[j.tile.y+
n][j.tile.x]),1),n--);if(1==t){c[m][j.tile.x].settings.size.y*=n+1;t=c[m][j.tile.x].settings.vertices;for(z=0;z<t.length;z++)t[z].y*=n+1;c[j.tile.y+n]&&d.push(c[j.tile.y+n][j.tile.x])}e.push(c[m][j.tile.x])}else if(!(-1<j.neighbours.indexOf("left")))if(-1<j.neighbours.indexOf("up")){if(!0==this.sideAbleCheck(c,j.tile.x,j.tile.y-1,"down")&&(!0==this.sideAbleCheck(c,j.tile.x,j.tile.y-1,"right")||!0==this.sideAbleCheck(c,j.tile.x,j.tile.y-1,"left")))d.push(c[j.tile.y][j.tile.x]),e.push(c[j.tile.y][j.tile.x])}else d.push(c[j.tile.y][j.tile.x]),
e.push(c[j.tile.y][j.tile.x])}return e},getNeighbourTiles:function(b,c,d,e){switch(e){case "left":return[{x:c-1,y:d}];case "right":return[{x:c+1,y:d}];case "up":return[{x:c,y:d-1}];case "down":return[{x:c,y:d+1}];case "topL":return[{x:c,y:d-1},{x:c-1,y:d},{x:c-1,y:d-1}];case "topR":return[{x:c,y:d-1},{x:c+1,y:d},{x:c+1,y:d-1}];case "bottomL":return[{x:c,y:d+1},{x:c-1,y:d},{x:c-1,y:d+1}];case "bottomR":return[{x:c,y:d+1},{x:c+1,y:d},{x:c+1,y:d+1}]}},checkNeighbour:function(b,c,d){var e=[];0!=this.checkArr(b,
c-1,d)&&e.push("left");0!=this.checkArr(b,c,d+1)&&e.push("down");0!=this.checkArr(b,c+1,d)&&e.push("right");0!=this.checkArr(b,c,d-1)&&e.push("up");return e},checkArr:function(b,c,d){return void 0==b[d]?0:void 0==b[d][c]?0:b[d][c]},createWorldFromCollisionMap:function(b,c){var d=new Box2D.Common.Math.b2Vec2(0,0),d=new Box2D.Common.Math.b2Vec2(0,ig.game.gravity*Box2D.SCALE);world=new Box2D.Dynamics.b2World(d,!0);for(var d=void 0!=c?c:this._shapesFromCollisionMap(this.collisionMap),e=0;e<d.length;e++){var f=
d[e],j=f.settings.size.x,n=f.settings.size.y,m=f.settings.vertices,g=new Box2D.Dynamics.b2BodyDef;g.position.Set(f.x*Box2D.SCALE+j/2*Box2D.SCALE,f.y*Box2D.SCALE+n/2*Box2D.SCALE);j=world.CreateBody(g);f=new Box2D.Collision.Shapes.b2PolygonShape;f.SetAsArray(m,m.length);j.CreateFixture2(f)}return world},setupContactListener:function(){var b=function(b,c,f){var j=c.GetFixtureA().GetBody().entity,n=c.GetFixtureB().GetBody().entity;if(j&&n)j[b](n,c,f),n[b](j,c,f);else if(j&&!n)j[b](null,c,f);else if(n&&
!j)n[b](null,c,f)},c=new Box2D.Dynamics.b2ContactListener;c.BeginContact=function(c){b("beginContact",c)};c.EndContact=function(c){b("endContact",c)};c.PostSolve=function(c,e){b("postSolve",c,e)};c.PreSolve=function(c,e){b("preSolve",c,e)};ig.world.SetContactListener(c)},_shapesFromCollisionMap:function(b){var c=[];if(b instanceof ig.CollisionMap){var d=ig.copy(b.data),e=b.tilesize,f=b.width,j=b.height,n,m,g,t,z,y,A,B,I,D;for(y=0;y<j;y++)for(z=0;z<f;z++){D=this._shapeFromTile(b,z,y);I={id:b.data[y][z],
ix:z,iy:y,x:z*e,y:y*e,width:e,height:e,shape:D};if(0<D.vertices.length){m=[];n=D.vertices;g=D.segments;A=0;for(B=g.length;A<B;A++){t=g[A];var x=n[t.a],G=I.width/20,E=I.height/20;m[t.a]={x:x.x.map(0,1,-G,G),y:x.y.map(0,1,-E,E)}}D.vertices=m;D.vertices[D.vertices.length-1].x===D.vertices[0].x&&D.vertices[D.vertices.length-1].y===D.vertices[0].y&&D.vertices.pop();n={id:I.id,settings:{size:{x:I.width,y:I.height},vertices:ig.copy(D.vertices)},x:I.x,y:I.y,tile:{x:z,y:y}};c.push(n)}d[y][z]=I}}return c},
_shapeFromTile:function(b,c,d){var e;e=b.data[d][c];b=this._verticesFromTile(b,c,d);var f;if(b)if(this.defaultTileSegmentsDef[e])f=this.defaultTileSegmentsDef[e];else{this.defaultTileSegmentsDef[e]=f=[];e=0;for(c=b.length;e<c;e++){var j=b[e];d=e===c-1?0:e+1;var n=b[d],m=n.x-j.x,j=n.y-j.y,n=Math.sqrt(m*m+j*j);f.push({a:e,b:d,normal:{x:j/n,y:-m/n}})}}return{vertices:b,segments:f||[]}},_verticesFromTile:function(b,c,d){c=b.data[d][c];if(this.defaultTileVerticesDef[c])d=this.defaultTileVerticesDef[c];
else if(1===c)d=[{x:0,y:0},{x:1,y:0},{x:1,y:1},{x:0,y:1}];else{d=[];if(b=b.tiledef[c]){var e=d[0]={x:b[0],y:b[1]},f=d[1]={x:b[2],y:b[3]};b=e.x;var e=e.y,j=f.x,f=f.y,n=j-b,m=f-e,g=d[2]={x:0>m?1:0,y:0<n?1:0},t=g.x,g=g.y,z;z=!1;if(1>Math.abs(n)&&1>Math.abs(m)){var n=_utv2.pointQuadrant(b,e,0.5,0.5),m=_utv2.pointQuadrant(j,f,0.5,0.5),y=_utv2.pointQuadrant(t,g,0.5,0.5);!(n&y)&&!(m&y)&&(z=!0)}!0===z?(t!==g?(z=t,m=g,1==t?(g=1,n=0):(g=0,n=1)):(n=t,m=1==t?z=0:z=1),d[3]={x:z,y:g},d[4]={x:n,y:m}):(t!==g?(z=
t,m=g,1==t?(g=Math.max(e,f),n=Math.min(b,j)):(g=Math.min(e,f),n=Math.max(b,j))):(n=t,1==t?(z=Math.min(b,j),m=Math.min(e,f)):(z=Math.max(b,j),m=Math.max(e,f))),z===b&&g===e||z===j&&g===f?n===b&&m===e||n===j&&m===f||(d[3]={x:n,y:m}):d[3]={x:z,y:g});d=this._pointsToConvexHull(d)}this.defaultTileVerticesDef[c]=d}return d},_pointsToConvexHull:function(b){if(3>b.length)return b;var c,d,e=0,f=b[e],j;c=1;for(d=b.length;c<d;c++)j=b[c],j.y===f.y?j.x<f.x&&(e=c,f=j):j.y<f.y&&(e=c,f=j);var n=[],m;c=0;for(d=b.length;c<
d;c++)c!==e&&(j=b[c],m={x:j.x,y:j.y},m.angle=Math.atan((j.y-f.y)/(j.x-f.x)),0>m.angle&&(m.angle+=Math.PI),m.distance=(j.x-f.x)*(j.x-f.x)+(j.y-f.y)*(j.y-f.y),m.index=c,n.push(m));n.sort(function(b,c){return b.angle<c.angle?-1:b.angle>c.angle?1:b.distance<c.distance?-1:b.distance>c.distance?1:0});n.unshift(n[n.length-1],{x:f.x,y:f.y,index:e});e=2;c=3;for(d=b.length;c<=d;c++){for(;0>=this._pointsCW(n[e-1],n[e],n[c]);)e--;e++;f=n[c];n[c]=n[e];n[e]=f}d=[];for(c=0;c<=e;c++)d[c]=b[n[c].index];return d},
_pointsCW:function(b,c,d){return(c.x-b.x)*(d.y-b.y)-(c.y-b.y)*(d.x-b.x)}});Box2D.Common.b2Settings.b2_maxTranslation=10;Box2D.Common.b2Settings.b2_maxTranslationSquared=100;Box2D.Common.b2Settings.b2_velocityThreshold=1});ig.baked=!0;
ig.module("plugins.box2d.entity").requires("impact.entity","plugins.box2d.game").defines(function(){ig.Box2DEntity=ig.Entity.extend({body:null,angle:0,box2dType:null,dynamicType:null,density:null,friction:null,restitution:null,rotate:0,previousBodyPosition:{x:0,y:0},previousBodyAngle:0,slowTime:0,init:function(b,c,d){this.parent(b,c,d);ig.global.wm||this.createBody()},createBody:function(){var b=new Box2D.Dynamics.b2BodyDef;b.position=new Box2D.Common.Math.b2Vec2((this.pos.x+this.size.x/2)*Box2D.SCALE,
(this.pos.y+this.size.y/2)*Box2D.SCALE);this.previousBodyPosition={x:b.position.x,y:b.position.y};this.rotate&&(b.angle=this.rotate*Math.PI/180);this.angle&&(b.angle=this.angle);this.previousBodyAngle=b.angle;null==this.dynamicType||0==this.dynamicType?b.type=Box2D.Dynamics.b2Body.b2_dynamicBody:1==this.dynamicType?b.type=Box2D.Dynamics.b2Body.b2_kinematicBody:2==this.dynamicType&&(b.type=Box2D.Dynamics.b2Body.b2_staticBody);this.body=ig.world.CreateBody(b);this.body.entity=this;b=this.fixture=new Box2D.Dynamics.b2FixtureDef;
null==this.box2dType||0==this.box2dType?(b.shape=new Box2D.Collision.Shapes.b2PolygonShape,b.shape.SetAsBox(this.size.x/2*Box2D.SCALE,this.size.y/2*Box2D.SCALE)):1==this.box2dType?(b.shape=new Box2D.Collision.Shapes.b2CircleShape,b.shape.SetRadius(this.size.x/2*Box2D.SCALE)):2==this.box2dType&&(b.shape=new Box2D.Collision.Shapes.b2PolygonShape,b.shape.SetAsArray(this.vertices,this.vertices.length));this.density&&(b.density=this.density);this.friction&&(b.friction=this.friction);this.restitution&&
(b.restitution=this.restitution);this.body.CreateFixture(b);this.body.SetUserData(this)},update:function(){var b=this.body.GetPosition();this.previousBodyPosition={x:this.pos.x,y:this.pos.y};this.pos={x:b.x/Box2D.SCALE-this.size.x/2,y:b.y/Box2D.SCALE-this.size.y/2};this.previousBodyAngle=this.angle;this.angle=this.body.GetAngle().round(2);this.currentAnim&&(this.currentAnim.update(),this.currentAnim.angle=this.angle)},beginContact:function(){},endContact:function(){},postSolve:function(){},preSolve:function(){},
processCollisionQueues:function(){for(var b in this.checkQueue){var c=this.checkQueue[b];0<this.entityContactCount[b]?this.check(c):delete this.checkQueue[b]}for(var d in this.collideQueue)for(b in this.collideQueue[d])c=this.collideQueue[d][b],this.collideWith(c,d),delete this.collideQueue[d][b]},kill:function(){this.body&&ig.game.queueDestroyBody(this.body);this.parent()}})});ig.baked=!0;
ig.module("game.entities.opening-shield").requires("impact.entity").defines(function(){EntityOpeningShield=ig.Entity.extend({size:{x:48,y:48},move:0,mIconAnim:0,shieldAnim:0,titleAnim:0,shieldImage:new ig.Image("media/graphics/opening/shield.png"),mIconImage:new ig.Image("media/graphics/opening/m_icon.png"),titleImage:new ig.Image("media/graphics/opening/title.png"),init:function(b,c,d){this.parent(b,c,d)},ready:function(){if(!ig.wm)if(_SETTINGS.DeveloperBranding.Splash.Enabled){this.initTimer=new ig.Timer(0.1);
try{ig.soundHandler.playSound(ig.soundHandler.SOUNDID.openingSound)}catch(b){console.log(b)}}else ig.game.director.nextLevel(),ig.system.context.globalAlpha=1,this.kill()},update:function(){this.parent();this.updateOriginalShieldOpening()},draw:function(){this.parent();ig.global.wm||(this.nextLevelTimer&&0>this.nextLevelTimer.delta()&&(ig.system.context.globalAlpha=-this.nextLevelTimer.delta()),this.drawOriginalShieldOpening())},updateOriginalShieldOpening:function(){this.initTimer&&0<this.initTimer.delta()&&
(this.initTimer=null,this.sheildTimer=new ig.Timer(0.05));this.sheildTimer&&0<this.sheildTimer.delta()&&(3>this.shieldAnim?(this.shieldAnim++,this.sheildTimer.reset()):(this.sheildTimer=null,this.moveTimer=new ig.Timer(0.001),this.mIconTimer=new ig.Timer(0.05),this.titleTimer=new ig.Timer(0.15)));this.moveTimer&&0<this.moveTimer.delta()&&(this.move+=0.3,this.moveTimer.reset());this.mIconTimer&&0<this.mIconTimer.delta()&&(12>this.mIconAnim?(this.mIconAnim++,this.moveTimer.reset()):this.mIconTimer=
null);this.titleTimer&&0<this.titleTimer.delta()&&(11>this.titleAnim?(this.titleAnim++,this.titleTimer.reset()):(this.titleTimer=null,this.nextLevelTimer=new ig.Timer(1)));this.nextLevelTimer&&0<this.nextLevelTimer.delta()&&(this.nextLevelTimer=null,ig.game.director.nextLevel(),ig.system.context.globalAlpha=1)},drawOriginalShieldOpening:function(){if(this.moveTimer){var b=ig.system.context;b.save();var c=ig.system.width/2,d=ig.system.height/2;b.translate(c,d);b.rotate(this.move*Math.PI/180);b.beginPath();
b.moveTo(0,0);for(var e=0,f=1;48>=f;f+=1)b.lineTo(0+800*Math.cos(2*f*Math.PI/48),0+800*Math.sin(2*f*Math.PI/48)),e++,2==e&&(e=0,b.lineTo(0,0));b.translate(-c,-d);c=b.createRadialGradient(c,d,100,c,d,250);c.addColorStop(0,"rgba(255,255,255,0.1)");c.addColorStop(1,"rgba(0,0,0,0)");b.fillStyle=c;b.fill();b.restore()}this.shieldImage.drawTile(ig.system.width/2-91,0-(768-ig.system.height)/2,this.shieldAnim,182,768);this.moveTimer&&(this.mIconImage.drawTile(ig.system.width/2-96,ig.system.height/2-70,this.mIconAnim,
166,160),this.titleImage.drawTile(ig.system.width/2-204,ig.system.height/2+100,this.titleAnim,409,76));ig.system.context.globalAlpha=1}})});ig.baked=!0;
ig.module("game.entities.opening-kitty").requires("impact.entity").defines(function(){EntityOpeningKitty=ig.Entity.extend({size:{x:48,y:48},kittyAnim:-1,kittyImage:new ig.Image("media/graphics/opening/kitty.png"),kittyTitleImage:new ig.Image("media/graphics/opening/kittytitle.png"),soundKey:"kittyopeningSound",init:function(b,c,d){this.parent(b,c,d)},ready:function(){if(!ig.wm)if(_SETTINGS.DeveloperBranding.Splash.Enabled){this.initTimer=new ig.Timer(0.1);try{ig.soundHandler.sfxPlayer.play(this.soundKey)}catch(b){console.log(b)}}else ig.game.director.nextLevel(),
ig.system.context.globalAlpha=1,this.kill()},update:function(){this.parent();this.updateKittyOpening()},draw:function(){this.parent();ig.global.wm||(this.nextLevelTimer&&0>this.nextLevelTimer.delta()&&(ig.system.context.globalAlpha=-this.nextLevelTimer.delta()),this.drawKittyOpening())},updateKittyOpening:function(){this.initTimer&&0<this.initTimer.delta()&&(this.initTimer=null,this.kittyTimer=new ig.Timer(0.15));this.kittyTimer&&0<this.kittyTimer.delta()&&(7>this.kittyAnim?(this.kittyAnim++,this.kittyTimer.reset()):
(this.kittyTimer=null,this.nextLevelTimer=new ig.Timer(2)));this.nextLevelTimer&&0<this.nextLevelTimer.delta()&&(this.nextLevelTimer=null,ig.game.director.nextLevel(),ig.system.context.globalAlpha=1)},drawKittyOpening:function(){var b=ig.system.context.createLinearGradient(0,0,0,ig.system.height);b.addColorStop(0,"#ffed94");b.addColorStop(1,"#ffcd85");ig.system.context.fillStyle=b;ig.system.context.fillRect(0,0,ig.system.width,ig.system.height);0<=this.kittyAnim&&(this.kittyImage.drawTile(ig.system.width/
2-this.kittyImage.width/8,ig.system.height/2-this.kittyImage.height/4,this.kittyAnim,218,325),this.kittyTitleImage.drawTile(ig.system.width/2-this.kittyTitleImage.width/2,ig.system.height/2+this.kittyImage.height/4+10,this.kittyAnim,380,37));ig.system.context.globalAlpha=1}})});ig.baked=!0;
ig.module("game.entities.pointer").requires("impact.entity").defines(function(){EntityPointer=ig.Entity.extend({checkAgainst:ig.Entity.TYPE.BOTH,size:new Vector2(16,16),isFirstPressed:!1,isPressed:!1,isReleased:!1,isHovering:!1,hoveringItem:null,objectArray:[],clickedObjectList:[],ignorePause:!0,zIndex:5500,check:function(b){this.objectArray.push(b)},clickObject:function(b){this.isFirstPressed&&"function"==typeof b.clicked&&(b.clicked(),this.addToClickedObjectList(b));this.isPressed&&!this.isReleased&&
"function"==typeof b.clicking&&b.clicking();this.isReleased&&"function"==typeof b.released&&(b.released(),this.removeFromClickedObjectList(b))},refreshPos:function(){this.pos=ig.game.io.getClickPos();this.pos.x+=ig.game.screen.x;this.pos.y+=ig.game.screen.y;this.pos.x-=0.5*this.size.x;this.pos.y-=0.5*this.size.y},update:function(){this.parent();this.refreshPos();var b=null,c=-1;for(a=this.objectArray.length-1;-1<a;a--)this.objectArray[a].zIndex>c&&(c=this.objectArray[a].zIndex,b=this.objectArray[a]);
if(null!=b)null!=this.hoveringItem?this.hoveringItem!=b&&("function"==typeof this.hoveringItem.leave&&this.hoveringItem.leave(),"function"==typeof b.over&&b.over()):"function"==typeof b.over&&b.over(),this.hoveringItem=b,this.clickObject(b),this.objectArray=[];else if(null!=this.hoveringItem&&"function"==typeof this.hoveringItem.leave&&(this.hoveringItem.leave(),this.hoveringItem=null),this.isReleased){for(b=0;b<this.clickedObjectList.length;b++)c=this.clickedObjectList[b],"function"==typeof c.releasedOutside&&
c.releasedOutside();this.clickedObjectList=[]}this.isFirstPressed=ig.input.pressed("click");this.isReleased=ig.input.released("click");this.isPressed=ig.input.state("click")},addToClickedObjectList:function(b){this.clickedObjectList.push(b)},removeFromClickedObjectList:function(b){for(var c=[],d=0;d<this.clickedObjectList.length;d++){var e=this.clickedObjectList[d];e!=b&&c.push(e)}this.clickedObjectList=c}})});ig.baked=!0;
ig.module("game.entities.select").requires("impact.entity").defines(function(){EntitySelect=ig.Entity.extend({type:ig.Entity.TYPE.B,checkAgainst:ig.Entity.TYPE.A,collides:ig.Entity.COLLIDES.NEVER,canSelect:!1,canSelectTimerDuration:0.35,zIndex:99999,isHovering:!1,isSelected:!1,init:function(b,c,d){this.parent(b,c,d);this.canSelectTimer=new ig.Timer(this.canSelectTimerDuration)},doesClickableLayerExist:function(b){for(k in dynamicClickableEntityDivs)if(k==b)return!0;return!1},checkClickableLayer:function(b,
c,d){"undefined"==typeof wm&&(this.doesClickableLayerExist(b)?(ig.game.showOverlay([b]),$("#"+b).find("[href]").attr("href",c)):this.createClickableOutboundLayer(b,c,"media/graphics/misc/invisible.png",d))},createClickableOutboundLayer:function(b,c,d,e){var f=ig.$new("div");f.id=b;document.body.appendChild(f);$("#"+f.id).css("float","left");$("#"+f.id).css("width",this.size.x*multiplier);$("#"+f.id).css("height",this.size.y*multiplier);$("#"+f.id).css("position","absolute");var j=w/2-destW/2,n=h/
2-destH/2;w==mobileWidth?($("#"+f.id).css("left",this.pos.x),$("#"+f.id).css("top",this.pos.y)):($("#"+f.id).css("left",j+this.pos.x*multiplier),$("#"+f.id).css("top",n+this.pos.y*multiplier));e?$("#"+f.id).html("<a target='_blank' href='"+c+"'><img style='width:100%;height:100%' src='"+d+"'></a>"):$("#"+f.id).html("<a href='"+c+"'><img style='width:100%;height:100%' src='"+d+"'></a>");dynamicClickableEntityDivs[b]={};dynamicClickableEntityDivs[b].width=$("#"+f.id).width();dynamicClickableEntityDivs[b].height=
$("#"+f.id).height();dynamicClickableEntityDivs[b].entity_pos_x=this.pos.x;dynamicClickableEntityDivs[b].entity_pos_y=this.pos.y},hovered:function(){this.isHovering=!0;this.dehoverOthers()},dehoverOthers:function(){var b=ig.game.getEntitiesByType(EntitySelect);for(i=0;i<b.length;i++)b[i]!=this&&(b[i].isHovering=!1)},deselectOthers:function(){var b=ig.game.getEntitiesByType(EntitySelect);for(i=0;i<b.length;i++)b[i]!=this&&(b[i].isSelected=!1)},update:function(){this.parent();this.canSelectTimer&&0<
this.canSelectTimer.delta()&&(this.canSelect=!0,this.canSelectTimer=null)}})});ig.baked=!0;
ig.module("game.ui.fade").requires("impact.entity").defines(function(){EntityFade=ig.Entity.extend({size:{x:2,y:2},name:"fade",alpha:0,fadeOut:!1,end:!1,zIndex:3E3,init:function(b,c,d){this.parent(b,c,d);this.fadeOut||(this.alpha=1)},update:function(){if(!this.end)if(this.fadeOut){var b=this.alpha+0.06;1>b?this.alpha=b:(this.alpha=1,this.end=!0,this.callback(),this.kill())}else b=this.alpha-0.07,0<b?this.alpha=b:(this.alpha=0,this.end=!0,this.kill())},draw:function(){ig.system.context.save();ig.system.context.globalAlpha=
this.alpha;ig.system.context.fillStyle="#000";ig.system.context.fillRect(0,0,ig.system.width,ig.system.height);ig.system.context.globalAlpha=1;ig.system.context.restore()},callback:function(){}})});ig.baked=!0;ig.module("game.levels.opening").requires("impact.image","game.entities.opening-kitty").defines(function(){LevelOpening={entities:[{type:"EntityOpeningKitty",x:520,y:212}],layer:[]}});ig.baked=!0;
ig.module("game.entities.buttons.button-play").requires("game.entities.buttons.button").defines(function(){EntityButtonPlay=EntityButton.extend({animImage:new ig.Image("media/graphics/games/ui/play-btn.png"),init:function(b,c,d){this.parent(b,c,d);this.pos.x=this.X0=ig.game.centerX-this.animImage.width/2;this.pos.y=this.Y0=ig.system.height+this.animImage.height/2;this.tweensPos()},callback:function(){ig.game.spawnEntity(EntityFade,0,0,{fadeOut:!0,callback:function(){ig.game.director.jumpTo(LevelGame)}})},
tweensPos:function(){this.tween({pos:{x:this.X0,y:345}},0.4).start()}})});ig.baked=!0;
ig.module("game.ui.popup").requires("impact.entity").defines(function(){EntityPopup=ig.Entity.extend({zIndex:1E3,dY:50,dt:0.65,isLevelSelect:!1,scale:{x:1,y:1},title:"",titleDY:25,init:function(b,c,d){this.parent(b,c,d);ig.game.currentLayer=ig.game.layers.POPUP;this.easingIn=d.easingIn?d.easingIn:ig.Tween.Easing.Back.EaseIn;this.easingOut=d.easingOut?d.easingOut:ig.Tween.Easing.Back.EaseOut;this.setAnim();this.pos.x=(ig.system.width-this.size.x)/2+ig.game.screen.x;this.pos.y=-this.size.y-this.dY+
ig.game.screen.y;this.y0=(ig.system.height-this.size.y)/2+ig.game.screen.y;this.titleX=ig.game.centerX+ig.game.screen.x;ig.domHandler.getElementById("#canvas").css("cursor","default");this.moveIn()},setAnim:function(){this.animSheet=new ig.AnimationSheet(this.image.path,this.image.width,this.image.height);this.addAnim("idle",1,[0],!0);this.size.x=this.animSheet.width*this.scale.x;this.size.y=this.animSheet.height*this.scale.y},moveIn:function(){var b=this;this.tween({pos:{y:this.y0}},this.dt,{easing:this.easingIn,
onComplete:function(){b.callbackIn()}}).start()},moveOut:function(b){var c=this;this.tween({pos:{y:-this.size.y-this.dY}},this.dt,{easing:this.easingOut,onComplete:function(){ig.game.currentLayer=ig.game.layers.BASE;c.callback(b);c.kill()}}).start()},update:function(){this.parent();this.titleY=this.pos.y-this.titleDY},draw:function(){this.parent()},callback:function(){},callbackIn:function(){}})});ig.baked=!0;
ig.module("game.ui.slider").requires("impact.entity").defines(function(){EntitySlider=ig.Entity.extend({collides:ig.Entity.COLLIDES.NEVER,type:ig.Entity.TYPE.A,bar0:new ig.Image("media/graphics/games/ui/bar0.png"),bar1:new ig.Image("media/graphics/games/ui/bar1.png"),slider:new ig.Image("media/graphics/games/ui/slider.png"),isMusic:!0,isClicked:!1,icon:null,init:function(b,c,d){this.parent(b,c,d);this.size.x=this.bar1.width;this.size.y=this.slider.height;this.bar1Dy=(this.size.y-this.bar1.height)/
2;this.bar0Dy=(this.size.y-this.bar0.height)/2;this.minX=this.pos.x-3;this.maxX=this.pos.x+this.size.x-this.slider.width+3;b=this.isMusic?ig.game.load("music"):ig.game.load("sound");this.sliderX=this.minX+b*(this.maxX-this.minX);this.iconX=this.pos.x-this.icon.width-13;this.iconDY=(this.size.y-this.icon.height)/2},draw:function(){this.bar0.draw(this.pos.x,this.pos.y+this.bar0Dy);var b=this.sliderX-this.minX+this.slider.width/2;ig.system.context.drawImage(this.bar1.data,0,0,b,this.bar1.height,this.pos.x,
this.pos.y+this.bar1Dy,b,this.bar1.height);this.slider.draw(this.sliderX,this.pos.y);this.icon.draw(this.iconX,this.pos.y+this.iconDY)},clicking:function(){if(!1!=this.isClicked){var b=ig.game.io.getClickPos().x-this.slider.width/2;this.sliderX=b<this.minX?this.minX:b>this.maxX?this.maxX:b}},clicked:function(){this.isClicked=!0},update:function(){this.parent();if(ig.input.released("click")&&this.isClicked){this.isClicked=!1;var b=(this.sliderX-this.minX)/(this.maxX-this.minX);this.isMusic?(ig.game.save("music",
b),ig.soundHandler.bgmPlayer.volume(b)):(ig.game.save("sound",b),ig.soundHandler.sfxPlayer.volume(b));ig.soundHandler.sfxPlayer.play("button")}}})});ig.baked=!0;ig.module("game.ui.slider-sound").requires("game.ui.slider").defines(function(){EntitySliderSound=EntitySlider.extend({icon:new ig.Image("media/graphics/games/ui/sound.png"),isMusic:!1,init:function(b,c,d){this.parent(b,c,d)}})});ig.baked=!0;
ig.module("game.ui.slider-music").requires("game.ui.slider").defines(function(){EntitySliderMusic=EntitySlider.extend({icon:new ig.Image("media/graphics/games/ui/music.png"),init:function(b,c,d){this.parent(b,c,d)},clicking:function(){this.parent();ig.soundHandler.bgmPlayer.volume((this.sliderX-this.minX)/(this.maxX-this.minX))}})});ig.baked=!0;
ig.module("game.entities.buttons.button-ok").requires("game.entities.buttons.button").defines(function(){EntityButtonOk=EntityButton.extend({animImage:new ig.Image("media/graphics/games/ui/back-btn.png"),init:function(b,c,d){this.parent(b,c,d)},callback:function(){this.parents.moveOut()}})});ig.baked=!0;
ig.module("game.ui.popup-settings").requires("game.ui.popup","game.ui.slider-sound","game.ui.slider-music","game.entities.buttons.button-ok").defines(function(){EntityPopupSettings=EntityPopup.extend({image:new ig.Image("media/graphics/games/background/bg1.png"),init:function(b,c,d){this.parent(b,c,d);ig.game.currentLayer=ig.game.layers.POPUP;this.easingIn=d.easingIn?d.easingIn:ig.Tween.Easing.Quintic.EaseOut;d.easingOut?ig.Tween.Easing.Exponential.EaseIn:this.easingOut=ig.Tween.Easing.Quintic.EaseIn;
this.sliderSound=this.spawnEntity(EntitySliderSound,this.pos.x+130,0);this.sliderMusic=this.spawnEntity(EntitySliderMusic,this.pos.x+130,0);this.pos.x=-this.animSheet.width+ig.game.screen.x;this.pos.y=0;this.btOK=this.spawnEntity(EntityButtonOk,ig.system.width/2,0,{anchor:{x:0.5}});this.title=_STRINGS.Game.Settings;this.btMoreGames=ig.game.getEntitiesByType(EntityButtonMoreGames)[0];_SETTINGS.MoreGames.Enabled&&this.btMoreGames.hide();this.moveIn();ig.game.sortEntitiesDeferred()},update:function(){this.parent();
this.sliderSound.pos.y=this.pos.y+220;this.sliderMusic.pos.y=this.pos.y+330;this.btOK.pos.y=this.pos.y+480;this.titleY=this.pos.y+100},draw:function(){this.parent();ig.game.drawText(this.title,this.titleX,this.titleY,60,"#FFF","center")},moveIn:function(){var b=this;this.tween({pos:{x:0,y:0}},0.2,{easing:this.easingIn,onComplete:function(){b.callbackIn()}}).start()},moveOut:function(b){var c=this;this.tween({pos:{x:-this.animSheet.width,y:0}},0.2,{easing:this.easingOut,onComplete:function(){ig.game.currentLayer=
ig.game.layers.BASE;c.callback(b);c.kill()}}).start()},callback:function(){_SETTINGS.MoreGames.Enabled&&this.btMoreGames.show()}})});ig.baked=!0;
ig.module("game.entities.buttons.button-settings").requires("game.entities.buttons.button","game.ui.popup-settings").defines(function(){EntityButtonSettings=EntityButton.extend({animImage:new ig.Image("media/graphics/games/ui/setting-btn.png"),alpha:0,init:function(b,c,d){this.parent(b,c,d);this.currentAnim.alpha=0;this.fadeIn()},callback:function(){ig.game.spawnEntity(EntityPopupSettings,0,0)},fadeIn:function(){this.tween({currentAnim:{alpha:1}},1).start()}})});ig.baked=!0;
ig.module("game.entities.buttons.button-arrow").requires("game.entities.buttons.button").defines(function(){EntityButtonArrow=EntityButton.extend({animImage:new ig.Image("media/graphics/games/ui/prevnext-btn.png"),isNext:!0,init:function(b,c,d){this.parent(b,c,d);this.isNext&&(this.currentAnim.flip.x=!0)},callback:function(){this.isNext?this.parents.goNext():this.parents.goPrev()}})});ig.baked=!0;
ig.module("game.entities.buttons.button-home").requires("game.entities.buttons.button").defines(function(){EntityButtonHome=EntityButton.extend({animImage:new ig.Image("media/graphics/games/ui/home-btn.png"),init:function(b,c,d){this.parent(b,c,d)},callback:function(){ig.game.director.jumpTo(LevelHome)}});EntityButtonHomeEnd=EntityButton.extend({animImage:new ig.Image("media/graphics/games/ui/home-btn-game-end.png"),init:function(b,c,d){this.parent(b,c,d)},callback:function(){ig.game.director.jumpTo(LevelHome);
ig.Timer.timeScale=1}})});ig.baked=!0;ig.module("game.entities.buttons.button-replay").requires("game.entities.buttons.button").defines(function(){EntityButtonReplay=EntityButton.extend({animImage:new ig.Image("media/graphics/games/ui/retry-btn.png"),init:function(b,c,d){this.parent(b,c,d)},callback:function(){ig.game.director.reloadLevel();ig.Timer.timeScale=1}})});ig.baked=!0;
ig.module("game.entities.buttons.button-continue").requires("game.entities.buttons.button").defines(function(){EntityButtonContinue=EntityButton.extend({init:function(b,c,d){this.parent(b,c,d)},callback:function(){this.parents.moveOut()}})});ig.baked=!0;
ig.module("game.ui.popup-pause").requires("game.ui.popup","game.ui.slider-sound","game.ui.slider-music","game.entities.buttons.button-home","game.entities.buttons.button-replay","game.entities.buttons.button-continue").defines(function(){EntityPopupPause=EntityPopup.extend({init:function(b,c,d){this.parent(b,c,d);this.sliderSound=this.spawnEntity(EntitySliderSound,this.pos.x+105,0);this.sliderMusic=this.spawnEntity(EntitySliderMusic,this.pos.x+105,0);this.btHome=this.spawnEntity(EntityButtonHome,
ig.game.centerX-100,0);this.btReplay=this.spawnEntity(EntityButtonReplay,ig.game.centerX,0);this.btContinue=this.spawnEntity(EntityButtonContinue,ig.game.centerX+100,0);this.title=_STRINGS.Game.GamePause;ig.game.sortEntitiesDeferred()},update:function(){this.parent();this.sliderSound.pos.y=this.pos.y+220;this.sliderMusic.pos.y=this.pos.y+330;this.btHome.pos.y=this.btReplay.pos.y=this.btContinue.pos.y=this.pos.y+230}})});ig.baked=!0;
ig.module("game.entities.buttons.button-select-buy").requires("game.entities.buttons.button","game.ui.popup-pause").defines(function(){EntityButtonSelectBuy=EntityButton.extend({animImage:new ig.Image("media/graphics/games/ui/select-buy-btn.png"),withText:!0,itemID:0,init:function(b,c,d){this.parent(b,c,d);this.buttonText=_STRINGS.Game.Use}})});ig.baked=!0;
ig.module("game.entities.buttons.button-items").requires("game.entities.buttons.button","game.entities.buttons.button-select-buy").defines(function(){EntityButtonItems=EntityButton.extend({animImage:new ig.Image("media/graphics/games/ui/balloon-frame.png"),items:[new ig.Image("media/graphics/games/ui/shop/original.png"),new ig.Image("media/graphics/games/ui/shop/ombre.png"),new ig.Image("media/graphics/games/ui/shop/chevron.png"),new ig.Image("media/graphics/games/ui/shop/polcadot.png"),new ig.Image("media/graphics/games/ui/shop/panda.png"),
new ig.Image("media/graphics/games/ui/shop/donut.png"),new ig.Image("media/graphics/games/ui/shop/moustache.png"),new ig.Image("media/graphics/games/ui/shop/moustache.png")],withText:!0,buttonText:"X",init:function(b,c,d){this.parent(b,c,d);this.buttonText=_STRINGS.ItemsBalloon[this.vid.toString()]},draw:function(){this.parent();var b=-this.size.x/2+35,c=-this.size.y/2+25,d=ig.system.context;d.save();d.translate(ig.system.getDrawPos(this.pos.x.round()-ig.game.screen.x+this.size.x/2-this.offset.x),
ig.system.getDrawPos(this.pos.y.round()-ig.game.screen.y+this.size.y/2-this.offset.y));d.scale(this.scale.x,this.scale.y);this.items[this.vid-1].draw(b,c);d.restore()},drawText:function(){ig.game.drawText(this.buttonText,this.pos.x-110,10,25,"#FFF","left")},callback:function(){}})});ig.baked=!0;
ig.module("game.ui.popup-shop").requires("game.ui.popup","game.entities.buttons.button-arrow","game.entities.buttons.button-home","game.entities.buttons.button-items").defines(function(){EntityPopupShop=EntityPopup.extend({image:new ig.Image("media/graphics/games/background/bg1.png"),da:0.05,alpha:1,fadeIn:!1,fadeOut:!1,titleDY:130,cellItems:[],btUse:[],init:function(b,c,d){this.parent(b,c,d);this.title=_STRINGS.Game.Shop;this.buttonHome=this.spawnEntity(EntityButtonHome,50,15);this.btMoreGames=ig.game.getEntitiesByType(EntityButtonMoreGames)[0];
this.btMoreGames.hide();b=(ig.system.height-290)/3-50;for(c=0;4>c;c++)for(d=0;1>d;d++){var e=145+c*b;this.cellItems.push(this.spawnEntity(EntityButtonItems,265,e,{vid:c+1}));this.btUse.push(this.spawnEntity(EntityButtonSelectBuy,415,e+115,{vid:c+1}))}this.totalItems=this.cellItems.length;4==this.totalItems&&(this.btNext=this.spawnEntity(EntityButtonArrow,this.pos.x+this.size.x-130,0),this.btPrev=this.spawnEntity(EntityButtonArrow,this.pos.x+130,0,{isNext:!1}),this.btPrev.setShown(!1),this.btArrowDY=
this.size.y-125);ig.game.sortEntitiesDeferred()},update:function(){this.parent();this.titleY=this.pos.y+this.titleDY;this.buttonHome.pos.y=this.pos.y+15;var b=0;4==this.totalItems&&(this.btNext.pos.y=this.btPrev.pos.y=this.pos.y+this.btArrowDY);for(var c=0;4>c;c++)for(var d=0;1>d;d++){var e=145+c*((ig.system.height-290)/3-50),f=this.cellItems[b],j=this.btUse[b];f.pos.x=this.pos.x+265-200;f.pos.y=this.pos.y+e;j.pos.x=this.pos.x+265+97;j.pos.y=this.pos.y+e+115;b++}this.fadeOut?(b=this.alpha-this.da,
0<b?this.alpha=b:(this.alpha=0,this.fadeOut=!1,this.fadeIn=!0)):this.fadeIn&&(b=this.alpha+this.da,1>b?this.alpha=b:(this.alpha=1,this.fadeIn=!1))},callback:function(){this.btMoreGames.show()},draw:function(){this.parent();var b=ig.system.width-100;ig.game.drawText(this.title,this.titleX,this.titleY,60,"#FFF","center");ig.game.drawText(_STRINGS.Game.Coins,b,37,24,"#FFF","center");ig.game.drawText(ig.game.coins,b+40,37,24,"#FFF","left");ig.system.context.save();ig.system.context.globalAlpha=this.alpha;
ig.system.context.restore()},goNext:function(){for(var b=0;b<this.cellItems.length;b++)this.cellItems[b].vid+=4;this.btNext.setShown(!1);this.btPrev.setShown(!0);this.fadeOut=!0},goPrev:function(){for(var b=0;b<this.cellItems.length;b++)this.cellItems[b].vid-=4;this.btPrev.setShown(!1);this.btNext.setShown(!0);this.fadeOut=!0}})});ig.baked=!0;
ig.module("game.entities.buttons.button-shop").requires("game.entities.buttons.button","game.ui.popup-shop").defines(function(){EntityButtonShop=EntityButton.extend({animImage:new ig.Image("media/graphics/games/ui/shop-btn.png"),alpha:0,init:function(b,c,d){this.parent(b,c,d);this.currentAnim.alpha=0;this.fadeIn()},callback:function(){ig.game.spawnEntity(EntityPopupShop,0,0)},fadeIn:function(){this.tween({currentAnim:{alpha:1}},1).start()}})});ig.baked=!0;
ig.module("game.entities.gentities.title").requires("impact.entity").defines(function(){EntityTitle=ig.Entity.extend({images:new ig.Image("media/graphics/games/ui/title.png"),zIndex:100,init:function(b,c,d){this.parent(b,c,d);this.setupAnim();this.tweenTitle()},setupAnim:function(){var b=this.images;this.animSheet=new ig.AnimationSheet(b.path,b.width,b.height);this.addAnim("idle",0.1,[0],!0);this.currentAnim=this.anims.idle;this.pos.y=this.Ty0=-this.animSheet.height},tweenTitle:function(){this.tween({pos:{y:60}},
0.4).start()}})});ig.baked=!0;
ig.module("game.entities.controllers.home-controller").requires("game.entities.buttons.button-play","game.entities.buttons.button-settings","game.entities.buttons.button-more-games","game.entities.buttons.button-shop","game.entities.gentities.title").defines(function(){EntityHomeController=ig.Entity.extend({bg:new ig.Image("media/graphics/games/background/bg1.png"),init:function(b,c,d){this.parent(b,c,d);ig.game.currentLayer=ig.game.layers.BASE;0==ig.game.getEntitiesByType(EntityPointer).length&&ig.game.spawnEntity(EntityPointer,
0,0);b=ig.game.centerX;this.spawnEntity(EntityButtonPlay,0,0);this.spawnEntity(EntityButtonSettings,b+85,595);this.spawnEntity(EntityButtonMoreGames,b-85,595);ig.game.spawnEntity(ig.FullscreenButton,10,5,{enterImage:new ig.Image("media/graphics/games/ui/enter-fullscreen-transparent.png"),exitImage:new ig.Image("media/graphics/games/ui/exit-fullscreen-transparent.png")});this.spawnEntity(EntityTitle,b-200,0);ig.game.spawnEntity(EntityFade,0,0);ig.game.sortEntitiesDeferred()},draw:function(){this.bg.draw(0,
0)}})});ig.baked=!0;ig.module("game.levels.home").requires("game.entities.controllers.home-controller").defines(function(){LevelHome={entities:[{type:"EntityHomeController",x:0,y:0}],layer:[]}});ig.baked=!0;
ig.module("game.entities.buttons.button-pause").requires("game.entities.buttons.button","game.ui.popup-pause").defines(function(){EntityButtonPause=EntityButton.extend({animImage:new ig.Image("media/graphics/games/ui/pause-btn.png"),init:function(b,c,d){this.parent(b,c,d)},update:function(){this.parent();this.pos.y=10+ig.game.screen.y},callback:function(){ig.game.spawnEntity(EntityPopupPause,0,0)}})});ig.baked=!0;
ig.module("game.ui.popup-gameover").requires("game.ui.popup","game.entities.buttons.button-home","game.entities.buttons.button-replay").defines(function(){EntityPopupGameOver=EntityPopup.extend({image:new ig.Image("media/graphics/games/background/bg1.png"),init:function(b,c,d){this.parent(b,c,d);this.title=_STRINGS.Game.Woops;this.btDY=this.size.y-500;this.btHome=this.spawnEntity(EntityButtonHomeEnd,ig.game.centerX-80,this.pos.y+this.btDY-ig.game.screen.y);this.btReplay=this.spawnEntity(EntityButtonReplay,
ig.game.centerX+80,this.pos.y+this.btDY-ig.game.screen.y);ig.game.sortEntitiesDeferred();this.highscore=ig.game.load("highscore");ig.game.score>this.highscore?(ig.game.save("highscore",ig.game.score),this.isHighscore=!0,setTimeout(function(){ig.soundHandler.sfxPlayer.play("win")},1500)):(this.isHighscore=!1,setTimeout(function(){ig.soundHandler.sfxPlayer.play("lose")},1500));this.leftX=ig.game.centerX;this.rightX=ig.game.centerX+60;this.textDY=192-ig.game.screen.y;this.textDY2=237-ig.game.screen.y},
update:function(){this.parent();this.btHome.pos.y=this.btReplay.pos.y=this.pos.y+this.btDY},moveIn:function(){ig.game.getEntitiesByType(EntityGameController)[0].gameOver=!0;var b=this;this.tween({pos:{y:this.y0}},this.dt,{easing:this.easingIn,onComplete:function(){b.callbackIn()},delay:1}).start()},draw:function(){this.parent();ig.game.drawText(_STRINGS.Game.Woops,this.titleX,this.pos.y+this.textDY+48,65,"#fff","center");this.isHighscore?(ig.game.drawText(_STRINGS.Game.Score,this.leftX,this.pos.y+
this.textDY+155,40,"#fff","right"),ig.game.drawText(ig.game.score,this.rightX-15,this.pos.y+this.textDY+155,40,"#fff","left"),ig.game.drawText(_STRINGS.Game.HighScore,this.leftX,this.pos.y+this.textDY2+155,40,"#fff","right"),ig.game.drawText(ig.game.score,this.rightX-15,this.pos.y+this.textDY2+155,40,"#fff","left")):(ig.game.drawText(_STRINGS.Game.Score,this.leftX,this.pos.y+this.textDY+155,40,"#fff","right"),ig.game.drawText(ig.game.score,this.rightX-15,this.pos.y+this.textDY+155,40,"#fff","left"),
ig.game.drawText(_STRINGS.Game.HighScore,this.leftX,this.pos.y+this.textDY2+155,40,"#fff","right"),ig.game.drawText(this.highscore,this.rightX-15,this.pos.y+this.textDY2+155,40,"#fff","left"))}})});ig.baked=!0;
ig.module("game.entities.gentities.rolling-bg").requires("impact.entity").defines(function(){EntityRollingBg=ig.Entity.extend({cloud:new ig.Image("media/graphics/games/background/cloud.png"),zIndex:1,speed:0,valpha:0,drawText:!0,checkScore:!0,colors:"#5E5ECC #F76995 #777270 #EF8A3F #8CDDF5 #79C753 #FAE03C".split(" "),init:function(b,c,d){this.parent(b,c,d);this.timer=new ig.Timer(0.1);this.timer.pause();this.height0=ig.system.height+10;this.y0=0;this.color1=this.getRandomColor();this.color2=this.getRandomColor();
this.dY0=this.height0-this.cloud.height+90;ig.game.sortEntitiesDeferred()},update:function(){this.parent();if(!ig.game.getEntitiesByType(EntityGameController)[0].gameOver){ig.input.pressed("click")&&this.drawText&&(this.speed=3.5,this.drawText=!1,this.timer.unpause());35<ig.game.score&&this.checkScore&&(this.speed=1.5,this.checkScore=!1);0<this.timer.delta()&&(ig.game.score++,this.timer.reset());var b=this.y0+this.speed;b>=ig.system.height?(this.y0=b-this.height0,this.color1=this.color2,this.color2=
this.getRandomColor()):this.y0=b}},getRandomColor:function(){var b=Math.floor(Math.random()*this.colors.length);return this.colors[b]},draw:function(){var b=ig.system.context;b.fillStyle=this.color1;b.fillRect(0,this.y0,ig.system.width,this.height0);this.cloud.draw(0,this.y0+this.dY0);b.fillStyle=this.color2;b.fillRect(0,this.y0-this.height0,ig.system.width,this.height0);this.drawText&&this.drawFirstText();this.cloud.draw(0,this.y0-this.height0+this.dY0);this.cloud.draw(0,this.y0-2*this.height0+this.dY0)},
drawFirstText:function(){ig.game.drawText(_STRINGS.Game.Protect,270,600,30,"#FFF","center")}})});ig.baked=!0;
ig.module("game.entities.gentities.failed").requires("impact.entity").defines(function(){EntityFailed=ig.Entity.extend({zIndex:100,init:function(b,c,d){this.parent(b,c,d);for(b=0;50>b;b++)this.spawnEntity(EntityBalloons,this.getCenterX(),this.getCenterY());ig.game.sortEntitiesDeferred()}});EntityBalloons=ig.Entity.extend({image:[new ig.Image("media/graphics/games/ui/shop/original.png"),new ig.Image("media/graphics/games/ui/shop/ombre.png"),new ig.Image("media/graphics/games/ui/shop/chevron.png"),
new ig.Image("media/graphics/games/ui/shop/polcadot.png"),new ig.Image("media/graphics/games/ui/shop/panda.png"),new ig.Image("media/graphics/games/ui/shop/donut.png"),new ig.Image("media/graphics/games/ui/shop/moustache.png")],lifeTime:1.5,maxVel:{x:1E3,y:1E3},alpha:1,init:function(b,c,d){this.parent(b,c,d);this.halfWidth=this.image[ig.game.currentID].width/2;this.halfHeight=this.image[ig.game.currentID].height/2;this.scale=0.9*Math.random()+0.1;b=-Math.random()*Math.PI;c=500*Math.random()+200;this.vel.x=
c*Math.cos(b);this.vel.y=c*Math.sin(b);this.timer=new ig.Timer(this.lifeTime);this.tween({alpha:0},this.lifeTime,{easing:ig.Tween.Easing.Sinusoidal.EaseOut}).start()},update:function(){this.parent();0<this.timer.delta()&&this.kill()},draw:function(){var b=ig.system.context;b.save();b.globalAlpha=this.alpha;b.translate(this.getCenterX(),this.getCenterY());b.scale(this.scale,this.scale);this.image[ig.game.currentID].draw(-this.halfWidth,-this.halfHeight);b.restore()}})});ig.baked=!0;
ig.module("game.entities.gentities.balloon").requires("plugins.box2d.entity","game.entities.gentities.failed","game.ui.popup-gameover").defines(function(){EntityBalloon=ig.Box2DEntity.extend({type:ig.Entity.TYPE.A,balloon:[new ig.Image("media/graphics/games/play/original.png"),new ig.Image("media/graphics/games/play/ombre.png"),new ig.Image("media/graphics/games/play/chevron.png"),new ig.Image("media/graphics/games/play/polcadot.png"),new ig.Image("media/graphics/games/play/panda.png"),new ig.Image("media/graphics/games/play/donut.png"),
new ig.Image("media/graphics/games/play/moustache.png")],zIndex:1E3,box2dType:2,dynamicType:1,density:0.01,friction:0.1,restitution:0.2,randomId:0,isBalloon:!0,speedY:0,clickedBaloon:!0,gameOver:!0,checkScore:!0,vertices:[{x:-0.69,y:-11.6},{x:1.31,y:-11.48},{x:3.22,y:-10.02},{x:3.88,y:-7.9},{x:3.9,y:-6.02},{x:3.16,y:-3.89},{x:1.36,y:-2.17},{x:-0.07,y:-1.72},{x:-1.77,y:-2.48},{x:-3.05,y:-3.81},{x:-3.89,y:-6.07},{x:-4,y:-7.75},{x:-3.49,y:-9.48},{x:-2.4,y:-10.79}],init:function(b,c,d){this.setupAnim();
this.parent(b,c,d);ig.global.wm||ig.game.sortEntitiesDeferred()},update:function(){if(!this.parents.gameOver){this.parent();ig.input.pressed("click")&&this.clickedBaloon&&(this.speedY=3.5,this.clickedBaloon=!1);35<ig.game.score&&this.checkScore&&(this.speedY=1.5,this.checkScore=!1);var b=this.body.GetPosition();b.y-=this.speedY*Box2D.SCALE;this.body.SetPosition(b);ig.game.screen.y=b.y/Box2D.SCALE+150-ig.system.height}},setupAnim:function(){var b=this.balloon[ig.game.currentID];this.animSheet=new ig.AnimationSheet(b.path,
b.width,b.height);this.addAnim("idle",0.2,[0],!0);this.currentAnim=this.anims.idle;this.size.x=this.animSheet.width;this.size.y=this.animSheet.height},beginContact:function(b){b&&b.isObstacle&&(this.kill(),this.failed=ig.game.spawnEntity(EntityFailed,ig.game.centerX,ig.system.height-220),this.showGameOver())},showGameOver:function(){this.gameOver&&(this.gameOver=!1,ig.game.spawnEntity(EntityPopupGameOver,0,0),ig.soundHandler.sfxPlayer.play("over"))}})});ig.baked=!0;
ig.module("game.entities.gentities.protect").requires("plugins.box2d.entity").defines(function(){EntityProtect=ig.Box2DEntity.extend({type:ig.Entity.TYPE.B,checkAgainst:ig.Entity.TYPE.BOTH,protect:new ig.Image("media/graphics/games/play/protect.png"),zIndex:1E3,box2dType:1,dynamicType:0,density:1,friction:0.5,restitution:0.3,isProtect:!0,checkedSensor:!0,init:function(b,c,d){this.setupAnim();this.parent(b,c,d);ig.global.wm||(this.body.SetBullet(!0),this.body.SetAwake(!0),ig.domHandler.getElementById("#canvas").css("cursor",
"none"),ig.game.sortEntitiesDeferred(),this.createMouseJoint())},update:function(){if(!this.parents.gameOver){this.parent();var b=this.body.GetPosition();this.body.ApplyForce(new Box2D.Common.Math.b2Vec2(0,this.body.m_mass*-ig.game.gravity*Box2D.SCALE),b);b=ig.game.io.getClickPos();b=new Box2D.Common.Math.b2Vec2((ig.game.screen.x+b.x)*Box2D.SCALE,ig.ua.mobile?(ig.game.screen.y+b.y-130)*Box2D.SCALE:(ig.game.screen.y+b.y)*Box2D.SCALE);this.mouseJoint.SetTarget(b)}},setupAnim:function(){var b=this.protect;
this.animSheet=new ig.AnimationSheet(b.path,b.width,b.height);this.addAnim("idle",0.2,[0],!0);this.currentAnim=this.anims.idle;this.size.x=this.animSheet.width;this.size.y=this.animSheet.height;this.offset.x=this.animSheet.width;this.offset.y=this.animSheet.height},createMouseJoint:function(){var b=new Box2D.Dynamics.Joints.b2MouseJointDef;b.bodyA=this.parents.balloon.body;b.bodyB=this.body;var c=this.body.GetPosition(),c=new Box2D.Common.Math.b2Vec2(c.x,c.y);b.target=c;b.maxForce=1E6*this.body.GetMass();
b.dampingRatio=0.5;b.collideConnected=!0;this.mouseJoint=ig.world.CreateJoint(b)}})});ig.baked=!0;
ig.module("game.entities.obstacles.circle").requires("plugins.box2d.entity").defines(function(){EntityCircle=ig.Box2DEntity.extend({type:ig.Entity.TYPE.B,checkAgainst:ig.Entity.TYPE.BOTH,size:{x:100,y:100},box2dType:1,dynamicType:0,density:1,friction:0.5,restitution:0.3,zIndex:5,isObstacle:!0,checkObstacle:!1,isbody:!1,nColor:"#fff",isFixed:!0,isFall:!1,fallLeft:!1,angle:0,points:[],force:500,init:function(b,c,d){this.size.x=this.size.y=d.r?2*d.r:100;this.parent(b,c,d);this.radius=this.size.x/2;this.pi2=
2*Math.PI;ig.world.DestroyBody(this.body);ig.game.sortEntitiesDeferred()},update:function(){this.parent();this.pos.y>ig.game.screen.y+ig.system.height&&this.kill()},draw:function(){this.parent();ig.system.context.save();ig.system.context.fillStyle=this.nColor;ig.system.context.beginPath();if(ig.global.wm)ig.system.context.scale(ig.system.scale,ig.system.scale),ig.system.context.translate(this.pos.x+this.radius-ig.game.screen.x,this.pos.y+this.radius-ig.game.screen.y),ig.system.context.arc(0,0,this.radius,
0,this.pi2);else{var b=this.body.GetPosition();ig.system.context.arc(b.x/Box2D.SCALE-ig.game.screen.x,b.y/Box2D.SCALE-ig.game.screen.y,this.radius,0,this.pi2)}ig.system.context.closePath();ig.system.context.fill();ig.system.context.restore()},check:function(b){if(!ig.game.getEntitiesByType(EntityGameController)[0].gameOver&&(this.checkObstacle||b.isProtect)&&this.isFixed&&!b.isSensor)this.createBody(),this.isFixed=!1},setVel:function(){if(this.isFall&&this.isFixed){this.isFixed=!1;this.createBody();
var b=this.body.GetLinearVelocity();b.x=this.fallLeft?-25:25;this.body.SetLinearVelocity(b)}}})});ig.baked=!0;
ig.module("game.entities.obstacles.rectangle").requires("plugins.box2d.entity").defines(function(){EntityRectangle=ig.Box2DEntity.extend({type:ig.Entity.TYPE.B,checkAgainst:ig.Entity.TYPE.BOTH,size:{x:70,y:70},box2dType:0,dynamicType:0,density:1,friction:0.5,restitution:0.3,zIndex:5,isObstacle:!0,isbody:!1,nColor:"#fff",isFixed:!0,checkObstacle:!1,isStatic:!1,angle:0,force:150,init:function(b,c,d){this.size.x=d.w?d.w:100;this.size.y=d.h?d.h:100;this.parent(b,c,d);ig.global.wm||this.getDetectionShape();
this.isStatic||ig.world.DestroyBody(this.body);ig.game.sortEntitiesDeferred()},getDetectionShape:function(){this.detectionShapePointList=[];var b=this.body.GetPosition(),c=-this.body.GetAngle(),d=Math.sin(c),c=Math.cos(c),e=this.size.x/2,f=this.size.y/2,j=b.x/Box2D.SCALE,b=b.y/Box2D.SCALE,n={x:0,y:0};n.x=j-f*d-e*c;n.y=b-f*c+e*d;this.detectionShapePointList.push(n);n={x:0,y:0};n.x=j-f*d+e*c;n.y=b-f*c-e*d;this.detectionShapePointList.push(n);n={x:0,y:0};n.x=j+f*d+e*c;n.y=b+f*c-e*d;this.detectionShapePointList.push(n);
n={x:0,y:0};n.x=j+f*d-e*c;n.y=b+f*c+e*d;this.detectionShapePointList.push(n)},update:function(){this.parent();this.pos.y>ig.game.screen.y+ig.system.height&&this.kill()},draw:function(){ig.system.context.save();ig.system.context.fillStyle=this.nColor;ig.system.context.beginPath();if(ig.global.wm)ig.system.context.scale(ig.system.scale,ig.system.scale),ig.system.context.rect(this.pos.x-ig.game.screen.x,this.pos.y-ig.game.screen.y,this.size.x,this.size.y);else{this.getDetectionShape();ig.system.context.moveTo(this.detectionShapePointList[0].x-
ig.game.screen.x,this.detectionShapePointList[0].y-ig.game.screen.y);for(var b=1,c=this.detectionShapePointList.length;b<c;b++)ig.system.context.lineTo(this.detectionShapePointList[b].x-ig.game.screen.x,this.detectionShapePointList[b].y-ig.game.screen.y);ig.system.context.lineTo(this.detectionShapePointList[0].x-ig.game.screen.x,this.detectionShapePointList[0].y-ig.game.screen.y);ig.system.context.closePath()}ig.system.context.fill();ig.system.context.restore()},check:function(b){var c=ig.game.getEntitiesByType(EntityGameController)[0];
ig.game.getEntitiesByType(EntityProtect);if(!c.gameOver&&!this.isStatic&&(this.checkObstacle||b.isProtect)&&this.isFixed&&!b.isSensor)this.createBody(),this.isFixed=!1}})});ig.baked=!0;
ig.module("game.entities.obstacles.obstacle-dynamic").requires("plugins.box2d.entity").defines(function(){EntityObstacleDynamic=ig.Box2DEntity.extend({type:ig.Entity.TYPE.B,checkAgainst:ig.Entity.TYPE.BOTH,obstacle:new ig.Image("media/graphics/games/play/obstacles/big-triangle.png"),zIndex:5,box2dType:2,dynamicType:0,density:1,friction:0.5,restitution:0.3,isObstacle:!0,checkObstacle:!1,isbody:!1,vertices:[{x:-0.09,y:-9.06},{x:10.45,y:8.9},{x:-10.45,y:8.9}],isFixed:!0,isStatic:!1,isFall:!1,fallLeft:!1,
angle:0,force:50,init:function(b,c,d){this.setupAnim();this.parent(b,c,d);ig.global.wm||(this.isStatic||ig.world.DestroyBody(this.body),ig.game.sortEntitiesDeferred())},setupAnim:function(){var b=this.obstacle;this.animSheet=new ig.AnimationSheet(b.path,b.width,b.height);this.addAnim("idle",0.2,[0],!0);this.currentAnim=this.anims.idle;this.size.x=this.animSheet.width;this.size.y=this.animSheet.height},update:function(){this.parent();this.pos.y>ig.game.screen.y+ig.system.height&&this.kill()},check:function(b){var c=
ig.game.getEntitiesByType(EntityGameController)[0];ig.game.getEntitiesByType(EntityProtect);if(!c.gameOver&&(this.checkObstacle||b.isProtect)&&this.isFixed&&!b.isSensor)this.createBody(),this.isFixed=!1},setVel:function(){if(this.isFall&&this.isFixed){this.isFixed=!1;this.createBody();var b=this.body.GetLinearVelocity();b.x=this.fallLeft?-25:25;this.body.SetLinearVelocity(b)}}})});ig.baked=!0;
ig.module("game.entities.obstacles.small-triangle").requires("game.entities.obstacles.obstacle-dynamic").defines(function(){EntitySmallTriangle=EntityObstacleDynamic.extend({obstacle:new ig.Image("media/graphics/games/play/obstacles/small-triangle.png"),vertices:[{x:-0.07,y:-4.45},{x:5.25,y:4.45},{x:-5.25,y:4.45}]})});ig.baked=!0;
ig.module("game.entities.obstacles.big-oval").requires("game.entities.obstacles.obstacle-dynamic").defines(function(){EntityBigOval=EntityObstacleDynamic.extend({obstacle:new ig.Image("media/graphics/games/play/obstacles/big-oval.png"),vertices:[{x:-0.75,y:-9.08},{x:2.51,y:-8.51},{x:4.94,y:-6.45},{x:6.16,y:-3},{x:6.56,y:0.86},{x:5.47,y:5.3},{x:2.64,y:8.59},{x:-1.36,y:9.21},{x:-5.02,y:6.29},{x:-6.73,y:0.84},{x:-6.13,y:-3.45},{x:-3.79,y:-7.68}]})});ig.baked=!0;
ig.module("game.entities.obstacles.small-oval").requires("game.entities.obstacles.obstacle-dynamic").defines(function(){EntitySmallOval=EntityObstacleDynamic.extend({obstacle:new ig.Image("media/graphics/games/play/obstacles/small-oval.png"),vertices:[{x:-0.7,y:-4.58},{x:1.93,y:-4.01},{x:3.21,y:-1.11},{x:3.02,y:1.86},{x:2.02,y:3.84},{x:-0.37,y:4.71},{x:-2.51,y:3.27},{x:-3.41,y:0.03},{x:-2.76,y:-2.79}]})});ig.baked=!0;
ig.module("game.entities.obstacles.plus").requires("game.entities.obstacles.obstacle-dynamic").defines(function(){EntityPlus=EntityObstacleDynamic.extend({obstacle:new ig.Image("media/graphics/games/play/obstacles/plus.png"),vertices:[{x:-0.88,y:-2.67},{x:0.89,y:-2.67},{x:2.65,y:-0.89},{x:2.67,y:0.92},{x:0.99,y:2.69},{x:-0.79,y:2.75},{x:-2.71,y:0.97},{x:-2.7,y:-0.93}]})});ig.baked=!0;
ig.module("game.entities.obstacles.pentagon").requires("game.entities.obstacles.obstacle-dynamic").defines(function(){EntityPentagon=EntityObstacleDynamic.extend({obstacle:new ig.Image("media/graphics/games/play/obstacles/pentagon.png"),vertices:[{x:-0.05,y:-4.95},{x:5.23,y:-1.17},{x:3.34,y:4.95},{x:-3.25,y:5.03},{x:-5.23,y:-1.13}]})});ig.baked=!0;
ig.module("game.entities.obstacles.diamond").requires("game.entities.obstacles.obstacle-dynamic").defines(function(){EntityDiamond=EntityObstacleDynamic.extend({obstacle:new ig.Image("media/graphics/games/play/obstacles/diamond.png"),vertices:[{x:-0.09,y:-3.67},{x:6.41,y:-0.05},{x:0,y:3.91},{x:-6.33,y:0.05}]})});ig.baked=!0;
ig.module("game.entities.obstacles.big-pentagon").requires("game.entities.obstacles.obstacle-dynamic").defines(function(){EntityBigPentagon=EntityObstacleDynamic.extend({obstacle:new ig.Image("media/graphics/games/play/obstacles/big-pentagon.png"),vertices:[{x:-8,y:-5.94},{x:-0.06,y:-9.72},{x:8.12,y:-5.84},{x:9.97,y:2.73},{x:4.32,y:9.84},{x:-4.54,y:9.72},{x:-10.01,y:2.84}]})});ig.baked=!0;
ig.module("game.entities.obstacles.small-pentagon").requires("game.entities.obstacles.obstacle-dynamic").defines(function(){EntitySmallPentagon=EntityObstacleDynamic.extend({obstacle:new ig.Image("media/graphics/games/play/obstacles/small-pentagon.png"),vertices:[{x:-3.98,y:-3.17},{x:0.08,y:-4.86},{x:4.15,y:-2.93},{x:4.97,y:1.45},{x:2.38,y:4.78},{x:-2.09,y:4.9},{x:-5.05,y:1.36}]})});ig.baked=!0;
ig.module("game.entities.obstacles.big-stars").requires("game.entities.obstacles.obstacle-dynamic").defines(function(){EntityBigStars=EntityObstacleDynamic.extend({obstacle:new ig.Image("media/graphics/games/play/obstacles/big-stars.png"),vertices:[{x:-6.65,y:-2.95},{x:-1.48,y:-6.03},{x:2.3,y:-5.58},{x:5.21,y:-2.73},{x:6.64,y:1.93},{x:5.64,y:5.25},{x:0.94,y:7.11},{x:-1.1,y:7.25},{x:-5.35,y:5.82},{x:-7.14,y:0.81}]})});ig.baked=!0;
ig.module("game.entities.obstacles.small-stars").requires("game.entities.obstacles.obstacle-dynamic").defines(function(){EntitySmallStars=EntityObstacleDynamic.extend({obstacle:new ig.Image("media/graphics/games/play/obstacles/small-stars.png"),vertices:[{x:0.02,y:-4.91},{x:5.16,y:-1.17},{x:3.23,y:4.95},{x:-3.15,y:4.95},{x:-5.06,y:-1.21}]})});ig.baked=!0;
ig.module("game.entities.gentities.sensor").requires("plugins.box2d.entity").defines(function(){EntitySensor=ig.Box2DEntity.extend({type:ig.Entity.TYPE.B,checkAgainst:ig.Entity.TYPE.A,zIndex:1E3,box2dType:2,dynamicType:2,density:1,friction:0.1,restitution:0.1,checkedBalloon:!0,isSensor:!0,vertices:[{x:-27,y:-0.25},{x:27,y:-0.25},{x:27,y:0.25},{x:-27,y:0.25}],init:function(b,c,d){this.setupAnim();this.parent(b,c,d);ig.global.wm||ig.game.sortEntitiesDeferred()},setupAnim:function(){this.size.x=ig.system.width;
this.size.y=5},update:function(){this.parent();this.pos.y>ig.game.screen.y+ig.system.height&&this.kill()},preSolve:function(b,c){b&&(b.isObstacle||b.isProtect)&&c.SetEnabled(!1)},check:function(b){if(this.checkedBalloon){this.checkedBalloon=!1;var c=ig.game.getEntitiesByType(EntityObstacleDynamic),d=ig.game.getEntitiesByType(EntityCircle);if(b&&b.isBalloon&&(!c.isFall||!d.isFall)){ig.game.getEntitiesByType(EntityGameController)[0].spawnNextLevel();for(b=0;b<c.length;b++)c[b]&&c[b].setVel();for(b=
0;b<d.length;b++)d[b]&&d[b].setVel()}}}})});ig.baked=!0;
ig.module("game.entities.obstacles.spin").requires("game.entities.obstacles.obstacle-dynamic").defines(function(){EntitySpin=EntityObstacleDynamic.extend({obstacle:new ig.Image("media/graphics/games/play/obstacles/small-stars.png"),vertices:[{x:0.02,y:-4.91},{x:5.16,y:-1.17},{x:3.23,y:4.95},{x:-3.15,y:4.95},{x:-5.06,y:-1.21}],pos:{x:100,y:100},isMovingUp:!1,zIndex:90,moveUpDown:!1,notMoving:!1,isRotating:!1,dR:100,init:function(b,c,d){this.parent(b,c,d);this.moveUpDown&&(this.topY=(this.pos.y+this.size.y/
2-this.dR)*Box2D.SCALE,this.bottomY=(this.pos.y+this.size.y/2+this.dR)*Box2D.SCALE)},ready:function(){if(this.moveUpDown){var b=Math.random();0.5>b?this.moveUp():this.moveDown()}else this.moveR=((this.pos.y+this.size.y/2+this.dR)*Box2D.SCALE-(this.pos.y+this.size.y/2-this.dR)*Box2D.SCALE)/2,this.speed=0.7*Math.PI/180,b=Math.random(),0.5>b&&(this.speed=-this.speed),this.ang=0,this.pos0={},this.pos0.x=this.pos.x*Box2D.SCALE-this.moveR,this.pos0.y=this.pos.y*Box2D.SCALE;this.isRotating&&(0.5>Math.random()?
this.body.SetAngularVelocity(Math.PI/3):this.body.SetAngularVelocity(-Math.PI/3))},moveUp:function(){var b=this.body.GetLinearVelocity();b.y=-(Math.floor(2*Math.random())+8);this.body.SetLinearVelocity(b);this.isMovingUp=!0},moveDown:function(){var b=this.body.GetLinearVelocity();b.y=Math.floor(2*Math.random())+8;this.body.SetLinearVelocity(b);this.isMovingUp=!1},update:function(){this.parent();if(!this.notMoving)if(this.moveUpDown)this.isMovingUp?this.body.GetPosition().y<=this.topY&&this.moveDown():
this.body.GetPosition().y>=this.bottomY&&this.moveUp();else{this.ang+=this.speed;var b={};b.x=this.pos0.x+this.moveR*Math.cos(this.ang);b.y=this.pos0.y+this.moveR*Math.sin(this.ang);this.body.SetPosition(b)}}})});ig.baked=!0;
ig.module("game.entities.controllers.game-controller").requires("game.entities.buttons.button-pause","game.ui.popup-gameover","game.entities.gentities.rolling-bg","game.entities.gentities.balloon","game.entities.gentities.protect","game.entities.obstacles.circle","game.entities.obstacles.rectangle","game.entities.obstacles.small-triangle","game.entities.obstacles.big-oval","game.entities.obstacles.small-oval","game.entities.obstacles.plus","game.entities.obstacles.pentagon","game.entities.obstacles.diamond",
"game.entities.obstacles.big-pentagon","game.entities.obstacles.small-pentagon","game.entities.obstacles.big-stars","game.entities.obstacles.small-stars","game.entities.gentities.sensor","game.entities.obstacles.spin").defines(function(){EntityGameController=ig.Entity.extend({zIndex:10,gameOver:!1,init:function(b,c,d){this.parent(b,c,d);ig.game.currentLayer=ig.game.layers.BASE;0==ig.game.getEntitiesByType(EntityPointer).length&&ig.game.spawnEntity(EntityPointer,0,0);ig.game.currentID=Math.floor(7*
Math.random());this.resetScore();ig.game.spawnEntity(EntityRollingBg,0,0);this.balloon=this.spawnEntity(EntityBalloon,210.5,650);this.protect=this.spawnEntity(EntityProtect,200,550);b=Math.floor(4*Math.random());this.spawObstacle(_LVL[b]);ig.game.spawnEntity(EntityFade,0,0);ig.game.sortEntitiesDeferred()},addScore:function(b){this.score+=b},draw:function(){this.parent();ig.game.drawText(_STRINGS.Game.Score,60,35,28,"#000","center");ig.game.drawText(ig.game.score,105,35,28,"#000","left")},resetScore:function(){ig.game.score=
0;ig.game.coins=0},spawnNextLevel:function(){var b=300>ig.game.score?Math.floor(5*Math.random()):600>ig.game.score?Math.floor(5*Math.random()+5):900>ig.game.score?Math.floor(5*Math.random()+10):1200>ig.game.score?Math.floor(5*Math.random()+15):1700>ig.game.score?Math.floor(5*Math.random()+20):Math.floor(20*Math.random()+5);this.spawObstacle(_LVL[b])},spawObstacle:function(b){for(var c=0;c<b.length;c++)ig.game.spawnEntity(ig.global[b[c].type],b[c].x,b[c].y+ig.game.screen.y,b[c].settings)}})});
ig.baked=!0;ig.module("game.levels.game").requires("game.entities.controllers.game-controller").defines(function(){LevelGame={entities:[{type:"EntityGameController",x:0,y:0}],layer:[]}});ig.baked=!0;
ig.module("game.levels.level1").requires("impact.image","game.entities.obstacles.circle").defines(function(){LevelLevel1={entities:[{type:"EntityCircle",x:115,y:-460,settings:{checkObstacle:1}},{type:"EntityCircle",x:170,y:-350,settings:{checkObstacle:1}},{type:"EntityCircle",x:280,y:-350,settings:{checkObstacle:1}},{type:"EntityCircle",x:390,y:-350,settings:{checkObstacle:1}},{type:"EntityCircle",x:60,y:-350,settings:{checkObstacle:1}},{type:"EntityCircle",x:225,y:-460,settings:{checkObstacle:1}},
{type:"EntityCircle",x:335,y:-460,settings:{checkObstacle:1}},{type:"EntityCircle",x:280,y:-570,settings:{checkObstacle:1}},{type:"EntityCircle",x:170,y:-570,settings:{checkObstacle:1}},{type:"EntityCircle",x:225,y:-680,settings:{checkObstacle:1}}],layer:[{name:"new_layer_0",width:9,height:16,linkWithCollision:!1,visible:1,tilesetName:"",repeat:!1,preRender:!1,distance:"1",tilesize:60,foreground:!1,data:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,
0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]]}]}});ig.baked=!0;
ig.module("game.levels.level2").requires("impact.image","game.entities.obstacles.circle").defines(function(){LevelLevel2={entities:[{type:"EntityCircle",x:115,y:-460,settings:{checkObstacle:1}},{type:"EntityCircle",x:170,y:-350,settings:{checkObstacle:1}},{type:"EntityCircle",x:280,y:-350,settings:{checkObstacle:1}},{type:"EntityCircle",x:390,y:-350,settings:{checkObstacle:1}},{type:"EntityCircle",x:60,y:-350,settings:{checkObstacle:1}},{type:"EntityCircle",x:225,y:-460,settings:{checkObstacle:1}},
{type:"EntityCircle",x:335,y:-460,settings:{checkObstacle:1}},{type:"EntityCircle",x:280,y:-570,settings:{checkObstacle:1}},{type:"EntityCircle",x:170,y:-570,settings:{checkObstacle:1}},{type:"EntityCircle",x:225,y:-680,settings:{checkObstacle:1}}],layer:[{name:"new_layer_0",width:9,height:16,linkWithCollision:!1,visible:1,tilesetName:"",repeat:!1,preRender:!1,distance:"1",tilesize:60,foreground:!1,data:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,
0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]]}]}});ig.baked=!0;
ig.module("game.main").requires("impact.game","plugins.patches.webkit-image-smoothing-patch","plugins.patches.windowfocus-onMouseDown-patch","plugins.handlers.dom-handler","plugins.handlers.size-handler","plugins.handlers.api-handler","plugins.audio.sound-handler","plugins.io.io-manager","plugins.io.storage-manager","plugins.splash-loader","plugins.tween","plugins.tweens-handler","plugins.url-parameters","plugins.director","plugins.impact-storage","plugins.nimpact","plugins.fullscreen","plugins.data.vector",
"plugins.data.color-rgb","plugins.branding.splash","game.entities.branding-logo-placeholder","game.entities.buttons.button-more-games","plugins.box2d.entity","plugins.box2d.game","game.entities.opening-shield","game.entities.opening-kitty","game.entities.pointer","game.entities.select","game.ui.fade","game.levels.opening","game.levels.home","game.levels.game","game.levels.level1","game.levels.level2").defines(function(){this.START_OBFUSCATION;this.FRAMEBREAKER;MyGame=ig.Box2DGame.extend({name:"MJS-rise-higher",
version:"1.0",sessionData:{},io:null,paused:!1,tweens:null,layers:{BASE:0,POPUP:500},playerID:0,currentID:0,gravity:150,levels:1,score:0,coins:0,init:function(){this.tweens=new ig.TweensHandler;this.io=new IoManager;this.setupUrlParams=new ig.UrlParameters;this.removeLoadingWheel();this.setupStorageManager();var b=this.load("music");ig.soundHandler.bgmPlayer.volume(b);b=this.load("sound");ig.soundHandler.sfxPlayer.volume(b);this.centerX=ig.system.width/2;this.centerY=ig.system.height/2;this.finalize()},
initData:function(){return this.sessionData={sound:0.9,music:0.9,level:1,highscore:0,audio:!0}},randomInt:function(b,c){return b+Math.floor(Math.random()*(c-b+1))},randomFloat:function(b,c){return b+Math.random()*(c-b)},angleBetween:function(b,c){return Math.atan2(c.y-b.y,c.x-b.x)},distanceBetween:function(b,c){return Math.sqrt(Math.pow(b.y-c.y,2)+Math.pow(b.x-c.x,2))},start:function(){this.resetPlayerStats();this.director=new ig.Director(this,[LevelOpening,LevelHome,LevelGame]);if(_SETTINGS.Branding.Splash.Enabled)try{this.branding=
new ig.BrandingSplash}catch(b){console.log(b),console.log("Loading original levels ..."),this.director.loadLevel(this.director.currentLevel)}else this.director.loadLevel(this.director.currentLevel);(_SETTINGS.Branding.Splash.Enabled||_SETTINGS.DeveloperBranding.Splash.Enabled)&&this.spawnEntity(EntityPointer,0,0);ig.soundHandler.bgmPlayer.play(ig.soundHandler.bgmPlayer.soundList.background)},finalize:function(){if(ig.ua.mobile){var b=ig.domHandler.getElementById("#play");ig.domHandler.attr(b,"onclick",
'ig.soundHandler.sfxPlayer.play("staticSound");ig.game.splashClick();');ig.domHandler.show(b)}else this.start();ig.sizeHandler.reorient()},drawText:function(b,c,d,e,f,j){ig.system.context.textBaseline="alphabetic";ig.system.context.font=e+"px mainfont";ig.system.context.fillStyle=f;ig.system.context.textAlign=j;ig.system.context.fillText(b,c,d)},drawTextMultiLines:function(b,c,d,e,f,j,n){for(var m=0;m<b.length;m++)this.drawText(b[m],c,d+m*(e+n),e,f,j)},drawTextStroke:function(b,c,d,e,f,j,n,m){ig.system.context.textBaseline=
"alphabetic";ig.system.context.font=e+"px mainfont";ig.system.context.fillStyle=f;ig.system.context.strokeStyle=n;ig.system.context.textAlign=j;ig.system.context.lineWidth=m;ig.system.context.strokeText(b,c,d);ig.system.context.fillText(b,c,d)},drawTextShadow:function(b,c,d,e,f,j){ig.system.context.textBaseline="alphabetic";ig.system.context.font=e+"px mainfont";ig.system.context.fillStyle=f;ig.system.context.textAlign=j;ig.system.context.fillText(b,c,d);ig.system.context.fillStyle="rgba(0,0,0,0.8)";
ig.system.context.fillText(b,c+3,d+3)},setupMarketJsGameCenter:function(){if(_SETTINGS)if(_SETTINGS.MarketJSGameCenter){var b=ig.domHandler.getElementByClass("gamecenter-activator");_SETTINGS.MarketJSGameCenter.Activator.Enabled&&_SETTINGS.MarketJSGameCenter.Activator.Position&&(console.log("MarketJSGameCenter activator settings present ...."),ig.domHandler.css(b,{position:"absolute",left:_SETTINGS.MarketJSGameCenter.Activator.Position.Left,top:_SETTINGS.MarketJSGameCenter.Activator.Position.Top,
"z-index":3}));ig.domHandler.show(b)}else console.log("MarketJSGameCenter settings not defined in game settings")},removeLoadingWheel:function(){try{$("#ajaxbar").css("background","none")}catch(b){console.log(b)}},showDebugMenu:function(){console.log("showing debug menu ...");ig.Entity._debugShowBoxes=!0;$(".ig_debug").show()},fpsCount:function(){this.fpsTimer||(this.fpsTimer=new ig.Timer(1));this.fpsTimer&&0>this.fpsTimer.delta()?null!=this.fpsCounter?this.fpsCounter++:this.fpsCounter=0:(ig.game.fps=
this.fpsCounter,this.fpsCounter=0,this.fpsTimer.reset())},endGame:function(){console.log("End game");ig.soundHandler.bgmPlayer.stop();ig.apiHandler.run("MJSEnd")},resetPlayerStats:function(){ig.log("resetting player stats ...");this.playerStats={id:this.playerStats?this.playerStats.id:null}},splashClick:function(){var b=ig.domHandler.getElementById("#play");ig.domHandler.hide(b);ig.apiHandler.run("MJSFooter");ig.apiHandler.run("MJSHeader");ig.game.start()},pauseGame:function(){ig.system.stopRunLoop.call(ig.system);
ig.game.tweens.onSystemPause();console.log("Game Paused")},resumeGame:function(){ig.system.startRunLoop.call(ig.system);ig.game.tweens.onSystemResume();console.log("Game Resumed")},showOverlay:function(b){for(i=0;i<b.length;i++)$("#"+b[i])&&$("#"+b[i]).show(),document.getElementById(b[i])&&(document.getElementById(b[i]).style.visibility="visible")},hideOverlay:function(b){for(i=0;i<b.length;i++)$("#"+b[i])&&$("#"+b[i]).hide(),document.getElementById(b[i])&&(document.getElementById(b[i]).style.visibility=
"hidden")},currentBGMVolume:1,addition:0.1,update:function(){this.fpsCount();this.paused?(this.updateWhilePaused(),this.checkWhilePaused()):(this.parent(),this.tweens.update(this.tweens.now()),ig.ua.mobile&&ig.soundHandler&&ig.soundHandler.forceLoopBGM())},updateWhilePaused:function(){for(var b=0;b<this.entities.length;b++)this.entities[b].ignorePause&&this.entities[b].update()},checkWhilePaused:function(){for(var b={},c=0;c<this.entities.length;c++){var d=this.entities[c];if(d.ignorePause&&!(d.type==
ig.Entity.TYPE.NONE&&d.checkAgainst==ig.Entity.TYPE.NONE&&d.collides==ig.Entity.COLLIDES.NEVER))for(var e={},f=Math.floor(d.pos.y/this.cellSize),j=Math.floor((d.pos.x+d.size.x)/this.cellSize)+1,n=Math.floor((d.pos.y+d.size.y)/this.cellSize)+1,m=Math.floor(d.pos.x/this.cellSize);m<j;m++)for(var g=f;g<n;g++)if(b[m])if(b[m][g]){for(var t=b[m][g],z=0;z<t.length;z++)d.touches(t[z])&&!e[t[z].id]&&(e[t[z].id]=!0,ig.Entity.checkPair(d,t[z]));t.push(d)}else b[m][g]=[d];else b[m]={},b[m][g]=[d]}},draw:function(){this.parent()},
dctf:function(){this.COPYRIGHT},clearCanvas:function(b,c,d){var e=b.canvas;b.clearRect(0,0,c,d);e.style.display="none";e.offsetHeight;e.style.display="inherit"},drawDebug:function(){if(!ig.global.wm&&(this.debugEnable(),this.viewDebug&&(ig.system.context.fillStyle="#000000",ig.system.context.globalAlpha=0.35,ig.system.context.fillRect(0,0,ig.system.width/4,ig.system.height),ig.system.context.globalAlpha=1,this.debug&&0<this.debug.length)))for(i=0;i<this.debug.length;i++)ig.system.context.font="10px Arial",
ig.system.context.fillStyle="#ffffff",ig.system.context.fillText(this.debugLine-this.debug.length+i+": "+this.debug[i],10,50+10*i)},debugCL:function(b){this.debug?(50>this.debug.length||this.debug.splice(0,1),this.debug.push(b),this.debugLine++):(this.debug=[],this.debugLine=1,this.debug.push(b));console.log(b)},debugEnable:function(){ig.input.pressed("click")&&(this.debugEnableTimer=new ig.Timer(2));this.debugEnableTimer&&0>this.debugEnableTimer.delta()?ig.input.released("click")&&(this.debugEnableTimer=
null):this.debugEnableTimer&&0<this.debugEnableTimer.delta()&&(this.debugEnableTimer=null,this.viewDebug=this.viewDebug?!1:!0)}});ig.domHandler=null;ig.domHandler=new ig.DomHandler;ig.domHandler.forcedDeviceDetection();ig.domHandler.forcedDeviceRotation();ig.apiHandler=new ig.ApiHandler;ig.sizeHandler=new ig.SizeHandler(ig.domHandler);ig.ua.mobile?(ig.Sound.enabled=!1,ig.main("#canvas",MyGame,60,ig.sizeHandler.mobile.actualResolution.x,ig.sizeHandler.mobile.actualResolution.y,ig.sizeHandler.scale,
ig.SplashLoader),ig.sizeHandler.resize()):ig.main("#canvas",MyGame,60,ig.sizeHandler.desktop.actualResolution.x,ig.sizeHandler.desktop.actualResolution.y,ig.sizeHandler.scale,ig.SplashLoader);ig.soundHandler=null;ig.soundHandler=new ig.SoundHandler;ig.sizeHandler.reorient();this.DOMAINLOCK_BREAKOUT_ATTEMPT;this.END_OBFUSCATION});