| STORY LOOP FURRY PORN GAMES C SERVICES [?] [R] RND POPULAR | Archived flashes: 232713 |
| /disc/ · /res/ — /show/ · /fap/ · /gg/ · /swf/ | P0001 · P2636 · P5272 |
![]() | This is the info page for Flash #263387 |
| > Hello, Dr. Vile! > I have missed you! >> |
| Hello, Lexe. |
| > What would you like to do, today? >> |
| The same thing we do everyday, Lexe! |
| Check the World Scientist Rankings! |
| > Okay! > WORLD SCIENTIST RANKINGS > 1. Dr. Ben Evolent > 2. Dr. Harris > 3. Dr. Davis > 4. Dr. Anderson > 5. Dr. Everest > 6. Dr. Miyamoto > 7. Dr. Link > 8. Dr. Grossman >> |
| CURSE THAT DR. BEN EVOLENT! Number one since I can remember! |
| WHAT IS MY RANKING?! |
| > . > .. > ... > .... > ..... > 99,992. Dr. Vile >> |
| DOWN TWO SPOTS! I've had it, Lexe! I'VE HAD IT! |
| Today, we complete the Death Ray and destroy this world! |
| THAT will show them! THAT will move me, the great Dr. Vile, to the VERY TOP! HA HA HA HA! |
| > ... Sound reasoning, Dr. Vile. >> |
| Let's get to work! |
| > *GASP!* >> |
| What is it?! |
| > A meteor! A meteor is headed for Earth! Collision is inevitable. >> |
| Really?! Let me see! |
| > It is massive! We are all going to die. >> |
| Hoooo... that IS big. |
| HA HA! EXCELLENT! |
| > What. >> |
| The meteor will do my work for me! The Earth is DOOMED! HA HA HA! |
| Today, we celebrate! |
| > Wait! I have a wonderful idea. >> |
| > Why don't we use the Death Ray to destroy the meteor? >> |
| Preposterous! You are defective! |
| > Think of the headlines, Dr. Vile. > DR. VILE SAVES THE WORLD! > SCIENTIST HAILED AS WORLD HERO! > DR. VILE DECLARED GREATEST SCIENTIST IN HISTORY! >> |
| Hmmm. Interesting. |
| Hmmm... |
| HMMMM! |
| Alright! We will destroy this meteor! |
| > Okay! >> |
| > The Death Ray will need to be upgraded. We will need parts. >> |
| > Find the parts around town. Take metal from cars, wood from tables and trees, circuits from TVs - whatever it takes! Say please! >> |
| > Use the SPACE BAR to open the Needed Parts List and collect the necessary parts. >> |
| HA! The simpletons in this town will never let me take their belongings! |
| ... Likely due to the fact that I try to kill them everyday. |
| > We must upgrade the Death Ray! You can do it, Dr. Vile! Only YOU can save the world! >> |
| Very well! I will get the parts! |
| I WILL save this world! Even if I have to KILL EVERYONE with a BAT! |
| > N-no, no. Please don't kill anyone. That is the point, Dr. Vile. >> |
| I MUST! FOR THE GREATER GOOD! |
| THE GREATER GOOD! HOOOOO! |
| > Yeah. We're gonna be just fine. >> |
| Well done, Dr. Vile! The Death Ray is ready to destroy the meteor! |
| The fools in this town were HAPPY to give me the parts! They love me! |
| Now the whole world will love you! |
| World Scientist Rankings number one spot, HERE I COME! |
| Activating Death Ray. |
| Targeting meteor. |
| Target locked. |
| Firing Death Ray in 3... |
| 2... |
| 1... |
| FIIIIIIIIIRE!!! |
| > We did it! We destroyed the meteor! >> |
| YES! HA HA HA! YES! |
| > You are a hero! The whole world is undoubtedly cheering your name right now! >> |
| As they should have been all this time! I will FINALLY get the respect and recognition I deserve! |
| And, most importantly, the FEAR! The world will fear me and my all-powerful Death Ray! HA HA HA! |
| Bring up the headlines, Lexe! Let me witness the fruits of my labour! |
| > Searching for headlines! >> |
| > Found 'em! >> |
| YES! Let me see! |
| > O-oh. Ah. Um... >> |
| Display them! Come on, Lexe. LET ME SEE! I'm giddy with excitement! |
| > O-okay. Loading headlines... >> |
| ... |
| ... C-close headlines. |
| > I'm so sorry, Dr. Vile. >> |
| > You are still MY hero. >> |
| ... D-Dr. Ben Evolent... |
| DR. BEN EVOLENT... |
| DR. BEN EVOLENT!! |
| > N-now, please calm down, Dr. Vile. > Tomorrow is another day. >> |
| Tomorrow... |
| ... Tomorrow, I go after YOU, Dr. Ben Evolent. |
| Tomorrow, I KILL DR. BEN EVOLENT!! |
| HIM AND EVERYONE ON THIS PLANET! HA HA HA! |
| I, DR. VILE, AM THE GREATEST SCIENTIST THIS WORLD WILL EVER KNOW!! |
| > That's the spirit, Dr. Vile! >> |
| > You will always be my number one scientist. > I wuv you so much. > MUAH! >> |
| > Thank you for playing DR. VILE in THE GREATER GOOD! > We at GREEN PIXEL hope you had as much fun playing it as we did making it! > Thank you to Ludum Dare for making our first Jam so much fun! >> |
| > We may take this game further and pump it full of features so please give us your feedback! > We'll keep you updated on our progress and our other projects on Twitter, @GreenPixelDev, and on our website, www.greenpixel.ca! >> |
| > Please follow us and send us your feedback or I'll be sad. >> |
| > Thank you again for playing! > Congratulations to all you other Ludum Dare 25 devs! See you next time! > We wuv you so much! > MUAH! >> |
| > Now, off you go! > Back to the main menu! >> |
ActionScript [AS3]
Section 1//Sprite2D (greenpixel.game.sprite.Sprite2D) package greenpixel.game.sprite { import flash.display.*; import greenpixel.gut.anim.*; import flash.geom.*; public class Sprite2D extends Sprite { protected var drawData:DrawData; public var hitBox:Rectangle; private var currentAnimBundle:int; private var currentFrame:int; public var isAlive:Boolean; private var frameOpStatus:int; private var currentAnimIndex:int; private var frameCounter:int; public var isAnimFinished:Boolean; public function Sprite2D(){ currentAnimBundle = -1; currentAnimIndex = -1; } public function resetAnim(_arg1:int){ currentAnimIndex = -1; setAnim(currentAnimBundle, _arg1); } public function checkFrameOps():int{ var _local1:int; _local1 = frameOpStatus; frameOpStatus = FrameData.OP_NONE; return (_local1); } public function nextFrame():void{ if (frameCounter == drawData.numDrawFrames){ frameCounter = 0; if (currentFrame < (drawData.totalFrames - 1)){ currentFrame++; } else { if (drawData.loopType == AnimationBundle.ONESHOT){ isAnimFinished = true; } else { currentFrame = 0; }; }; if (!isAnimFinished){ setDrawData(); }; } else { frameCounter++; }; } public function setDrawData():void{ drawData = AnimManager.instance.getDrawData(currentAnimBundle, currentAnimIndex, currentFrame); frameOpStatus = drawData.frameOp; } public function setPos(_arg1:Number, _arg2:Number):void{ x = _arg1; y = _arg2; } public function setAnim(_arg1:int, _arg2:int){ if ((((currentAnimBundle == _arg1)) && ((currentAnimIndex == _arg2)))){ return; }; currentAnimBundle = _arg1; currentAnimIndex = _arg2; currentFrame = 0; frameCounter = 0; setDrawData(); isAnimFinished = false; } public function drawToBuffer(_arg1:BitmapData, _arg2:int, _arg3:int){ _arg1.copyPixels(drawData.img, drawData.bounds, new Point((_arg2 + drawData.imageOffsetX), (_arg3 + drawData.imageOffsetY))); } } }//package greenpixel.game.spriteSection 2//TextSprite (greenpixel.game.sprite.TextSprite) package greenpixel.game.sprite { import flash.display.*; import flash.geom.*; import flash.text.*; import greenpixel.game.ui.*; public class TextSprite extends Sprite2D { private var useBGAnim:Boolean; private var textArea:TextArea; public function TextSprite(_arg1:Rectangle, _arg2:int, _arg3:int, _arg4:Boolean){ textArea = new TextArea(_arg1, _arg2, _arg3); useBGAnim = _arg4; } public function isTextFinished():Boolean{ return (textArea.isTextFinished); } public function nextPage():void{ textArea.nextPage(); } public function showPage():void{ textArea.showPage(); } override public function nextFrame():void{ if (useBGAnim){ super.nextFrame(); }; textArea.nextFrame(); } public function isPageFinished():Boolean{ return (textArea.isPageFinished); } public function setText(_arg1:String, _arg2:int):void{ textArea.setText(_arg1, _arg2); } public function setFormat(_arg1:TextFormat):void{ textArea.setFormat(_arg1); } override public function drawToBuffer(_arg1:BitmapData, _arg2:int, _arg3:int){ var _local4:Matrix; if (useBGAnim){ super.drawToBuffer(_arg1, _arg2, _arg3); }; _local4 = new Matrix(); _local4.translate((_arg2 + textArea.x), (_arg3 + textArea.y)); _arg1.draw(textArea, _local4); } } }//package greenpixel.game.spriteSection 3//Tile (greenpixel.game.tilemap.Tile) package greenpixel.game.tilemap { public class Tile { public static var SPECIAL_SPAWN_COUCH = 16; public static var ROT90:int = (1 << 6); public static var TILE_YPOS_SHIFT:int = 8; public static var ROTFLAGS:int = ((ROT180 | ROT270) | ROT90); public static var FLIPFLAGS:int = (HFLIP | VFLIP); public static var SPECIAL_SPAWN_CAR = 21; public static var SPECIAL_SPAWN_ROCK = 9; public static var SPECIAL_SPAWN_BUSH = 8; public static var SPECIAL_SPAWN_STOVE = 10; public static var HFLIP:int = (1 << 0); public static var SPECIAL_SPAWN_NPC = 7; public static var VFLIP:int = (1 << 1); public static var SPECIAL_SPAWN_TABLE = 17; public static var SPECIAL_PLAYER = 2; public static var WALL:int = (1 << 2); public static var SPECIAL_SPAWN_TV = 15; public static var TILE_TYPE_SHIFT:int = 24; public static var SPECIAL_SPAWN_FRIDGE = 13; public static var SPECIAL_SPIKES_RIGHT = 4; public static var SPECIAL_SPAWN_TABLE_AND_CHAIRS = 14; public static var ROT180:int = (1 << 4); public static var OVER:int = (1 << 3); public static var SPECIAL_SPIKES_DOWN = 5; public static var SPECIAL_SPIKES_UP = 3; public static var SPECIAL_SPAWN_BED = 18; public static var SPECIAL_SPAWN_COUNTER = 12; public static var SPECIAL_SPAWN_SINK = 11; public static var SPECIAL_SPAWN_DESK = 20; public static var SPECIAL_VISIBILITY_NODE = 23; public static var SPECIAL_SPAWN_TREE = 22; public static var TILE_XPOS_SHIFT:int = 16; public static var ROT270:int = (1 << 5); public static var SPECIAL_SPAWN_DOOR = 6; public static var SPECIAL_GOAL = 1; public static var SPECIAL_SPAWN_DRESSER = 19; public static function hasFlag(_arg1:int, _arg2:int):Boolean{ return (((_arg1 & _arg2) == _arg2)); } public static function getType(_arg1:int):int{ return (((_arg1 >> Tile.TILE_TYPE_SHIFT) & 31)); } public static function getImageX(_arg1:int):int{ return (((_arg1 >> Tile.TILE_XPOS_SHIFT) & 0xFF)); } public static function getImageY(_arg1:int):int{ return (((_arg1 >> Tile.TILE_YPOS_SHIFT) & 0xFF)); } } }//package greenpixel.game.tilemapSection 4//TileMap (greenpixel.game.tilemap.TileMap) package greenpixel.game.tilemap { import flash.display.*; import flash.geom.*; import greenpixel.game.world.objects.*; import flash.utils.*; public class TileMap { private var special:Array; public var mapWidth:int; private var tileImage:BitmapData; public var tileSize:int; private var drawTileWidth:int; private var scrollOffsetX:int; private var scrollOffsetY:int; private var map:Array; private var drawTileHeight:int; public var mapHeight:int; private var drawTileStartY:int; private var drawTileStartX:int; private var screenHeight:int; private var animNum:int; private var screenWidth:int; public function TileMap(_arg1:int, _arg2:int){ screenWidth = _arg1; screenHeight = _arg2; drawTileStartX = 0; drawTileStartY = 0; drawTileWidth = 0; drawTileHeight = 0; } public function hasWall(_arg1:int, _arg2:int):Boolean{ return (Tile.hasFlag(map[_arg2][_arg1], Tile.WALL)); } public function nextFrame():void{ } public function centerMap(_arg1:Number, _arg2:Number):Point{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local3 = int((_arg1 / tileSize)); _local4 = int((_arg2 / tileSize)); _local5 = (_local3 - (drawTileWidth >> 1)); _local6 = (_local4 - (drawTileHeight >> 1)); _local7 = _arg1; _local8 = _arg2; drawTileStartX = 0; drawTileStartY = 0; scrollOffsetX = 0; scrollOffsetY = 0; if (((((_local5 + 1) > 0)) && ((mapWidth > drawTileWidth)))){ drawTileStartX = _local5; _local7 = ((drawTileWidth >> 1) * tileSize); if ((drawTileStartX + drawTileWidth) >= mapWidth){ drawTileStartX = (mapWidth - drawTileWidth); _local7 = (_arg1 - ((mapWidth - drawTileWidth) * tileSize)); } else { scrollOffsetX = (scrollOffsetX - (_arg1 % tileSize)); }; }; if (((((_local6 + 1) > 0)) && ((mapHeight > drawTileHeight)))){ drawTileStartY = _local6; _local8 = ((drawTileHeight >> 1) * tileSize); if ((drawTileStartY + drawTileHeight) >= mapHeight){ drawTileStartY = (mapHeight - drawTileHeight); _local8 = (_arg2 - ((mapHeight - drawTileHeight) * tileSize)); } else { scrollOffsetY = (scrollOffsetY - (_arg2 % tileSize)); }; }; return (new Point(_local7, _local8)); } public function moveSpriteRight(_arg1:Entity, _arg2:int):Boolean{ var _local3:int; var _local4:int; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = int(((((_arg1.x + _arg1.hitBox.x) + _arg1.hitBox.width) + _arg2) / tileSize)); _local4 = int(((_arg1.y + _arg1.hitBox.y) / tileSize)); _local5 = 0; _local6 = 0; _local7 = 0; _local8 = (tileSize / 2); if ((((_arg1.x + _arg1.hitBox.x) + _arg1.hitBox.width) + _arg2) > (mapWidth * tileSize)){ _arg1.x = ((mapWidth * tileSize) - (_arg1.hitBox.x + _arg1.hitBox.width)); return (false); }; _local6 = ((_arg1.y + _arg1.hitBox.y) - (_local4 * tileSize)); _local7 = (((_arg1.y + _arg1.hitBox.y) + _arg1.hitBox.height) - ((_local4 + 1) * tileSize)); if ((((((((((_local7 > 0)) && ((_local7 <= _local8)))) && (((_local4 + 1) < mapHeight)))) && (Tile.hasFlag(map[(_local4 + 1)][_local3], Tile.WALL)))) && (!(Tile.hasFlag(map[_local4][_local3], Tile.WALL))))){ _arg1.x = ((_local3 * tileSize) - (_arg1.hitBox.x + _arg1.hitBox.width)); if (!_arg1.doingAction(Entity.ACTION_DOWN)){ _local5 = Math.min(_arg2, _local7); moveSpriteUp(_arg1, _local5); }; return (false); } else { if ((((((((_local6 > (tileSize - _local8))) && (((_local4 + 1) < mapHeight)))) && (Tile.hasFlag(map[_local4][_local3], Tile.WALL)))) && (!(Tile.hasFlag(map[(_local4 + 1)][_local3], Tile.WALL))))){ _arg1.x = ((_local3 * tileSize) - (_arg1.hitBox.x + _arg1.hitBox.width)); if (!_arg1.doingAction(Entity.ACTION_UP)){ _local5 = Math.min(_arg2, (tileSize - _local6)); moveSpriteDown(_arg1, _local5); }; return (false); } else { if (((Tile.hasFlag(map[_local4][_local3], Tile.WALL)) || (((((((_local4 + 1) < mapHeight)) && ((((_arg1.y + _arg1.hitBox.y) + _arg1.hitBox.height) > ((_local4 + 1) * tileSize))))) && (Tile.hasFlag(map[(_local4 + 1)][_local3], Tile.WALL)))))){ _arg1.xSpeed = 0; _arg1.x = ((_local3 * tileSize) - (_arg1.hitBox.x + _arg1.hitBox.width)); return (false); }; }; }; _arg1.x = (_arg1.x + _arg2); return (true); } public function loadMap(_arg1:Array, _arg2:BitmapData){ var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local5 = 0; var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _arg1[_temp1]; tileImage = _arg2; _local3 = 0; while (_local3 < _local6) { _local3++; }; var _temp2 = _local5; _local5 = (_local5 + 1); mapWidth = _arg1[_temp2]; var _temp3 = _local5; _local5 = (_local5 + 1); mapHeight = _arg1[_temp3]; var _temp4 = _local5; _local5 = (_local5 + 1); tileSize = _arg1[_temp4]; trace(((((mapWidth + " ") + mapHeight) + " ") + tileSize)); drawTileWidth = (screenWidth / tileSize); drawTileHeight = (screenHeight / tileSize); map = new Array(mapHeight); special = new Array(mapHeight); _local3 = 0; while (_local3 < mapHeight) { map[_local3] = new Array(mapWidth); special[_local3] = new Array(mapWidth); _local3++; }; _local3 = 0; while (_local3 < mapHeight) { _local4 = 0; while (_local4 < mapWidth) { var _temp5 = _local5; _local5 = (_local5 + 1); special[_local3][_local4] = _arg1[_temp5]; var _temp6 = _local5; _local5 = (_local5 + 1); map[_local3][_local4] = _arg1[_temp6]; _local4++; }; _local3++; }; } public function moveSpriteLeft(_arg1:Entity, _arg2:int):Boolean{ var _local3:int; var _local4:int; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = int((((_arg1.x + _arg1.hitBox.x) - _arg2) / tileSize)); _local4 = int(((_arg1.y + _arg1.hitBox.y) / tileSize)); _local5 = 0; _local6 = 0; _local7 = 0; _local8 = (tileSize / 2); if (((_arg1.x + _arg1.hitBox.x) - _arg2) < 0){ _arg1.xSpeed = 0; _arg1.x = -(_arg1.hitBox.x); return (false); }; _local6 = ((_arg1.y + _arg1.hitBox.y) - (_local4 * tileSize)); _local7 = (((_arg1.y + _arg1.hitBox.y) + _arg1.hitBox.height) - ((_local4 + 1) * tileSize)); if ((((((((((_local7 > 0)) && ((_local7 <= _local8)))) && (((_local4 + 1) < mapHeight)))) && (Tile.hasFlag(map[(_local4 + 1)][_local3], Tile.WALL)))) && (!(Tile.hasFlag(map[_local4][_local3], Tile.WALL))))){ _arg1.x = (((_local3 + 1) * tileSize) - _arg1.hitBox.x); if (!_arg1.doingAction(Entity.ACTION_DOWN)){ _local5 = Math.min(_arg2, _local7); moveSpriteUp(_arg1, _local5); }; return (false); } else { if ((((((((_local6 > (tileSize - _local8))) && (((_local4 + 1) < mapHeight)))) && (Tile.hasFlag(map[_local4][_local3], Tile.WALL)))) && (!(Tile.hasFlag(map[(_local4 + 1)][_local3], Tile.WALL))))){ _arg1.x = (((_local3 + 1) * tileSize) - _arg1.hitBox.x); if (!_arg1.doingAction(Entity.ACTION_UP)){ _local5 = Math.min(_arg2, (tileSize - _local6)); moveSpriteDown(_arg1, _local5); }; return (false); } else { if (((Tile.hasFlag(map[_local4][_local3], Tile.WALL)) || (((((((_local4 + 1) < mapHeight)) && ((((_arg1.y + _arg1.hitBox.y) + _arg1.hitBox.height) > ((_local4 + 1) * tileSize))))) && (Tile.hasFlag(map[(_local4 + 1)][_local3], Tile.WALL)))))){ _arg1.xSpeed = 0; _arg1.x = (((_local3 + 1) * tileSize) - _arg1.hitBox.x); return (false); }; }; }; _arg1.x = (_arg1.x - _arg2); return (true); } public function moveSpriteDown(_arg1:Entity, _arg2:int):Boolean{ var _local3:int; var _local4:int; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = int(((_arg1.x + _arg1.hitBox.x) / tileSize)); _local4 = int(((((_arg1.y + _arg1.hitBox.y) + _arg1.hitBox.height) + _arg2) / tileSize)); _local5 = 0; _local6 = 0; _local7 = 0; _local8 = (tileSize / 2); if ((((_arg1.y + _arg1.hitBox.y) + _arg1.hitBox.height) + _arg2) >= (mapHeight * tileSize)){ _arg1.y = ((mapHeight * tileSize) - (_arg1.hitBox.y + _arg1.hitBox.height)); return (false); }; _local6 = ((_arg1.x + _arg1.hitBox.x) - (_local3 * tileSize)); _local7 = (((_arg1.x + _arg1.hitBox.x) + _arg1.hitBox.width) - ((_local3 + 1) * tileSize)); if ((((((((((_local7 > 0)) && ((_local7 <= _local8)))) && (((_local3 + 1) < mapWidth)))) && (Tile.hasFlag(map[_local4][(_local3 + 1)], Tile.WALL)))) && (!(Tile.hasFlag(map[_local4][_local3], Tile.WALL))))){ _arg1.y = ((_local4 * tileSize) - (_arg1.hitBox.y + _arg1.hitBox.height)); if (!_arg1.doingAction(Entity.ACTION_RIGHT)){ _local5 = Math.min(_arg2, _local7); moveSpriteLeft(_arg1, _local5); }; return (false); } else { if ((((((((_local6 > (tileSize - _local8))) && (((_local3 + 1) < mapWidth)))) && (Tile.hasFlag(map[_local4][_local3], Tile.WALL)))) && (!(Tile.hasFlag(map[_local4][(_local3 + 1)], Tile.WALL))))){ _arg1.y = ((_local4 * tileSize) - (_arg1.hitBox.y + _arg1.hitBox.height)); if (!_arg1.doingAction(Entity.ACTION_LEFT)){ _local5 = Math.min(_arg2, (tileSize - _local6)); moveSpriteRight(_arg1, _local5); }; return (false); } else { if (((Tile.hasFlag(map[_local4][_local3], Tile.WALL)) || (((((((_local3 + 1) < mapWidth)) && (((_arg1.x + _arg1.hitBox.width) > ((_local3 + 1) * tileSize))))) && (Tile.hasFlag(map[_local4][(_local3 + 1)], Tile.WALL)))))){ _arg1.ySpeed = 0; _arg1.y = ((_local4 * tileSize) - (_arg1.hitBox.y + _arg1.hitBox.height)); return (false); }; }; }; _arg1.y = (_arg1.y + _arg2); return (true); } public function getMap():Array{ return (map); } public function loadByteMap(_arg1:Array, _arg2:BitmapData){ var _local3:int; var _local4:int; var _local5:ByteArray; _local5 = new ByteArray(); tileImage = _arg2; _local3 = 0; while (_local3 < _arg1.length) { _local5.writeByte(_arg1[_local3]); _local3++; }; _local5.position = 0; animNum = _local5.readInt(); _local3 = 0; while (_local3 < animNum) { _local5.readInt(); _local5.readInt(); _local3++; }; mapWidth = _local5.readInt(); mapHeight = _local5.readInt(); tileSize = _local5.readInt(); drawTileWidth = (screenWidth / tileSize); drawTileHeight = (screenHeight / tileSize); map = new Array(mapHeight); special = new Array(mapHeight); _local3 = 0; while (_local3 < mapHeight) { map[_local3] = new Array(mapWidth); special[_local3] = new Array(mapWidth); _local3++; }; _local3 = 0; while (_local3 < mapHeight) { _local4 = 0; while (_local4 < mapWidth) { special[_local3][_local4] = _local5.readInt(); map[_local3][_local4] = _local5.readInt(); _local4++; }; _local3++; }; } public function moveSpriteUp(_arg1:Entity, _arg2:int):Boolean{ var _local3:int; var _local4:int; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = int(((_arg1.x + _arg1.hitBox.x) / tileSize)); _local4 = int((((_arg1.y + _arg1.hitBox.y) - _arg2) / tileSize)); _local5 = 0; _local6 = 0; _local7 = 0; _local8 = (tileSize / 2); if ((_arg1.y - _arg2) < 0){ _arg1.y = 0; return (false); }; _local6 = ((_arg1.x + _arg1.hitBox.x) - (_local3 * tileSize)); _local7 = (((_arg1.x + _arg1.hitBox.x) + _arg1.hitBox.width) - ((_local3 + 1) * tileSize)); if ((((((((((_local7 > 0)) && ((_local7 <= _local8)))) && (((_local3 + 1) < mapWidth)))) && (Tile.hasFlag(map[_local4][(_local3 + 1)], Tile.WALL)))) && (!(Tile.hasFlag(map[_local4][_local3], Tile.WALL))))){ _arg1.y = (((_local4 + 1) * tileSize) - _arg1.hitBox.y); if (!_arg1.doingAction(Entity.ACTION_RIGHT)){ _local5 = Math.min(_arg2, _local7); moveSpriteLeft(_arg1, _local5); }; return (false); } else { if ((((((((_local6 > (tileSize - _local8))) && (((_local3 + 1) < mapWidth)))) && (Tile.hasFlag(map[_local4][_local3], Tile.WALL)))) && (!(Tile.hasFlag(map[_local4][(_local3 + 1)], Tile.WALL))))){ _arg1.y = (((_local4 + 1) * tileSize) - _arg1.hitBox.y); if (!_arg1.doingAction(Entity.ACTION_LEFT)){ _local5 = Math.min(_arg2, (tileSize - _local6)); moveSpriteRight(_arg1, _local5); }; return (false); } else { if (((Tile.hasFlag(map[_local4][_local3], Tile.WALL)) || (((((((_local3 + 1) < mapWidth)) && ((((_arg1.x + _arg1.hitBox.x) + _arg1.hitBox.width) > ((_local3 + 1) * tileSize))))) && (Tile.hasFlag(map[_local4][(_local3 + 1)], Tile.WALL)))))){ _arg1.ySpeed = 0; _arg1.y = (((_local4 + 1) * tileSize) - _arg1.hitBox.y); return (false); }; }; }; _arg1.y = (_arg1.y - _arg2); return (true); } public function getCurrentOffset():Point{ return (new Point(((tileSize * drawTileStartX) - scrollOffsetX), ((tileSize * drawTileStartY) - scrollOffsetY))); } public function loadMap2D(_arg1:Array, _arg2:Array, _arg3:BitmapData, _arg4:int){ var _local5:int; var _local6:int; tileImage = _arg3; _local5 = 0; while (_local5 < animNum) { _local5++; }; mapWidth = _arg1[0].length; mapHeight = _arg1.length; tileSize = _arg4; drawTileWidth = (screenWidth / tileSize); drawTileHeight = (screenHeight / tileSize); map = new Array(mapHeight); special = new Array(mapHeight); _local5 = 0; while (_local5 < mapHeight) { map[_local5] = new Array(mapWidth); special[_local5] = new Array(mapWidth); _local5++; }; _local5 = 0; while (_local5 < mapHeight) { _local6 = 0; while (_local6 < mapWidth) { special[_local5][_local6] = _arg2[_local5][_local6]; map[_local5][_local6] = _arg1[_local5][_local6]; _local6++; }; _local5++; }; } public function removeWall(_arg1:int, _arg2:int):void{ map[_arg2][_arg1] = (map[_arg2][_arg1] & ~(Tile.WALL)); } public function drawToBuffer(_arg1:BitmapData){ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local2 = 0; while (_local2 <= drawTileHeight) { _local3 = 0; while (_local3 <= drawTileWidth) { if (((((_local2 + drawTileStartY) >= mapHeight)) || (((_local3 + drawTileStartX) >= mapWidth)))){ } else { _local4 = map[(_local2 + drawTileStartY)][(_local3 + drawTileStartX)]; _local5 = (Tile.getImageX(_local4) * tileSize); _local6 = (Tile.getImageY(_local4) * tileSize); _arg1.copyPixels(tileImage, new Rectangle(_local5, _local6, tileSize, tileSize), new Point(((_local3 * tileSize) + scrollOffsetX), ((_local2 * tileSize) + scrollOffsetY))); }; _local3++; }; _local2++; }; } public static function translateByteMapTo2D(_arg1:Array, _arg2:Array, _arg3:Array):void{ var _local4:int; var _local5:int; var _local6:ByteArray; var _local7:int; var _local8:int; var _local9:int; var _local10:int; _local6 = new ByteArray(); _local4 = 0; while (_local4 < _arg1.length) { _local6.writeByte(_arg1[_local4]); _local4++; }; _local6.position = 0; _local7 = _local6.readInt(); _local4 = 0; while (_local4 < _local7) { _local6.readInt(); _local6.readInt(); _local4++; }; _local8 = _local6.readInt(); _local9 = _local6.readInt(); _local10 = _local6.readInt(); _local4 = 0; while (_local4 < _local9) { _local5 = 0; while (_local5 < _local8) { _arg3[_local4][_local5] = _local6.readInt(); _arg2[_local4][_local5] = _local6.readInt(); _local5++; }; _local4++; }; } } }//package greenpixel.game.tilemapSection 5//TextArea (greenpixel.game.ui.TextArea) package greenpixel.game.ui { import flash.geom.*; import flash.text.*; public class TextArea extends TextField { private var counter:int; public var debug:Boolean;// = false public var isTextFinished:Boolean; private var maxCounter:int; private var testField:TextField; public var splitText:Array; public var textIndex:int; public var isPageFinished:Boolean; private var animType:int; public static var ANIMATED:int = 1; public static var LINE_BREAK:String = "^"; public static var STATIC:int = 0; public function TextArea(_arg1:Rectangle, _arg2:int, _arg3:uint){ debug = false; super(); x = _arg1.x; y = _arg1.y; width = _arg1.width; height = _arg1.height; selectable = false; textIndex = 0; isPageFinished = false; isTextFinished = false; wordWrap = true; animType = _arg2; textColor = _arg3; text = ""; testField = new TextField(); testField.width = _arg1.width; testField.height = _arg1.height; testField.wordWrap = true; if (debug){ background = true; backgroundColor = 0xFFFFFF; textColor = 0; }; } public function setFormat(_arg1:TextFormat):void{ defaultTextFormat = _arg1; } public function nextPage():void{ testField.text = ""; isPageFinished = false; counter = 0; } public function showPage():void{ while (!(((isPageFinished) || (isTextFinished)))) { testField.appendText(splitText[textIndex]); if (textIndex < (splitText.length - 1)){ testField.appendText(" "); }; if (testField.textHeight <= testField.height){ text = testField.text; textIndex++; if (textIndex == splitText.length){ isTextFinished = true; }; } else { if (testField.textHeight > testField.height){ isPageFinished = true; }; }; }; counter = 0; } public function nextFrame():void{ if (((isPageFinished) || (isTextFinished))){ return; }; if (counter == 0){ if (textIndex < splitText.length){ testField.appendText(splitText[textIndex]); if (textIndex < (splitText.length - 1)){ testField.appendText(" "); }; if (testField.textHeight <= testField.height){ text = testField.text; textIndex++; } else { if (testField.textHeight > testField.height){ isPageFinished = true; }; }; } else { isTextFinished = true; }; counter = maxCounter; } else { counter--; }; } public function setText(_arg1:String, _arg2:int):void{ testField.text = ""; text = ""; splitText = _arg1.split(" "); textIndex = 0; isPageFinished = false; isTextFinished = false; counter = 0; maxCounter = _arg2; if (animType == TextArea.STATIC){ showPage(); }; } } }//package greenpixel.game.uiSection 6//Character (greenpixel.game.world.objects.Character) package greenpixel.game.world.objects { public class Character extends Entity { public var health:int; public function Character(){ health = 100; } } }//package greenpixel.game.world.objectsSection 7//Entity (greenpixel.game.world.objects.Entity) package greenpixel.game.world.objects { import flash.geom.*; import greenpixel.math.*; import greenpixel.game.sprite.*; public class Entity extends Sprite2D { public var heading:Vector2D; public var isMoveable:Boolean; public var directionsMovedLastFrame:int; public var id:int; public var entityName:String; public var type:int; public var ySpeed:Number; public var speed:Number; public var direction:int; public var state:int; public var dest:Vector2D; public var xSpeed:Number; public var hasArrivedAtPathDest:Boolean; private var actions:int; public static var ACTION_UP:int = 1; public static var ACTION_DOWN:int = 4; public static var ACTION_JUMP:int = 16; public static var DIR_LEFT:int = 3; public static var STATE_MOVING:int = 1; public static var ACTION_NONE:int = 0; public static var STATE_IDLE:int = 0; public static var DIR_RIGHT:int = 1; public static var DIR_UP:int = 0; public static var ACTION_LEFT:int = 8; public static var STATE_MOVING_ON_PATH:int = 2; public static var ACTION_RIGHT:int = 2; public static var DIR_DOWN:int = 2; private static var idCounter:int = 0; public function Entity(){ name = ""; xSpeed = 0; ySpeed = 0; isAlive = false; speed = 0; direction = DIR_UP; hitBox = new Rectangle(0, 0, 0, 0); heading = new Vector2D(0, 0); dest = new Vector2D(0, 0); directionsMovedLastFrame = 0; type = 0; actions = 0; isMoveable = false; id = idCounter; idCounter++; } private function clearActions():void{ actions = ACTION_NONE; } public function setAction(_arg1:int):void{ actions = (actions | _arg1); } public function doingAction(_arg1:int):Boolean{ return (((actions & _arg1) == _arg1)); } } }//package greenpixel.game.world.objectsSection 8//GameBase (greenpixel.game.GameBase) package greenpixel.game { import flash.display.*; import greenpixel.gut.anim.*; import flash.media.*; import flash.events.*; import greenpixel.sound.*; public class GameBase extends MovieClip { private var STATE_FADE_IN:int;// = 1 private var keyPressedIDs:Array; private var MAX_KEYS:int;// = 0x0100 private var fadeLayer:Shape; private var nextLayer:GameLayer; private var FADE_INCREMENT:Number;// = 0.1 private var waitForAd:Boolean; private var currentLayer:GameLayer; private var keyDownIDs:Array; private var playGame:Boolean; private var mouseButtonDown:Boolean; private var STATE_NEXT_LAYER:int;// = 3 private var STATE_RUN:int;// = 0 private var mouseButtonClick:Boolean; private var gameStates:Array; public var screenHeight:int; private var fadeAlpha:Number; public var screenWidth:int; private var gameLayers:Array; private var STATE_FADE_OUT:int;// = 2 private var canPressKeys:Array; public function GameBase(_arg1:int, _arg2:int, _arg3:Boolean, _arg4:Array){ var _local5:int; var _local6:Shape; var _local7:String; var _local8:RegExp; STATE_RUN = 0; STATE_FADE_IN = 1; STATE_FADE_OUT = 2; STATE_NEXT_LAYER = 3; MAX_KEYS = 0x0100; FADE_INCREMENT = 0.1; super(); stage.scaleMode = StageScaleMode.NO_SCALE; stage.addEventListener(Event.ENTER_FRAME, gameLoop); stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown); stage.addEventListener(KeyboardEvent.KEY_UP, keyUp); stage.addEventListener(MouseEvent.CLICK, mouseClick); stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown); screenWidth = _arg1; screenHeight = _arg2; waitForAd = _arg3; _local6 = new Shape(); _local6.graphics.beginFill(0); _local6.graphics.drawRect(0, 0, _arg1, _arg2); _local6.graphics.endFill(); addChild(_local6); mask = _local6; fadeAlpha = 0; fadeLayer = new Shape(); addChild(fadeLayer); AnimManager.instance = new AnimManager(); SoundManager.instance = new SoundManager(); gameLayers = new Array(); gameStates = new Array(); gameStates.push(STATE_RUN); keyDownIDs = new Array(MAX_KEYS); keyPressedIDs = new Array(MAX_KEYS); canPressKeys = new Array(MAX_KEYS); _local5 = 0; while (_local5 < MAX_KEYS) { canPressKeys[_local5] = true; _local5++; }; mouseButtonDown = false; mouseButtonClick = false; playGame = true; if (_arg4 != null){ _local7 = stage.loaderInfo.url; playGame = false; _local5 = 0; while (_local5 < _arg4.length) { _local8 = new RegExp(_arg4[_local5], "i"); if (_local8.test(_local7)){ playGame = true; }; _local5++; }; if (!playGame){ stop(); stage.removeEventListener(Event.ENTER_FRAME, gameLoop); }; }; } protected function addMusic(_arg1:Sound):void{ SoundManager.instance.addMusic(_arg1); } protected function mouseClick(_arg1:MouseEvent):void{ mouseButtonDown = false; mouseButtonClick = true; } public function fadeAndPushLayer(_arg1:GameLayer):void{ if (!playGame){ return; }; fadeAlpha = 0; nextLayer = _arg1; pushState(STATE_NEXT_LAYER); pushState(STATE_FADE_OUT); } private function getGameState():int{ return (gameStates[(gameStates.length - 1)]); } public function isKeyDown(_arg1:int):Boolean{ return (keyDownIDs[_arg1]); } public function isMouseClicked():Boolean{ var _local1:Boolean; _local1 = mouseButtonClick; mouseButtonClick = false; return (_local1); } public function fadeOut():void{ fadeAlpha = 0; pushState(STATE_FADE_OUT); } protected function mouseDown(_arg1:MouseEvent):void{ mouseButtonDown = true; } protected function keyUp(_arg1:KeyboardEvent):void{ keyDownIDs[_arg1.keyCode] = false; keyPressedIDs[_arg1.keyCode] = false; canPressKeys[_arg1.keyCode] = true; } protected function addAnimBundle(_arg1:Array, _arg2:BitmapData):void{ AnimManager.instance.addBundle(_arg1, _arg2); } public function pushLayer(_arg1:GameLayer):void{ if (!playGame){ return; }; if (waitForAd){ nextLayer = _arg1; fadeAlpha = 0; pushState(STATE_NEXT_LAYER); waitForAd = false; return; }; if (currentLayer != null){ removeChild(currentLayer); }; addChildAt(_arg1, 1); clearKeys(); _arg1.init(); gameLayers.push(_arg1); currentLayer = _arg1; } private function pushState(_arg1:int):void{ gameStates.push(_arg1); } protected function addEffect(_arg1:Sound):void{ SoundManager.instance.addEffect(_arg1); } protected function keyDown(_arg1:KeyboardEvent):void{ keyDownIDs[_arg1.keyCode] = true; if (canPressKeys[_arg1.keyCode]){ keyPressedIDs[_arg1.keyCode] = true; canPressKeys[_arg1.keyCode] = false; }; } public function isKeyPressed(_arg1:int):Boolean{ var _local2:Boolean; _local2 = keyPressedIDs[_arg1]; keyPressedIDs[_arg1] = false; return (_local2); } public function fadeIn():void{ fadeAlpha = 1; pushState(STATE_FADE_IN); } private function gameLoop(_arg1:Event):void{ switch (currentFrame){ case 1: return; case 2: stop(); break; }; switch (getGameState()){ case STATE_RUN: if (currentLayer != null){ currentLayer.updateManager(); currentLayer.drawManager(); }; break; case STATE_FADE_IN: if (currentLayer != null){ currentLayer.drawManager(); }; fadeAlpha = (fadeAlpha - FADE_INCREMENT); if (fadeAlpha <= 0){ fadeAlpha = 0; drawFade(); popState(); } else { drawFade(); }; break; case STATE_FADE_OUT: if (currentLayer != null){ currentLayer.drawManager(); }; fadeAlpha = (fadeAlpha + FADE_INCREMENT); if (fadeAlpha >= 1){ fadeAlpha = 1; drawFade(); popState(); } else { drawFade(); }; break; case STATE_NEXT_LAYER: popState(); pushLayer(nextLayer); break; }; } public function isAnyKeyPressed():Boolean{ var _local1:int; var _local2:Boolean; _local2 = false; _local1 = 0; while (_local1 < MAX_KEYS) { if (keyPressedIDs[_local1]){ keyPressedIDs[_local1] = false; _local2 = true; }; _local1++; }; return (_local2); } private function popState():void{ gameStates.pop(); } public function isMouseDown():Boolean{ return (mouseButtonDown); } private function drawFade():void{ fadeLayer.graphics.clear(); fadeLayer.graphics.beginFill(0, fadeAlpha); fadeLayer.graphics.drawRect(0, 0, width, height); fadeLayer.graphics.endFill(); } public function clearKeys():void{ var _local1:*; _local1 = 0; while (_local1 < MAX_KEYS) { canPressKeys[_local1] = true; keyPressedIDs[_local1] = false; keyDownIDs[_local1] = false; _local1++; }; } } }//package greenpixel.gameSection 9//GameLayer (greenpixel.game.GameLayer) package greenpixel.game { import flash.display.*; import flash.geom.*; import greenpixel.game.tilemap.*; import greenpixel.game.sprite.*; import greenpixel.io.*; public class GameLayer extends MovieClip { private var backBuffer:BitmapData; private var textPopup:TextSprite; protected var screenHeight:int; protected var screenWidth:int; protected var layerStates:Array; protected var game:GameBase; public static var STATE_TEXT:int = 999; public static var STATE_BASE:int = 0; public function GameLayer(_arg1:GameBase){ this.game = _arg1; screenWidth = _arg1.screenWidth; screenHeight = _arg1.screenHeight; backBuffer = new BitmapData(screenWidth, screenHeight, false, 0); addChild(new Bitmap(backBuffer)); layerStates = new Array(); pushState(STATE_BASE); } public function init():void{ } protected function isKeyDown(_arg1:int):Boolean{ return (game.isKeyDown(_arg1)); } protected function isMouseClicked():Boolean{ return (game.isMouseClicked()); } protected function drawSprite(_arg1:Sprite2D):void{ drawSpriteAt(_arg1, _arg1.x, _arg1.y); } protected function fadeOut():void{ game.fadeOut(); } public function clearBackBuffer():void{ backBuffer.fillRect(new Rectangle(0, 0, backBuffer.width, backBuffer.height), 0); } protected function drawSpriteAt(_arg1:Sprite2D, _arg2:Number, _arg3:Number):void{ _arg1.drawToBuffer(backBuffer, _arg2, _arg3); _arg1.nextFrame(); } public function draw():void{ } protected function initPopup(_arg1:Rectangle, _arg2:int, _arg3:int, _arg4:Boolean):void{ textPopup = new TextSprite(_arg1, _arg2, _arg3, _arg4); } public function drawText():void{ draw(); drawSprite(textPopup); } protected function pushState(_arg1:int):void{ layerStates.push(_arg1); } public function updateText():void{ if (isKeyPressed(KeyCodes.KEY_SPACE)){ if (textPopup.isPageFinished()){ textPopup.nextPage(); } else { if (textPopup.isTextFinished()){ popState(); } else { textPopup.showPage(); }; }; }; textPopup.nextFrame(); } protected function isKeyPressed(_arg1:int):Boolean{ return (game.isKeyPressed(_arg1)); } protected function setPopupText(_arg1:String, _arg2:int){ pushState(STATE_TEXT); textPopup.setText(_arg1, _arg2); } protected function drawObject(_arg1:DisplayObject):void{ var _local2:Matrix; _local2 = new Matrix(); _local2.translate(_arg1.x, _arg1.y); backBuffer.draw(_arg1, _local2); } protected function setPopupAnim(_arg1:int, _arg2:int):void{ textPopup.setAnim(_arg1, _arg2); } protected function fadeIn():void{ game.fadeIn(); } protected function isAnyKeyPressed():Boolean{ return (game.isAnyKeyPressed()); } public function update():void{ } protected function popState():void{ if (layerStates.length == 1){ trace("Cannot pop base state from game layer"); return; }; layerStates.pop(); } public function drawManager():void{ if (getState() == STATE_TEXT){ drawText(); } else { draw(); }; } public function updateManager():void{ if (getState() == STATE_TEXT){ updateText(); } else { update(); }; } protected function getState():int{ return (layerStates[(layerStates.length - 1)]); } protected function isMouseDown():Boolean{ return (game.isMouseDown()); } protected function drawTileMap(_arg1:TileMap):void{ _arg1.drawToBuffer(backBuffer); _arg1.nextFrame(); } } }//package greenpixel.gameSection 10//Animation (greenpixel.gut.anim.Animation) package greenpixel.gut.anim { public class Animation { public var frameList:Array; public var name:String; public var type:int; public var loopType:int; public function Animation(_arg1:String):void{ this.name = _arg1; frameList = new Array(); type = 0; loopType = 0; } public function addFrame(_arg1:FrameData):void{ frameList.push(_arg1); } } }//package greenpixel.gut.animSection 11//AnimationBundle (greenpixel.gut.anim.AnimationBundle) package greenpixel.gut.anim { import flash.display.*; import flash.geom.*; public class AnimationBundle { public var anims:Array; public var name:String; public var bounds:Array; public var spriteSheet:BitmapData; public static var LOOP:int = 0; public static var ONESHOT:int = 1; public function AnimationBundle(_arg1:String){ this.name = _arg1; bounds = new Array(); anims = new Array(); } public function loadData(_arg1:Array):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:Rectangle; var _local7:Animation; var _local8:int; var _local9:int; var _local10:FrameData; _local2 = 0; var _temp1 = _local2; _local2 = (_local2 + 1); _local3 = _arg1[_temp1]; _local4 = 0; while (_local4 < _local3) { _local6 = new Rectangle(); var _temp2 = _local2; _local2 = (_local2 + 1); _local6.x = _arg1[_temp2]; var _temp3 = _local2; _local2 = (_local2 + 1); _local6.y = _arg1[_temp3]; var _temp4 = _local2; _local2 = (_local2 + 1); _local6.width = _arg1[_temp4]; var _temp5 = _local2; _local2 = (_local2 + 1); _local6.height = _arg1[_temp5]; bounds.push(_local6); _local4++; }; var _temp6 = _local2; _local2 = (_local2 + 1); _local5 = _arg1[_temp6]; _local4 = 0; while (_local4 < _local5) { _local7 = new Animation(""); var _temp7 = _local2; _local2 = (_local2 + 1); _local7.type = _arg1[_temp7]; var _temp8 = _local2; _local2 = (_local2 + 1); _local7.loopType = _arg1[_temp8]; var _temp9 = _local2; _local2 = (_local2 + 1); _local8 = _arg1[_temp9]; _local9 = 0; while (_local9 < _local8) { _local10 = new FrameData(); var _temp10 = _local2; _local2 = (_local2 + 1); _local10.numDrawFrames = _arg1[_temp10]; var _temp11 = _local2; _local2 = (_local2 + 1); _local10.frameIndex = _arg1[_temp11]; var _temp12 = _local2; _local2 = (_local2 + 1); _local10.offsetX = _arg1[_temp12]; var _temp13 = _local2; _local2 = (_local2 + 1); _local10.offsetY = _arg1[_temp13]; var _temp14 = _local2; _local2 = (_local2 + 1); _local10.frameOp = _arg1[_temp14]; var _temp15 = _local2; _local2 = (_local2 + 1); _local10.orientation = _arg1[_temp15]; _local7.addFrame(_local10); _local9++; }; anims.push(_local7); _local4++; }; } } }//package greenpixel.gut.animSection 12//AnimManager (greenpixel.gut.anim.AnimManager) package greenpixel.gut.anim { import flash.display.*; public class AnimManager { public var animBundles:Array; public static var instance:AnimManager; public function AnimManager(){ animBundles = new Array(); } public function getDrawData(_arg1:int, _arg2:int, _arg3:int):DrawData{ var _local4:DrawData; var _local5:AnimationBundle; var _local6:Array; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; _local4 = new DrawData(); _local5 = animBundles[_arg1]; _local6 = _local5.anims; _local7 = _local6[_arg2].frameList[_arg3].frameIndex; _local8 = _local6[_arg2].frameList[_arg3].offsetX; _local9 = _local6[_arg2].frameList[_arg3].offsetY; _local10 = _local6[_arg2].loopType; _local11 = _local6[_arg2].frameList.length; _local12 = _local6[_arg2].frameList[_arg3].numDrawFrames; _local13 = _local6[_arg2].frameList[_arg3].frameOp; _local4.init(_local5.spriteSheet, _local5.bounds[_local7], _local8, _local9, _local10, _local11, _local12, _local13); return (_local4); } public function addBundle(_arg1:Array, _arg2:BitmapData):void{ var _local3:AnimationBundle; _local3 = new AnimationBundle(""); _local3.spriteSheet = _arg2; _local3.loadData(_arg1); animBundles.push(_local3); } } }//package greenpixel.gut.animSection 13//DrawData (greenpixel.gut.anim.DrawData) package greenpixel.gut.anim { import flash.display.*; import flash.geom.*; public class DrawData { public var img:BitmapData; public var imageOffsetX:int; public var imageOffsetY:int; public var frameOp:int; public var numDrawFrames:int; public var bounds:Rectangle; public var totalFrames:int; public var loopType:int; public function init(_arg1:BitmapData, _arg2:Rectangle, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int){ img = _arg1; bounds = _arg2; imageOffsetX = _arg3; imageOffsetY = _arg4; loopType = _arg5; totalFrames = _arg6; numDrawFrames = _arg7; frameOp = _arg8; } } }//package greenpixel.gut.animSection 14//FrameData (greenpixel.gut.anim.FrameData) package greenpixel.gut.anim { public class FrameData { public var frameIndex:int; public var offsetY:int; public var frameOp:int; public var numDrawFrames:int; public var offsetX:int; public var orientation:int; public static var OP_ATTACK:int = 1; public static var OR_CENTER_X:int = 1; public static var OR_CENTER_Y:int = 2; public static var OR_CENTER_BOTH:int = 3; public static var OR_NONE:int = 0; public static var OP_NONE:int = 0; public function FrameData(){ numDrawFrames = 0; frameIndex = 0; offsetX = 0; offsetY = 0; frameOp = OP_NONE; orientation = OR_NONE; } } }//package greenpixel.gut.animSection 15//KeyCodes (greenpixel.io.KeyCodes) package greenpixel.io { public class KeyCodes { public static var KEY_LEFT:int = 37; public static var KEY_UP:int = 38; public static var KEY_1:int = 49; public static var KEY_3:int = 51; public static var KEY_5:int = 53; public static var KEY_6:int = 54; public static var KEY_0:int = 48; public static var KEY_8:int = 56; public static var KEY_2:int = 50; public static var KEY_DOWN:int = 40; public static var KEY_4:int = 52; public static var KEY_7:int = 55; public static var KEY_ENTER:int = 13; public static var KEY_9:int = 57; public static var KEY_A:int = 65; public static var KEY_B:int = 66; public static var KEY_C:int = 67; public static var KEY_D:int = 68; public static var KEY_E:int = 69; public static var KEY_F:int = 70; public static var KEY_G:int = 71; public static var KEY_H:int = 72; public static var KEY_I:int = 73; public static var KEY_J:int = 74; public static var KEY_K:int = 75; public static var KEY_L:int = 76; public static var KEY_M:int = 77; public static var KEY_N:int = 78; public static var KEY_O:int = 79; public static var KEY_P:int = 80; public static var KEY_Q:int = 81; public static var KEY_R:int = 82; public static var KEY_S:int = 83; public static var KEY_T:int = 84; public static var KEY_U:int = 85; public static var KEY_V:int = 86; public static var KEY_W:int = 87; public static var KEY_X:int = 88; public static var KEY_Y:int = 89; public static var KEY_Z:int = 90; public static var KEY_SHIFT:int = 16; public static var KEY_CTRL:int = 17; public static var KEY_ESC:int = 27; public static var KEY_SPACE:int = 32; public static var KEY_RIGHT:int = 39; } }//package greenpixel.ioSection 16//Utils (greenpixel.math.Utils) package greenpixel.math { import flash.geom.*; public class Utils { public static function lineInBox(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:int, _arg6:int, _arg7:int, _arg8:int):Boolean{ var _local9:int; var _local10:int; var _local11:Array; var _local12:Array; var _local13:Vector2D; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local11 = new Array(); _local12 = new Array(); _local13 = new Vector2D((_arg3 - _arg1), (_arg4 - _arg2)); _local13.normalize(); _local13.y = (_local13.y * -1); _local11.push(_local13); _local11.push(new Vector2D(1, 0)); _local11.push(new Vector2D(0, 1)); _local12.push(new Vector2D(_arg5, _arg7)); _local12.push(new Vector2D((_arg5 + _arg6), (_arg7 + _arg8))); _local9 = 0; while (_local9 < _local11.length) { _local16 = int.MAX_VALUE; _local17 = -(int.MAX_VALUE); _local18 = Utils.dotProduct(_local11[_local9], new Vector2D(_arg1, _arg2)); _local19 = Utils.dotProduct(_local11[_local9], new Vector2D(_arg3, _arg4)); if (_local18 < _local19){ _local14 = _local18; _local15 = _local19; } else { _local14 = _local19; _local15 = _local18; }; _local10 = 0; while (_local10 < _local12.length) { _local20 = Utils.dotProduct(_local11[_local9], _local12[_local10]); if (_local20 < _local16){ _local16 = _local20; }; if (_local20 > _local17){ _local17 = _local20; }; _local10++; }; if ((((_local14 > _local17)) || ((_local15 < _local16)))){ return (false); }; _local9++; }; return (true); } public static function AABBCollision(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):Vector2D{ var _local9:Vector2D; var _local10:Vector2D; var _local11:Vector2D; var _local12:Vector2D; var _local13:Number; var _local14:Number; _local9 = new Vector2D(); _local10 = new Vector2D((_arg1 + _arg2), (_arg3 + _arg4)); _local11 = new Vector2D((_arg5 + _arg6), (_arg7 + _arg8)); _local12 = new Vector2D((_local11.x - _local10.x), (_local11.y - _local10.y)); _local13 = ((_arg2 + _arg6) - Math.abs(_local12.x)); _local14 = ((_arg4 + _arg8) - Math.abs(_local12.y)); if (_local13 > 0){ if (_local14 > 0){ if (_local13 < _local14){ if (_local12.x < 0){ return (new Vector2D(_local13, 0)); }; return (new Vector2D(-(_local13), 0)); } else { if (_local12.y < 0){ return (new Vector2D(0, _local14)); }; return (new Vector2D(0, -(_local14))); }; }; }; return (null); } public static function boxInRect(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Rectangle){ return (boxInBox(_arg1, _arg2, _arg3, _arg4, _arg5.x, _arg5.width, _arg5.y, _arg5.height)); } public static function dotProduct(_arg1:Vector2D, _arg2:Vector2D):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function pointInBox(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int):Boolean{ return ((((((((_arg1 >= _arg3)) && ((_arg1 <= (_arg3 + _arg4))))) && ((_arg2 >= _arg5)))) && ((_arg2 <= (_arg5 + _arg6))))); } public static function boxInBox(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):Boolean{ return (!((((((((_arg1 >= (_arg5 + _arg6))) || ((_arg5 >= (_arg1 + _arg2))))) || ((_arg3 >= (_arg7 + _arg8))))) || ((_arg7 >= (_arg3 + _arg4)))))); } public static function rectInRect(_arg1:Rectangle, _arg2:Rectangle):Boolean{ return (boxInBox(_arg1.x, _arg1.width, _arg1.y, _arg1.height, _arg2.x, _arg2.width, _arg2.y, _arg2.height)); } } }//package greenpixel.mathSection 17//Vector2D (greenpixel.math.Vector2D) package greenpixel.math { public class Vector2D { public var x:Number; public var y:Number; public function Vector2D(_arg1:Number=0, _arg2:Number=0){ x = _arg1; y = _arg2; } public function length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function SquaredDistance():Number{ return (((x * x) + (y * y))); } public function normalize():void{ var _local1:Number; _local1 = Math.sqrt(SquaredDistance()); if (_local1 == 0){ x = 0; y = 0; } else { x = (x / _local1); y = (y / _local1); }; } } }//package greenpixel.mathSection 18//SoundManager (greenpixel.sound.SoundManager) package greenpixel.sound { import flash.media.*; import flash.events.*; public class SoundManager { private var currentMusicIndex:int; public var state:int; private var effectsData:Array; private var loopMusic:Boolean; public var isMute:Boolean; private var music:SoundChannel; private var INIT_VOLUME:Number;// = 1 private var effectsInUse:Array; private var musicData:Array; private var currentVolume:Number; private var pausePosition:Number; public static var STATE_STOP:int = 0; public static var instance:SoundManager; public static var STATE_PAUSE:int = 2; public static var STATE_PLAY:int = 1; public function SoundManager(){ INIT_VOLUME = 1; super(); musicData = new Array(); effectsData = new Array(); effectsInUse = new Array(); currentVolume = INIT_VOLUME; loopMusic = false; isMute = false; currentMusicIndex = -1; pausePosition = -1; state = STATE_STOP; } public function stopMusic():void{ if (music == null){ trace("Cannot stop, no music playing"); return; }; currentMusicIndex = -1; music.stop(); state = STATE_STOP; } public function addMusic(_arg1:Sound):void{ musicData.push(_arg1); } public function toggleMute():void{ if (isMute){ SoundMixer.soundTransform = new SoundTransform(currentVolume); } else { SoundMixer.soundTransform = new SoundTransform(0); }; isMute = !(isMute); } public function pauseMusic():void{ if ((((music == null)) || (!((state == STATE_PLAY))))){ trace("Cannot pause, no music playing"); return; }; pausePosition = music.position; music.stop(); state = STATE_PAUSE; } public function addEffect(_arg1:Sound):void{ effectsData.push(_arg1); effectsInUse.push(false); } public function setVolume(_arg1:Number):void{ currentVolume = _arg1; SoundMixer.soundTransform = new SoundTransform(currentVolume); } public function playMusic(_arg1:int, _arg2:Boolean):void{ if (state == STATE_PLAY){ if (_arg1 == currentMusicIndex){ trace(("Already playing music: " + _arg1)); return; }; }; loopMusic = _arg2; if (music != null){ music.stop(); }; music = musicData[_arg1].play(0, 0); music.soundTransform = new SoundTransform(currentVolume); music.addEventListener(Event.SOUND_COMPLETE, musicFinished); currentMusicIndex = _arg1; state = STATE_PLAY; } public function playEffect(_arg1:int){ var _local2:SoundChannel; if (effectsInUse[_arg1]){ return; }; _local2 = effectsData[_arg1].play(0, 0); _local2.soundTransform = new SoundTransform(currentVolume); effectsInUse[_arg1] = true; } public function clearEffectsInUse():void{ var _local1:int; _local1 = 0; while (_local1 < effectsInUse.length) { effectsInUse[_local1] = false; _local1++; }; } private function musicFinished(_arg1:Event):void{ if (loopMusic){ music = musicData[currentMusicIndex].play(0, 0); music.soundTransform = new SoundTransform(currentVolume); music.addEventListener(Event.SOUND_COMPLETE, musicFinished); } else { stopMusic(); }; } public function resumeMusic():void{ if (state != STATE_PAUSE){ trace("Music is not paused"); return; }; music = musicData[currentMusicIndex].play(pausePosition, 0); music.soundTransform = new SoundTransform(currentVolume); music.addEventListener(Event.SOUND_COMPLETE, musicFinished); state = STATE_PLAY; } } }//package greenpixel.soundSection 19//AnimData (AnimData) package { public class AnimData { public static var TILES_GROUND_DRIVEWAY:int = 9; public static var SPRITE_MADSCIENTIST_WALK_GUN_RIGHT:int = 15; public static var SPRITE_NPC01_WALK_GUN_LEFT:int = 14; public static var SPRITE_NPC04_WALK_LEFT:int = 6; public static var SPRITE_NPC04_IDLE_RIGHT:int = 3; public static var SPRITE_MADSCIENTIST_WALK_GUN_FRONT:int = 12; public static var SPRITE_NPC01_MELEE_RIGHT:int = 19; public static var SPRITE_NPCGOODSCIENTIST_MELEE_BACK:int = 17; public static var SPRITE_NPC04_IDLE_FRONT:int = 0; public static var TILES_GROUND_DIRT01:int = 3; public static var SPRITE_NPC01_MELEE_FRONT:int = 16; public static var SPRITE_NPC06_WALK_GUN_BACK:int = 13; public static var ITEMS_METAL_IDLE:int = 2; public static var SPRITE_NPCSOLDIER_DATA = [36, 0, 0, 32, 32, 0, 32, 32, 32, 0, 64, 32, 32, 0, 96, 32, 32, 0, 128, 32, 32, 0, 160, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 64, 32, 32, 32, 96, 32, 32, 32, 128, 32, 32, 32, 160, 32, 32, 64, 0, 32, 32, 64, 32, 32, 32, 64, 64, 32, 32, 64, 96, 32, 32, 64, 128, 32, 32, 64, 160, 32, 32, 96, 0, 32, 32, 96, 32, 32, 32, 96, 64, 32, 32, 96, 96, 32, 32, 96, 128, 32, 32, 96, 160, 32, 32, 164, 32, 40, 32, 164, 96, 40, 48, 164, 160, 40, 54, 228, 20, 50, 44, 146, 0x0100, 42, 32, 146, 308, 42, 44, 146, 362, 42, 54, 228, 86, 50, 42, 228, 160, 50, 32, 202, 244, 50, 44, 202, 310, 50, 42, 202, 384, 50, 32, 20, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 6, 0, 0, 0, 0, 0, 0, 1, 1, 20, 0, 0, 0, 0, 0, 0, 1, 1, 14, 0, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 6, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 6, 8, 0, 0, 0, 0, 0, 0, 4, 6, 20, 0, 0, 0, 0, 6, 18, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 6, 19, 0, 0, 0, 0, 0, 0, 4, 6, 14, 0, 0, 0, 0, 6, 12, 0, 0, 0, 0, 6, 14, 0, 0, 0, 0, 6, 13, 0, 0, 0, 0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 1, 9, 0, 0, 0, 0, 0, 0, 1, 1, 23, 0, 0, 0, 0, 0, 0, 1, 1, 17, 0, 0, 0, 0, 0, 0, 4, 6, 3, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 6, 3, 0, 0, 0, 0, 6, 5, 0, 0, 0, 0, 0, 0, 4, 6, 9, 0, 0, 0, 0, 6, 10, 0, 0, 0, 0, 6, 9, 0, 0, 0, 0, 6, 11, 0, 0, 0, 0, 0, 0, 4, 6, 23, 0, 0, 0, 0, 6, 21, 0, 0, 0, 0, 6, 23, 0, 0, 0, 0, 6, 22, 0, 0, 0, 0, 0, 0, 4, 6, 17, 0, 0, 0, 0, 6, 15, 0, 0, 0, 0, 6, 17, 0, 0, 0, 0, 6, 16, 0, 0, 0, 0, 0, 1, 4, 2, 24, 4, 0, 0, 0, 2, 25, 4, 0, 0, 0, 6, 26, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 4, 2, 28, -14, 0, 0, 0, 2, 29, -14, -12, 0, 0, 6, 30, -14, -22, 0, 0, 1, 6, 0, 0, 0, 0, 0, 1, 4, 2, 33, -22, -12, 0, 0, 2, 34, -22, -10, 0, 0, 6, 35, -22, 0, 0, 0, 1, 20, 0, 0, 0, 0, 0, 1, 4, 2, 27, 4, -12, 0, 0, 2, 31, 4, -10, 0, 0, 6, 32, 4, 0, 0, 0, 1, 14, 0, 0, 0, 0]; public static var UI_SHORTCUT_ICONS_BAT:int = 0; public static var SPRITE_NPCGOODSCIENTIST_WALK_LEFT:int = 6; public static var TILES_OBJECTS_CAR07_IDLE:int = 9; public static var TILES_GROUND_DIRT02:int = 4; public static var UI_SHORTCUT_ICONS_STUNGUN_READYFLASH:int = 3; public static var SPRITE_MADSCIENTIST_IDLE_GUN_BACK:int = 9; public static var SPRITE_NPC02_IDLE_BACK:int = 1; public static var SPRITE_NPC05_IDLE_GUN_BACK:int = 9; public static var SPRITE_NPC03_DATA = [37, 0, 0, 32, 32, 0, 32, 32, 32, 0, 64, 32, 32, 0, 96, 32, 32, 0, 128, 32, 32, 0, 160, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 64, 32, 32, 32, 96, 32, 32, 32, 128, 32, 32, 32, 160, 32, 32, 64, 0, 32, 32, 64, 32, 32, 32, 64, 64, 32, 32, 64, 96, 32, 32, 64, 128, 32, 32, 64, 160, 32, 32, 96, 0, 32, 32, 96, 32, 32, 32, 96, 64, 32, 32, 96, 96, 32, 32, 96, 128, 32, 32, 96, 160, 32, 32, 164, 32, 40, 32, 164, 96, 40, 48, 164, 160, 40, 54, 228, 20, 50, 44, 146, 0x0100, 42, 32, 146, 308, 42, 44, 146, 362, 42, 54, 228, 86, 50, 42, 228, 160, 50, 32, 202, 244, 50, 44, 202, 310, 50, 42, 202, 384, 50, 32, 0, 192, 32, 32, 21, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 6, 0, 0, 0, 0, 0, 0, 1, 1, 20, 0, 0, 0, 0, 0, 0, 1, 1, 14, 0, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 6, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 6, 8, 0, 0, 0, 0, 0, 0, 4, 6, 20, 0, 0, 0, 0, 6, 18, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 6, 19, 0, 0, 0, 0, 0, 0, 4, 6, 14, 0, 0, 0, 0, 6, 12, 0, 0, 0, 0, 6, 14, 0, 0, 0, 0, 6, 13, 0, 0, 0, 0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 1, 9, 0, 0, 0, 0, 0, 0, 1, 1, 23, 0, 0, 0, 0, 0, 0, 1, 1, 17, 0, 0, 0, 0, 0, 0, 4, 6, 3, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 6, 3, 0, 0, 0, 0, 6, 5, 0, 0, 0, 0, 0, 0, 4, 6, 9, 0, 0, 0, 0, 6, 10, 0, 0, 0, 0, 6, 9, 0, 0, 0, 0, 6, 11, 0, 0, 0, 0, 0, 0, 4, 6, 23, 0, 0, 0, 0, 6, 21, 0, 0, 0, 0, 6, 23, 0, 0, 0, 0, 6, 22, 0, 0, 0, 0, 0, 0, 4, 6, 17, 0, 0, 0, 0, 6, 15, 0, 0, 0, 0, 6, 17, 0, 0, 0, 0, 6, 16, 0, 0, 0, 0, 0, 1, 4, 1, 24, 4, 0, 0, 0, 1, 25, 4, 0, 0, 0, 4, 26, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 4, 1, 28, -14, 0, 0, 0, 1, 29, -14, -12, 0, 0, 4, 30, -14, -22, 1, 0, 1, 6, 0, 0, 0, 0, 0, 1, 4, 1, 33, -22, -12, 0, 0, 1, 34, -22, -10, 0, 0, 4, 35, -22, 0, 1, 0, 1, 20, 0, 0, 0, 0, 0, 1, 4, 1, 27, 4, -12, 0, 0, 1, 31, 4, -10, 0, 0, 4, 32, 4, 0, 1, 0, 1, 14, 0, 0, 0, 0, 0, 0, 1, 1, 36, 0, 0, 0, 0]; public static var ITEMS_WOOD_IDLE:int = 0; public static var SPRITE_MADSCIENTIST_IDLE_GUN_RIGHT:int = 11; public static var SPRITE_MADSCIENTIST_MELEE_BACK:int = 17; public static var SPRITE_MADSCIENTIST_IDLE_GUN_FRONT:int = 8; public static var TILES_OBJECTS_CAR01_IDLE:int = 3; public static var SPRITE_NPCSOLDIER_IDLE_BACK:int = 1; public static var SPRITE_NPC02_MELEE_BACK:int = 17; public static var ITEMS_ISOTOPE_IDLE:int = 1; public static var SPRITE_NPC05_IDLE_BACK:int = 1; public static var SPRITE_NPC01_DEAD_FRONT:int = 20; public static var TILES_OBJECTS_KITCHEN_NORTH_FRIDGE:int = 13; public static var SPRITE_NPC03_WALK_GUN_LEFT:int = 14; public static var TILES_OBJECTS_ROCK_IDLE:int = 1; public static var SPRITE_NPC05_MELEE_BACK:int = 17; public static var TILES_OBJECTS_KITCHEN_DINING:int = 14; public static var SPRITE_NPC01_IDLE_LEFT:int = 2; public static var SPRITE_NPC06_MELEE_RIGHT:int = 19; public static var SPRITE_NPC04_DEAD_FRONT:int = 20; public static var SPRITE_NPC01_WALK_BACK:int = 5; public static var SPRITE_NPC02_IDLE_GUN_LEFT:int = 10; public static var SPRITE_NPC06_MELEE_FRONT:int = 16; public static var SPRITE_NPCSOLDIER_IDLE_GUN_BACK:int = 9; public static var SPRITE_NPCGOODSCIENTIST_IDLE_GUN_LEFT:int = 10; public static var SPRITE_MADSCIENTIST_DATA = [36, 0, 0, 32, 32, 0, 32, 32, 32, 0, 64, 32, 32, 0, 96, 32, 32, 0, 128, 32, 32, 0, 160, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 64, 32, 32, 32, 96, 32, 32, 32, 128, 32, 32, 32, 160, 32, 32, 64, 0, 32, 32, 64, 32, 32, 32, 64, 64, 32, 32, 64, 96, 32, 32, 64, 128, 32, 32, 64, 160, 32, 32, 96, 0, 32, 32, 96, 32, 32, 32, 96, 64, 32, 32, 96, 96, 32, 32, 96, 128, 32, 32, 96, 160, 32, 32, 164, 32, 40, 32, 164, 96, 40, 48, 164, 160, 40, 54, 228, 20, 50, 44, 146, 0x0100, 42, 32, 146, 308, 42, 44, 146, 362, 42, 54, 228, 86, 50, 42, 228, 160, 50, 32, 202, 244, 50, 44, 202, 310, 50, 42, 202, 384, 50, 32, 20, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 6, 0, 0, 0, 0, 0, 0, 1, 1, 20, 0, 0, 0, 0, 0, 0, 1, 1, 14, 0, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 6, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 6, 8, 0, 0, 0, 0, 0, 0, 4, 6, 20, 0, 0, 0, 0, 6, 18, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 6, 19, 0, 0, 0, 0, 0, 0, 4, 6, 14, 0, 0, 0, 0, 6, 12, 0, 0, 0, 0, 6, 14, 0, 0, 0, 0, 6, 13, 0, 0, 0, 0, 0, 1, 1, 15, 3, 0, 0, 1, 0, 0, 1, 1, 15, 9, 0, 0, 1, 0, 0, 1, 1, 15, 23, 0, 0, 1, 0, 0, 1, 1, 15, 17, 0, 0, 1, 0, 0, 0, 4, 6, 3, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 6, 3, 0, 0, 0, 0, 6, 5, 0, 0, 0, 0, 0, 0, 4, 6, 9, 0, 0, 0, 0, 6, 10, 0, 0, 0, 0, 6, 9, 0, 0, 0, 0, 6, 11, 0, 0, 0, 0, 0, 0, 4, 6, 23, 0, 0, 0, 0, 6, 21, 0, 0, 0, 0, 6, 23, 0, 0, 0, 0, 6, 22, 0, 0, 0, 0, 0, 0, 4, 6, 17, 0, 0, 0, 0, 6, 15, 0, 0, 0, 0, 6, 17, 0, 0, 0, 0, 6, 16, 0, 0, 0, 0, 0, 1, 4, 1, 24, 4, 0, 0, 0, 1, 25, 4, 0, 0, 0, 4, 26, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 4, 1, 28, -14, 0, 0, 0, 1, 29, -14, -12, 0, 0, 4, 30, -14, -22, 1, 0, 1, 6, 0, 0, 0, 0, 0, 1, 4, 1, 33, -22, -12, 0, 0, 1, 34, -22, -10, 0, 0, 4, 35, -22, 0, 1, 0, 1, 20, 0, 0, 0, 0, 0, 1, 4, 1, 27, 4, -12, 0, 0, 1, 31, 4, -10, 0, 0, 4, 32, 4, 0, 1, 0, 1, 14, 0, 0, 0, 0]; public static var ITEMS_CIRCUIT_IDLE:int = 3; public static var SPRITE_NPCGOODSCIENTIST_WALK_GUN_RIGHT:int = 15; public static var SPRITE_NPC03_WALK_RIGHT:int = 7; public static var ANIM_SET_8_DATA = [1, 0, 0, 94, 104, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0]; public static var SPRITE_NPC04_DATA = [37, 0, 0, 32, 32, 0, 32, 32, 32, 0, 64, 32, 32, 0, 96, 32, 32, 0, 128, 32, 32, 0, 160, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 64, 32, 32, 32, 96, 32, 32, 32, 128, 32, 32, 32, 160, 32, 32, 64, 0, 32, 32, 64, 32, 32, 32, 64, 64, 32, 32, 64, 96, 32, 32, 64, 128, 32, 32, 64, 160, 32, 32, 96, 0, 32, 32, 96, 32, 32, 32, 96, 64, 32, 32, 96, 96, 32, 32, 96, 128, 32, 32, 96, 160, 32, 32, 164, 32, 40, 32, 164, 96, 40, 48, 164, 160, 40, 54, 228, 20, 50, 44, 146, 0x0100, 42, 32, 146, 308, 42, 44, 146, 362, 42, 54, 228, 86, 50, 42, 228, 160, 50, 32, 202, 244, 50, 44, 202, 310, 50, 42, 202, 384, 50, 32, 0, 192, 32, 32, 21, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 6, 0, 0, 0, 0, 0, 0, 1, 1, 20, 0, 0, 0, 0, 0, 0, 1, 1, 14, 0, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 6, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 6, 8, 0, 0, 0, 0, 0, 0, 4, 6, 20, 0, 0, 0, 0, 6, 18, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 6, 19, 0, 0, 0, 0, 0, 0, 4, 6, 14, 0, 0, 0, 0, 6, 12, 0, 0, 0, 0, 6, 14, 0, 0, 0, 0, 6, 13, 0, 0, 0, 0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 1, 9, 0, 0, 0, 0, 0, 0, 1, 1, 23, 0, 0, 0, 0, 0, 0, 1, 1, 17, 0, 0, 0, 0, 0, 0, 4, 6, 3, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 6, 3, 0, 0, 0, 0, 6, 5, 0, 0, 0, 0, 0, 0, 4, 6, 9, 0, 0, 0, 0, 6, 10, 0, 0, 0, 0, 6, 9, 0, 0, 0, 0, 6, 11, 0, 0, 0, 0, 0, 0, 4, 6, 23, 0, 0, 0, 0, 6, 21, 0, 0, 0, 0, 6, 23, 0, 0, 0, 0, 6, 22, 0, 0, 0, 0, 0, 0, 4, 6, 17, 0, 0, 0, 0, 6, 15, 0, 0, 0, 0, 6, 17, 0, 0, 0, 0, 6, 16, 0, 0, 0, 0, 0, 1, 4, 1, 24, 4, 0, 0, 0, 1, 25, 4, 0, 0, 0, 4, 26, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 4, 1, 28, -14, 0, 0, 0, 1, 29, -14, -12, 0, 0, 4, 30, -14, -22, 1, 0, 1, 6, 0, 0, 0, 0, 0, 1, 4, 1, 33, -22, -12, 0, 0, 1, 34, -22, -10, 0, 0, 4, 35, -22, 0, 1, 0, 1, 20, 0, 0, 0, 0, 0, 1, 4, 1, 27, 4, -12, 0, 0, 1, 31, 4, -10, 0, 0, 4, 32, 4, 0, 1, 0, 1, 14, 0, 0, 0, 0, 0, 0, 1, 1, 36, 0, 0, 0, 0]; public static var SPRITE_NPCGOODSCIENTIST_WALK_GUN_FRONT:int = 12; public static var UI_SHORTCUTS:int = 17; public static var SPRITE_NPC01_WALK_GUN_BACK:int = 13; public static var UI_SHORTCUTS_DATA = [1, 0, 0, 640, 480, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0]; public static var SPRITE_NPC03_WALK_FRONT:int = 4; public static var ITEMS_DATA = [16, 0, 0, 24, 32, 24, 0, 24, 32, 48, 0, 24, 32, 72, 0, 24, 32, 96, 0, 24, 32, 120, 0, 24, 32, 144, 0, 24, 32, 168, 0, 24, 32, 0, 32, 24, 32, 24, 32, 24, 32, 48, 32, 24, 32, 72, 32, 24, 32, 96, 32, 24, 32, 120, 32, 24, 32, 144, 32, 24, 32, 168, 32, 24, 32, 8, 0, 0, 2, 15, 0, 0, 0, 0, 0, 15, 8, 0, 0, 0, 0, 0, 0, 2, 15, 1, 0, 0, 0, 0, 15, 9, 0, 0, 0, 0, 0, 0, 2, 15, 2, 0, 0, 0, 0, 15, 10, 0, 0, 0, 0, 0, 0, 2, 15, 3, 0, 0, 0, 0, 15, 11, 0, 0, 0, 0, 0, 0, 2, 15, 4, 0, 0, 0, 0, 15, 12, 0, 0, 0, 0, 0, 0, 2, 15, 5, 0, 0, 0, 0, 15, 13, 0, 0, 0, 0, 0, 0, 2, 15, 6, 0, 0, 0, 0, 15, 14, 0, 0, 0, 0, 0, 0, 2, 15, 7, 0, 0, 0, 0, 15, 15, 0, 0, 0, 0]; public static var SPRITE_NPC04_IDLE_LEFT:int = 2; public static var SPRITE_NPC03_MELEE_LEFT:int = 18; public static var SPRITE_NPC04_WALK_BACK:int = 5; public static var TILES_OBJECTS_DEN_TABLE:int = 17; public static var SPRITE_NPC06_WALK_RIGHT:int = 7; public static var SPRITE_NPCGOODSCIENTIST_IDLE_RIGHT:int = 3; public static var SPRITE_MADSCIENTIST_WALK_GUN_LEFT:int = 14; public static var SPRITE_MADSCIENTIST:int = 2; public static var SPRITE_NPC06_MELEE_LEFT:int = 18; public static var SPRITE_NPC06_WALK_FRONT:int = 4; public static var SPRITE_NPCGOODSCIENTIST_IDLE_LEFT:int = 2; public static var SPRITE_NPC05_WALK_GUN_LEFT:int = 14; public static var TILES_OBJECTS_DEN_SOUTH_COUCH:int = 16; public static var SPRITE_NPCGOODSCIENTIST_WALK_BACK:int = 5; public static var SPRITE_NPC03_MELEE_RIGHT:int = 19; public static var SPRITE_NPC04_IDLE_GUN_LEFT:int = 10; public static var TILES_GROUND_ROAD:int = 8; public static var SPRITE_NPCGOODSCIENTIST_IDLE_FRONT:int = 0; public static var SPRITE_NPCGOODSCIENTIST_IDLE_GUN_RIGHT:int = 11; public static var UI_DEATHSCREEN_DEATHSCREEN:int = 0; public static var SPRITE_NPC03_MELEE_FRONT:int = 16; public static var SPRITE_MADSCIENTIST_IDLE_RIGHT:int = 3; public static var TILES_OBJECTS_CAR02_IDLE:int = 4; public static var TILES_OBJECTS_BEDROOM_NORTH_DRAWER:int = 20; public static var SPRITE_NPCGOODSCIENTIST_IDLE_GUN_FRONT:int = 8; public static var SPRITE_NPC05_WALK_GUN_RIGHT:int = 15; public static var SPRITE_NPCSOLDIER:int = 10; public static var UI_SHORTCUT_ICONS_DATA = [5, 0, 0, 32, 32, 32, 0, 32, 32, 64, 0, 32, 32, 96, 0, 32, 32, 128, 0, 32, 32, 4, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0, 1, 4, 1, 3, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0]; public static var BUILDING_HOUSES:int = 12; public static var SPRITE_MADSCIENTIST_IDLE_FRONT:int = 0; public static var SPRITE_NPC02_IDLE_RIGHT:int = 3; public static var SPRITE_NPC03_WALK_LEFT:int = 6; public static var SPRITE_NPC05_WALK_GUN_FRONT:int = 12; public static var UI_INVENTORY:int = 16; public static var SPRITE_NPC02_IDLE_FRONT:int = 0; public static var SPRITE_NPC05_IDLE_RIGHT:int = 3; public static var TILES_OBJECTS_BEDROOM_NORTH_DRESSER:int = 19; public static var SPRITE_NPC03_WALK_GUN_BACK:int = 13; public static var BLUE_JELLYFISH:int = 0; public static var SPRITE_NPC05_IDLE_FRONT:int = 0; public static var SPRITE_NPC01_IDLE_BACK:int = 1; public static var SPRITE_NPC03_WALK_GUN_RIGHT:int = 15; public static var SPRITE_NPC05_DATA = [37, 0, 0, 32, 32, 0, 32, 32, 32, 0, 64, 32, 32, 0, 96, 32, 32, 0, 128, 32, 32, 0, 160, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 64, 32, 32, 32, 96, 32, 32, 32, 128, 32, 32, 32, 160, 32, 32, 64, 0, 32, 32, 64, 32, 32, 32, 64, 64, 32, 32, 64, 96, 32, 32, 64, 128, 32, 32, 64, 160, 32, 32, 96, 0, 32, 32, 96, 32, 32, 32, 96, 64, 32, 32, 96, 96, 32, 32, 96, 128, 32, 32, 96, 160, 32, 32, 164, 32, 40, 32, 164, 96, 40, 48, 164, 160, 40, 54, 228, 20, 50, 44, 146, 0x0100, 42, 32, 146, 308, 42, 44, 146, 362, 42, 54, 228, 86, 50, 42, 228, 160, 50, 32, 202, 244, 50, 44, 202, 310, 50, 42, 202, 384, 50, 32, 0, 192, 32, 32, 21, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 6, 0, 0, 0, 0, 0, 0, 1, 1, 20, 0, 0, 0, 0, 0, 0, 1, 1, 14, 0, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 6, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 6, 8, 0, 0, 0, 0, 0, 0, 4, 6, 20, 0, 0, 0, 0, 6, 18, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 6, 19, 0, 0, 0, 0, 0, 0, 4, 6, 14, 0, 0, 0, 0, 6, 12, 0, 0, 0, 0, 6, 14, 0, 0, 0, 0, 6, 13, 0, 0, 0, 0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 1, 9, 0, 0, 0, 0, 0, 0, 1, 1, 23, 0, 0, 0, 0, 0, 0, 1, 1, 17, 0, 0, 0, 0, 0, 0, 4, 6, 3, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 6, 3, 0, 0, 0, 0, 6, 5, 0, 0, 0, 0, 0, 0, 4, 6, 9, 0, 0, 0, 0, 6, 10, 0, 0, 0, 0, 6, 9, 0, 0, 0, 0, 6, 11, 0, 0, 0, 0, 0, 0, 4, 6, 23, 0, 0, 0, 0, 6, 21, 0, 0, 0, 0, 6, 23, 0, 0, 0, 0, 6, 22, 0, 0, 0, 0, 0, 0, 4, 6, 17, 0, 0, 0, 0, 6, 15, 0, 0, 0, 0, 6, 17, 0, 0, 0, 0, 6, 16, 0, 0, 0, 0, 0, 1, 4, 1, 24, 4, 0, 0, 0, 1, 25, 4, 0, 0, 0, 4, 26, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 4, 1, 28, -14, 0, 0, 0, 1, 29, -14, -12, 0, 0, 4, 30, -14, -22, 1, 0, 1, 6, 0, 0, 0, 0, 0, 1, 4, 1, 33, -22, -12, 0, 0, 1, 34, -22, -10, 0, 0, 4, 35, -22, 0, 1, 0, 1, 20, 0, 0, 0, 0, 0, 1, 4, 1, 27, 4, -12, 0, 0, 1, 31, 4, -10, 0, 0, 4, 32, 4, 0, 1, 0, 1, 14, 0, 0, 0, 0, 0, 0, 1, 1, 36, 0, 0, 0, 0]; public static var SPRITE_NPCSOLDIER_WALK_GUN_LEFT:int = 14; public static var SPRITE_NPC02_IDLE_GUN_BACK:int = 9; public static var SPRITE_NPC05_IDLE_GUN_RIGHT:int = 11; public static var TILES_GROUND_DATA = [12, 0, 0, 32, 32, 0, 32, 32, 32, 0, 64, 32, 32, 0, 96, 32, 32, 0, 128, 32, 32, 0, 160, 32, 32, 0, 192, 32, 32, 0, 224, 32, 32, 0, 0x0100, 32, 32, 0, 288, 32, 32, 32, 288, 32, 32, 32, 0, 128, 288, 10, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 1, 4, 0, 0, 0, 0, 0, 0, 1, 1, 8, 0, 0, 0, 0, 0, 0, 1, 1, 5, 0, 0, 0, 0, 0, 0, 1, 1, 6, 0, 0, 0, 0, 0, 0, 1, 1, 7, 0, 0, 0, 0, 0, 0, 1, 1, 10, 0, 0, 0, 0, 0, 0, 1, 1, 11, 0, 0, 0, 0]; public static var SPRITE_NPC03_WALK_GUN_FRONT:int = 12; public static var SPRITE_NPCSOLDIER_WALK_RIGHT:int = 7; public static var SPRITE_NPC06_WALK_LEFT:int = 6; public static var SPRITE_NPCGOODSCIENTIST_MELEE_RIGHT:int = 19; public static var SPRITE_NPC05_IDLE_GUN_FRONT:int = 8; public static var SPRITE_NPCGOODSCIENTIST_MELEE_FRONT:int = 16; public static var SPRITE_NPCSOLDIER_MELEE_LEFT:int = 18; public static var SPRITE_NPCSOLDIER_WALK_FRONT:int = 4; public static var SPRITE_NPC06_IDLE_GUN_LEFT:int = 10; public static var TILES_OBJECTS_CAR03_IDLE:int = 5; public static var ITEMS_COIL_IDLE:int = 4; public static var SPRITE_NPCGOODSCIENTIST_IDLE_GUN_BACK:int = 9; public static var UI_SHORTCUTS_SHORTCUTS:int = 0; public static var UI_LIFE_NOLIFE:int = 1; public static var BLUE_JELLYFISH_DATA = [2, 0, 0, 32, 32, 32, 0, 32, 32, 1, 0, 0, 2, 3, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0]; public static var SPRITE_NPC01_WALK_GUN_RIGHT:int = 15; public static var SPRITE_MADSCIENTIST_WALK_LEFT:int = 6; public static var SPRITE_NPC04_IDLE_BACK:int = 1; public static var SPRITE_NPC03_MELEE_BACK:int = 17; public static var SPRITE_NPC01_WALK_GUN_FRONT:int = 12; public static var UI_LIFE:int = 18; public static var SPRITE_NPC03_IDLE_GUN_FRONT:int = 8; public static var SPRITE_NPC03_IDLE_GUN_RIGHT:int = 11; public static var UI_INVENTORY_DATA = [1, 0, 0, 640, 480, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0]; public static var MESSAGE_WINDOW_SMALL_WINDOW:int = 0; public static var BLUE_JELLYFISH_IDLE:int = 0; public static var SPRITE_NPC02_DEAD_FRONT:int = 20; public static var SPRITE_MADSCIENTIST_WALK_GUN_BACK:int = 13; public static var SPRITE_NPCGOODSCIENTIST_IDLE_BACK:int = 1; public static var SPRITE_NPC05_WALK_GUN_BACK:int = 13; public static var SPRITE_NPC06_MELEE_BACK:int = 17; public static var SPRITE_NPCGOODSCIENTIST:int = 11; public static var SPRITE_NPC04_IDLE_GUN_BACK:int = 9; public static var SPRITE_NPC05_DEAD_FRONT:int = 20; public static var TILES_GROUND_PATH:int = 6; public static var SPRITE_NPC01_IDLE_GUN_RIGHT:int = 11; public static var BUILDING_HOUSES_DATA = [7, 0, 64, 224, 320, 0x0100, 0, 224, 384, 0x0200, 128, 224, 0x0100, 0x0300, 64, 224, 320, 0x0400, 64, 224, 320, 0x0500, 64, 224, 320, 0x0600, 128, 224, 0x0100, 7, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 1, 4, 0, 0, 0, 0, 0, 0, 1, 1, 5, 0, 0, 0, 0, 0, 0, 1, 1, 6, 0, 0, 0, 0]; public static var SPRITE_NPC01_IDLE_GUN_FRONT:int = 8; public static var TILES_OBJECTS:int = 14; public static var SPRITE_NPC06_DATA = [37, 0, 0, 32, 32, 0, 32, 32, 32, 0, 64, 32, 32, 0, 96, 32, 32, 0, 128, 32, 32, 0, 160, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 64, 32, 32, 32, 96, 32, 32, 32, 128, 32, 32, 32, 160, 32, 32, 64, 0, 32, 32, 64, 32, 32, 32, 64, 64, 32, 32, 64, 96, 32, 32, 64, 128, 32, 32, 64, 160, 32, 32, 96, 0, 32, 32, 96, 32, 32, 32, 96, 64, 32, 32, 96, 96, 32, 32, 96, 128, 32, 32, 96, 160, 32, 32, 164, 32, 40, 32, 164, 96, 40, 48, 164, 160, 40, 54, 228, 20, 50, 44, 146, 0x0100, 42, 32, 146, 308, 42, 44, 146, 362, 42, 54, 228, 86, 50, 42, 228, 160, 50, 32, 202, 244, 50, 44, 202, 310, 50, 42, 202, 384, 50, 32, 0, 192, 32, 32, 21, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 6, 0, 0, 0, 0, 0, 0, 1, 1, 20, 0, 0, 0, 0, 0, 0, 1, 1, 14, 0, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 6, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 6, 8, 0, 0, 0, 0, 0, 0, 4, 6, 20, 0, 0, 0, 0, 6, 18, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 6, 19, 0, 0, 0, 0, 0, 0, 4, 6, 14, 0, 0, 0, 0, 6, 12, 0, 0, 0, 0, 6, 14, 0, 0, 0, 0, 6, 13, 0, 0, 0, 0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 1, 9, 0, 0, 0, 0, 0, 0, 1, 1, 23, 0, 0, 0, 0, 0, 0, 1, 1, 17, 0, 0, 0, 0, 0, 0, 4, 6, 3, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 6, 3, 0, 0, 0, 0, 6, 5, 0, 0, 0, 0, 0, 0, 4, 6, 9, 0, 0, 0, 0, 6, 10, 0, 0, 0, 0, 6, 9, 0, 0, 0, 0, 6, 11, 0, 0, 0, 0, 0, 0, 4, 6, 23, 0, 0, 0, 0, 6, 21, 0, 0, 0, 0, 6, 23, 0, 0, 0, 0, 6, 22, 0, 0, 0, 0, 0, 0, 4, 6, 17, 0, 0, 0, 0, 6, 15, 0, 0, 0, 0, 6, 17, 0, 0, 0, 0, 6, 16, 0, 0, 0, 0, 0, 1, 4, 1, 24, 4, 0, 0, 0, 1, 25, 4, 0, 0, 0, 4, 26, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 4, 1, 28, -14, 0, 0, 0, 1, 29, -14, -12, 0, 0, 4, 30, -14, -22, 0, 0, 1, 6, 0, 0, 0, 0, 0, 1, 4, 1, 33, -22, -12, 0, 0, 1, 34, -22, -10, 0, 0, 4, 35, -22, 0, 0, 0, 1, 20, 0, 0, 0, 0, 0, 1, 4, 1, 27, 4, -12, 0, 0, 1, 31, 4, -10, 0, 0, 4, 32, 4, 0, 0, 0, 1, 14, 0, 0, 0, 0, 0, 0, 1, 1, 36, 0, 0, 0, 0]; public static var SPRITE_NPC01_WALK_RIGHT:int = 7; public static var SPRITE_NPC05_MELEE_RIGHT:int = 19; public static var SPRITE_NPC03_IDLE_LEFT:int = 2; public static var SPRITE_NPC01_MELEE_LEFT:int = 18; public static var SPRITE_NPC05_MELEE_FRONT:int = 16; public static var SPRITE_NPC03_WALK_BACK:int = 5; public static var SPRITE_NPC01_WALK_FRONT:int = 4; public static var ANIM_SET_8_ANIM_0:int = 0; public static var SPRITE_NPC04_WALK_RIGHT:int = 7; public static var TILES_OBJECTS_CAR04_IDLE:int = 6; public static var MESSAGE_WINDOW_DATA = [1, 0, 0, 510, 134, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0]; public static var SPRITE_NPC02_WALK_GUN_LEFT:int = 14; public static var SPRITE_NPC04_WALK_FRONT:int = 4; public static var TILES_OBJECTS_DEN_NORTH_TV:int = 15; public static var SPRITE_NPC04_MELEE_LEFT:int = 18; public static var SPRITE_NPCSOLDIER_MELEE_RIGHT:int = 19; public static var SPRITE_NPCSOLDIER_WALK_GUN_BACK:int = 13; public static var SPRITE_NPC01_IDLE_GUN_LEFT:int = 10; public static var SPRITE_NPC06_IDLE_LEFT:int = 2; public static var SPRITE_NPCSOLDIER_MELEE_FRONT:int = 16; public static var SPRITE_NPC06_WALK_BACK:int = 5; public static var SPRITE_NPCGOODSCIENTIST_WALK_GUN_LEFT:int = 14; public static var TILES_OBJECTS_BROKEN3X1:int = 26; public static var TILES_GROUND_SIDEWALK:int = 2; public static var SPRITE_NPC06_IDLE_GUN_BACK:int = 9; public static var SPRITE_NPCSOLDIER_MELEE_BACK:int = 17; public static var SPRITE_NPC02_WALK_LEFT:int = 6; public static var SPRITE_NPC01:int = 3; public static var SPRITE_NPC02:int = 4; public static var SPRITE_NPC03:int = 5; public static var SPRITE_NPC04:int = 6; public static var SPRITE_NPC05:int = 7; public static var SPRITE_NPC06:int = 9; public static var UI_DEATHSCREEN:int = 20; public static var TILES_OBJECTS_BROKEN3X3:int = 27; public static var ITEMS_STEAK_IDLE:int = 7; public static var SPRITE_NPC02_MELEE_RIGHT:int = 19; public static var SPRITE_MADSCIENTIST_IDLE_LEFT:int = 2; public static var SPRITE_MADSCIENTIST_WALK_BACK:int = 5; public static var UI_LIFE_LIFE:int = 0; public static var SPRITE_NPC03_IDLE_RIGHT:int = 3; public static var SPRITE_NPCSOLDIER_WALK_GUN_RIGHT:int = 15; public static var TILES_OBJECTS_DATA = [33, 0, 32, 32, 32, 0, 64, 32, 32, 0, 96, 32, 32, 32, 96, 32, 32, 64, 96, 32, 32, 96, 96, 32, 64, 32, 0, 96, 96, 0, 128, 96, 32, 128, 96, 64, 64, 192, 128, 32, 32, 192, 96, 96, 32, 288, 96, 32, 64, 320, 96, 64, 64, 384, 96, 64, 32, 448, 96, 32, 32, 480, 96, 32, 32, 0x0200, 96, 32, 32, 544, 96, 32, 32, 448, 128, 32, 32, 128, 0, 64, 96, 192, 0, 64, 96, 0x0100, 0, 64, 96, 320, 0, 64, 96, 384, 0, 64, 96, 448, 0, 64, 96, 0x0200, 0, 64, 96, 480, 128, 32, 32, 384, 128, 64, 32, 0, 160, 96, 96, 96, 160, 32, 64, 128, 160, 64, 64, 96, 224, 96, 32, 192, 160, 64, 96, 29, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 6, 0, 0, 0, 0, 0, 0, 1, 1, 19, 0, 0, 0, 0, 0, 0, 1, 1, 20, 0, 0, 0, 0, 0, 0, 1, 1, 21, 0, 0, 0, 0, 0, 0, 1, 1, 22, 0, 0, 0, 0, 0, 0, 1, 1, 23, 0, 0, 0, 0, 0, 0, 1, 1, 24, 0, 0, 0, 0, 0, 0, 1, 1, 25, 0, 0, 0, 0, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 1, 4, 0, 0, 0, 0, 0, 0, 1, 1, 5, 0, 0, 0, 0, 0, 0, 1, 1, 7, 0, 0, 0, 0, 0, 0, 1, 1, 8, 0, 0, 0, 0, 0, 0, 1, 1, 10, 0, 0, 0, 0, 0, 0, 1, 1, 9, 0, 0, 0, 0, 0, 0, 1, 1, 11, 0, 0, 0, 0, 0, 0, 1, 1, 12, 0, 0, 0, 0, 0, 0, 1, 1, 13, 0, 0, 0, 0, 0, 1, 5, 1, 14, 0, 0, 0, 0, 1, 15, 0, 0, 0, 0, 1, 16, 0, 0, 0, 0, 1, 17, 0, 0, 0, 0, 1, 26, 0, 0, 0, 0, 0, 0, 1, 1, 18, 0, 0, 0, 0, 0, 0, 1, 1, 27, 0, 0, 0, 0, 0, 0, 1, 1, 29, 0, 0, 0, 0, 0, 0, 1, 1, 30, 0, 0, 0, 0, 0, 0, 1, 1, 31, 0, 0, 0, 0, 0, 0, 1, 1, 28, 0, 0, 0, 0, 0, 0, 1, 1, 32, 0, 0, 0, 0]; public static var TILES_OBJECTS_KITCHEN_NORTH_COUNTER:int = 12; public static var TILES_OBJECTS_BROKEN2X2:int = 25; public static var SPRITE_NPC03_IDLE_FRONT:int = 0; public static var SPRITE_NPCSOLDIER_WALK_LEFT:int = 6; public static var TILES_GROUND_FLOWERS:int = 7; public static var SPRITE_NPCSOLDIER_WALK_GUN_FRONT:int = 12; public static var SPRITE_NPC02_MELEE_FRONT:int = 16; public static var TILES_OBJECTS_BROKEN2X3:int = 28; public static var SPRITE_NPC06_IDLE_RIGHT:int = 3; public static var SPRITE_NPC04_WALK_GUN_LEFT:int = 14; public static var TILES_OBJECTS_BROKEN2X1:int = 23; public static var SPRITE_NPC05_WALK_LEFT:int = 6; public static var UI_SHORTCUT_ICONS:int = 19; public static var SPRITE_NPC06_IDLE_FRONT:int = 0; public static var SPRITE_NPC03_IDLE_GUN_LEFT:int = 10; public static var TILES_OBJECTS_CAR05_IDLE:int = 7; public static var BUILDING_HOUSES_HOUSE01:int = 0; public static var SPRITE_NPC01_DATA = [37, 0, 0, 32, 32, 0, 32, 32, 32, 0, 64, 32, 32, 0, 96, 32, 32, 0, 128, 32, 32, 0, 160, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 64, 32, 32, 32, 96, 32, 32, 32, 128, 32, 32, 32, 160, 32, 32, 64, 0, 32, 32, 64, 32, 32, 32, 64, 64, 32, 32, 64, 96, 32, 32, 64, 128, 32, 32, 64, 160, 32, 32, 96, 0, 32, 32, 96, 32, 32, 32, 96, 64, 32, 32, 96, 96, 32, 32, 96, 128, 32, 32, 96, 160, 32, 32, 164, 32, 40, 32, 164, 96, 40, 48, 164, 160, 40, 54, 228, 20, 50, 44, 146, 0x0100, 42, 32, 146, 308, 42, 44, 146, 362, 42, 54, 228, 86, 50, 42, 228, 160, 50, 32, 202, 244, 50, 44, 202, 310, 50, 42, 202, 384, 50, 32, 0, 192, 32, 32, 21, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 6, 0, 0, 0, 0, 0, 0, 1, 1, 20, 0, 0, 0, 0, 0, 0, 1, 1, 14, 0, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 6, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 6, 8, 0, 0, 0, 0, 0, 0, 4, 6, 20, 0, 0, 0, 0, 6, 18, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 6, 19, 0, 0, 0, 0, 0, 0, 4, 6, 14, 0, 0, 0, 0, 6, 12, 0, 0, 0, 0, 6, 14, 0, 0, 0, 0, 6, 13, 0, 0, 0, 0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 1, 9, 0, 0, 0, 0, 0, 0, 1, 1, 23, 0, 0, 0, 0, 0, 0, 1, 1, 17, 0, 0, 0, 0, 0, 0, 4, 6, 3, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 6, 3, 0, 0, 0, 0, 6, 5, 0, 0, 0, 0, 0, 0, 4, 6, 9, 0, 0, 0, 0, 6, 10, 0, 0, 0, 0, 6, 9, 0, 0, 0, 0, 6, 11, 0, 0, 0, 0, 0, 0, 4, 6, 23, 0, 0, 0, 0, 6, 21, 0, 0, 0, 0, 6, 23, 0, 0, 0, 0, 6, 22, 0, 0, 0, 0, 0, 0, 4, 6, 17, 0, 0, 0, 0, 6, 15, 0, 0, 0, 0, 6, 17, 0, 0, 0, 0, 6, 16, 0, 0, 0, 0, 0, 1, 4, 1, 24, 4, 0, 0, 0, 1, 25, 4, 0, 0, 0, 4, 26, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 4, 1, 28, -14, 0, 0, 0, 1, 29, -14, -12, 0, 0, 4, 30, -14, -22, 1, 0, 1, 6, 0, 0, 0, 0, 0, 1, 4, 1, 33, -22, -12, 0, 0, 1, 34, -22, -10, 0, 0, 4, 35, -22, 0, 1, 0, 1, 20, 0, 0, 0, 0, 0, 1, 4, 1, 27, 4, -12, 0, 0, 1, 31, 4, -10, 0, 0, 4, 32, 4, 0, 1, 0, 1, 14, 0, 0, 0, 0, 0, 0, 1, 1, 36, 0, 0, 0, 0]; public static var BUILDING_HOUSES_HOUSE03:int = 2; public static var SPRITE_NPCSOLDIER_IDLE_GUN_FRONT:int = 8; public static var SPRITE_NPC03_IDLE_BACK:int = 1; public static var SPRITE_NPCSOLDIER_IDLE_GUN_RIGHT:int = 11; public static var BUILDING_HOUSES_HOUSE07:int = 6; public static var BUILDING_HOUSES_HOUSE02:int = 1; public static var SPRITE_NPC01_MELEE_BACK:int = 17; public static var BUILDING_HOUSES_HOUSE05:int = 4; public static var TILES_GROUND_TALL_GRASS:int = 1; public static var TILES_OBJECTS_BROKEN1X2:int = 24; public static var UI_DEATHSCREEN_DATA = [1, 0, 0, 640, 480, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0]; public static var SPRITE_NPCGOODSCIENTIST_DATA = [36, 0, 0, 32, 32, 0, 32, 32, 32, 0, 64, 32, 32, 0, 96, 32, 32, 0, 128, 32, 32, 0, 160, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 64, 32, 32, 32, 96, 32, 32, 32, 128, 32, 32, 32, 160, 32, 32, 64, 0, 32, 32, 64, 32, 32, 32, 64, 64, 32, 32, 64, 96, 32, 32, 64, 128, 32, 32, 64, 160, 32, 32, 96, 0, 32, 32, 96, 32, 32, 32, 96, 64, 32, 32, 96, 96, 32, 32, 96, 128, 32, 32, 96, 160, 32, 32, 164, 32, 40, 32, 164, 96, 40, 48, 164, 160, 40, 54, 228, 20, 50, 44, 146, 0x0100, 42, 32, 146, 308, 42, 44, 146, 362, 42, 54, 228, 86, 50, 42, 228, 160, 50, 32, 202, 244, 50, 44, 202, 310, 50, 42, 202, 384, 50, 32, 20, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 6, 0, 0, 0, 0, 0, 0, 1, 1, 20, 0, 0, 0, 0, 0, 0, 1, 1, 14, 0, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 6, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 6, 8, 0, 0, 0, 0, 0, 0, 4, 6, 20, 0, 0, 0, 0, 6, 18, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 6, 19, 0, 0, 0, 0, 0, 0, 4, 6, 14, 0, 0, 0, 0, 6, 12, 0, 0, 0, 0, 6, 14, 0, 0, 0, 0, 6, 13, 0, 0, 0, 0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 1, 9, 0, 0, 0, 0, 0, 0, 1, 1, 23, 0, 0, 0, 0, 0, 0, 1, 1, 17, 0, 0, 0, 0, 0, 0, 4, 6, 3, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 6, 3, 0, 0, 0, 0, 6, 5, 0, 0, 0, 0, 0, 0, 4, 6, 9, 0, 0, 0, 0, 6, 10, 0, 0, 0, 0, 6, 9, 0, 0, 0, 0, 6, 11, 0, 0, 0, 0, 0, 0, 4, 6, 23, 0, 0, 0, 0, 6, 21, 0, 0, 0, 0, 6, 23, 0, 0, 0, 0, 6, 22, 0, 0, 0, 0, 0, 0, 4, 6, 17, 0, 0, 0, 0, 6, 15, 0, 0, 0, 0, 6, 17, 0, 0, 0, 0, 6, 16, 0, 0, 0, 0, 0, 1, 4, 2, 24, 4, 0, 0, 0, 2, 25, 4, 0, 0, 0, 6, 26, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 4, 2, 28, -14, 0, 0, 0, 2, 29, -14, -12, 0, 0, 6, 30, -14, -22, 0, 0, 1, 6, 0, 0, 0, 0, 0, 1, 4, 2, 33, -22, -12, 0, 0, 2, 34, -22, -10, 0, 0, 6, 35, -22, 0, 0, 0, 1, 20, 0, 0, 0, 0, 0, 1, 4, 2, 27, 4, -12, 0, 0, 2, 31, 4, -10, 0, 0, 6, 32, 4, 0, 0, 0, 1, 14, 0, 0, 0, 0]; public static var SPRITE_NPC06_WALK_GUN_RIGHT:int = 15; public static var BUILDING_HOUSES_HOUSE06:int = 5; public static var TILES_OBJECTS_BREAKING:int = 21; public static var UI_LIFE_DATA = [2, 0, 0, 32, 32, 32, 0, 32, 32, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0]; public static var BUILDING_HOUSES_HOUSE04:int = 3; public static var SPRITE_NPC02_WALK_GUN_BACK:int = 13; public static var TILES_OBJECTS_BROKEN1X1:int = 22; public static var SPRITE_NPC04_MELEE_BACK:int = 17; public static var TILES_GROUND_PATCH_GRASS:int = 5; public static var SPRITE_NPCGOODSCIENTIST_WALK_RIGHT:int = 7; public static var SPRITE_NPC06_WALK_GUN_FRONT:int = 12; public static var SPRITE_NPC01_IDLE_GUN_BACK:int = 9; public static var SPRITE_NPCGOODSCIENTIST_MELEE_LEFT:int = 18; public static var SPRITE_NPC03_DEAD_FRONT:int = 20; public static var MESSAGE_WINDOW:int = 1; public static var SPRITE_NPCGOODSCIENTIST_WALK_FRONT:int = 4; public static var SPRITE_NPC06_IDLE_BACK:int = 1; public static var SPRITE_NPC06_WALK_GUN_LEFT:int = 14; public static var SPRITE_MADSCIENTIST_IDLE_GUN_LEFT:int = 10; public static var SPRITE_NPCSOLDIER_IDLE_RIGHT:int = 3; public static var SPRITE_NPCGOODSCIENTIST_WALK_GUN_BACK:int = 13; public static var SPRITE_NPC04_WALK_GUN_RIGHT:int = 15; public static var SPRITE_NPC02_IDLE_LEFT:int = 2; public static var SPRITE_NPC05_IDLE_GUN_LEFT:int = 10; public static var SPRITE_NPC06_DEAD_FRONT:int = 20; public static var SPRITE_NPCSOLDIER_IDLE_FRONT:int = 0; public static var SPRITE_MADSCIENTIST_WALK_RIGHT:int = 7; public static var SPRITE_NPC06_IDLE_GUN_RIGHT:int = 11; public static var UI_SHORTCUT_ICONS_STUNGUN_COOLING:int = 2; public static var SPRITE_NPC02_WALK_BACK:int = 5; public static var SPRITE_NPC04_WALK_GUN_FRONT:int = 12; public static var SPRITE_MADSCIENTIST_MELEE_LEFT:int = 18; public static var SPRITE_NPC06_IDLE_GUN_FRONT:int = 8; public static var SPRITE_MADSCIENTIST_IDLE_BACK:int = 1; public static var SPRITE_MADSCIENTIST_WALK_FRONT:int = 4; public static var TILES_OBJECTS_CAR06_IDLE:int = 8; public static var TILES_GROUND_GRASS:int = 0; public static var SPRITE_NPC02_WALK_RIGHT:int = 7; public static var SPRITE_NPC02_MELEE_LEFT:int = 18; public static var SPRITE_NPC02_WALK_FRONT:int = 4; public static var TILES_OBJECTS_KITCHEN_NORTH_STOVE:int = 10; public static var TILES_OBJECTS_KITCHEN_NORTH_SINK:int = 11; public static var SPRITE_NPCSOLDIER_IDLE_LEFT:int = 2; public static var SPRITE_MADSCIENTIST_MELEE_RIGHT:int = 19; public static var SPRITE_NPC05_WALK_RIGHT:int = 7; public static var SPRITE_NPC02_WALK_GUN_RIGHT:int = 15; public static var SPRITE_NPC05_IDLE_LEFT:int = 2; public static var ITEMS:int = 15; public static var TILES_GROUND:int = 13; public static var SPRITE_NPC04_MELEE_RIGHT:int = 19; public static var SPRITE_NPC05_MELEE_LEFT:int = 18; public static var SPRITE_NPC02_DATA = [37, 0, 0, 32, 32, 0, 32, 32, 32, 0, 64, 32, 32, 0, 96, 32, 32, 0, 128, 32, 32, 0, 160, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 64, 32, 32, 32, 96, 32, 32, 32, 128, 32, 32, 32, 160, 32, 32, 64, 0, 32, 32, 64, 32, 32, 32, 64, 64, 32, 32, 64, 96, 32, 32, 64, 128, 32, 32, 64, 160, 32, 32, 96, 0, 32, 32, 96, 32, 32, 32, 96, 64, 32, 32, 96, 96, 32, 32, 96, 128, 32, 32, 96, 160, 32, 32, 164, 32, 40, 32, 164, 96, 40, 48, 164, 160, 40, 54, 228, 20, 50, 44, 146, 0x0100, 42, 32, 146, 308, 42, 44, 146, 362, 42, 54, 228, 86, 50, 42, 228, 160, 50, 32, 202, 244, 50, 44, 202, 310, 50, 42, 202, 384, 50, 32, 0, 192, 32, 32, 21, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 6, 0, 0, 0, 0, 0, 0, 1, 1, 20, 0, 0, 0, 0, 0, 0, 1, 1, 14, 0, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 6, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 6, 8, 0, 0, 0, 0, 0, 0, 4, 6, 20, 0, 0, 0, 0, 6, 18, 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 6, 19, 0, 0, 0, 0, 0, 0, 4, 6, 14, 0, 0, 0, 0, 6, 12, 0, 0, 0, 0, 6, 14, 0, 0, 0, 0, 6, 13, 0, 0, 0, 0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 1, 1, 9, 0, 0, 0, 0, 0, 0, 1, 1, 23, 0, 0, 0, 0, 0, 0, 1, 1, 17, 0, 0, 0, 0, 0, 0, 4, 6, 3, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 6, 3, 0, 0, 0, 0, 6, 5, 0, 0, 0, 0, 0, 0, 4, 6, 9, 0, 0, 0, 0, 6, 10, 0, 0, 0, 0, 6, 9, 0, 0, 0, 0, 6, 11, 0, 0, 0, 0, 0, 0, 4, 6, 23, 0, 0, 0, 0, 6, 21, 0, 0, 0, 0, 6, 23, 0, 0, 0, 0, 6, 22, 0, 0, 0, 0, 0, 0, 4, 6, 17, 0, 0, 0, 0, 6, 15, 0, 0, 0, 0, 6, 17, 0, 0, 0, 0, 6, 16, 0, 0, 0, 0, 0, 1, 4, 1, 24, 4, 0, 0, 0, 1, 25, 4, 0, 0, 0, 4, 26, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 4, 1, 28, -14, 0, 0, 0, 1, 29, -14, -12, 0, 0, 4, 30, -14, -22, 1, 0, 1, 6, 0, 0, 0, 0, 0, 1, 4, 2, 33, -22, -12, 0, 0, 2, 34, -22, -10, 0, 0, 6, 35, -22, 0, 1, 0, 1, 20, 0, 0, 0, 0, 0, 1, 4, 2, 27, 4, -12, 0, 0, 2, 31, 4, -10, 0, 0, 6, 32, 4, 0, 1, 0, 1, 14, 0, 0, 0, 0, 0, 0, 1, 1, 36, 0, 0, 0, 0]; public static var SPRITE_MADSCIENTIST_MELEE_FRONT:int = 16; public static var SPRITE_NPC02_WALK_GUN_FRONT:int = 12; public static var SPRITE_NPC04_IDLE_GUN_RIGHT:int = 11; public static var SPRITE_NPC04_MELEE_FRONT:int = 16; public static var SPRITE_NPC04_IDLE_GUN_FRONT:int = 8; public static var SPRITE_NPC05_WALK_FRONT:int = 4; public static var SPRITE_NPC04_WALK_GUN_BACK:int = 13; public static var ITEMS_APPLE_IDLE:int = 6; public static var SPRITE_NPC05_WALK_BACK:int = 5; public static var UI_SHORTCUT_ICONS_STUNGUN:int = 1; public static var SPRITE_NPC03_IDLE_GUN_BACK:int = 9; public static var TILES_OBJECTS_BEDROOM_BED:int = 18; public static var SPRITE_NPC01_WALK_LEFT:int = 6; public static var ANIM_SET_8:int = 8; public static var SPRITE_NPCSOLDIER_IDLE_GUN_LEFT:int = 10; public static var UI_INVENTORY_INVENTORY:int = 0; public static var SPRITE_NPCSOLDIER_WALK_BACK:int = 5; public static var TILES_OBJECTS_BUSH_IDLE:int = 0; public static var SPRITE_NPC01_IDLE_RIGHT:int = 3; public static var TILES_OBJECTS_TREE_IDLE:int = 2; public static var SPRITE_NPC01_IDLE_FRONT:int = 0; public static var SPRITE_NPC02_IDLE_GUN_RIGHT:int = 11; public static var SPRITE_NPC02_IDLE_GUN_FRONT:int = 8; public static var ITEMS_DUCTTAPE_IDLE:int = 5; } }//packageSection 20//ArmorGamesClip (ArmorGamesClip) package { import flash.display.*; public dynamic class ArmorGamesClip extends MovieClip { public function ArmorGamesClip(){ addFrameScript(0, frame1, 224, frame225); } function frame1(){ } function frame225(){ } } }//packageSection 21//BinaryHeap (BinaryHeap) package { public class BinaryHeap { private var heapSize:int; private var nodes:Array; public function BinaryHeap(_arg1:int){ nodes = new Array(_arg1); heapSize = 0; } public function add(_arg1:Node){ var _local2:int; var _local3:Node; var _local4:Node; var _local5:int; var _local6:int; var _local7:Node; nodes[heapSize] = _arg1; _local5 = heapSize; _local4 = nodes[_local5]; if ((_local5 > 0)){ _local6 = ((_local5 - 1) / 2); _local3 = nodes[_local6]; while (_local4.value < _local3.value) { _local7 = new Node(0); _local7.copy(_local3); nodes[_local6].copy(_local4); nodes[_local5].copy(_local7); _local5 = _local6; _local4 = nodes[_local5]; _local6 = ((_local5 - 1) / 2); if (_local6 < 0){ break; }; _local3 = nodes[_local6]; }; }; heapSize++; } public function getTopNode():Node{ var _local1:int; var _local2:Node; var _local3:Node; var _local4:int; var _local5:Node; var _local6:Node; var _local7:Node; _local1 = 0; _local2 = nodes[_local1]; nodes[_local1] = nodes[(heapSize - 1)]; heapSize--; if (heapSize > 1){ while (true) { _local4 = -1; _local3 = nodes[_local1]; if (((_local1 << 1) + 1) < heapSize){ _local5 = nodes[((_local1 << 1) + 1)]; if (_local5.value < _local3.value){ _local4 = ((_local1 << 1) + 1); }; if (((_local1 << 1) + 2) < heapSize){ _local6 = nodes[((_local1 << 1) + 2)]; if ((((_local6.value < _local3.value)) && ((_local6.value < _local5.value)))){ _local4 = ((_local1 << 1) + 2); }; }; }; if (_local4 >= 0){ _local7 = new Node(0); _local7.copy(nodes[_local4]); nodes[_local4].copy(_local3); nodes[_local1].copy(_local7); _local1 = _local4; } else { break; }; }; }; return (_local2); } public function replaceNode(_arg1:Node){ var _local2:Node; var _local3:Node; var _local4:int; var _local5:int; var _local6:int; var _local7:Node; var _local8:int; var _local9:Node; _local4 = 0; _local5 = 0; _local6 = 0; while (_local6 < heapSize) { _local7 = nodes[_local6]; if (_local7.id == _arg1.id){ _local5 = _local6; break; }; _local6++; }; nodes[_local5].copy(_arg1); _local2 = nodes[_local5]; _local4 = _local5; if ((_local4 > 0)){ _local8 = ((_local4 - 1) / 2); _local3 = nodes[_local8]; while (_local2.value < _local3.value) { _local9 = new Node(0); _local9.copy(_local3); nodes[_local8].copy(_local2); nodes[_local4].copy(_local9); _local4 = _local8; _local2 = nodes[_local4]; _local8 = ((_local4 - 1) / 2); if (_local8 < 0){ break; }; _local3 = nodes[_local8]; }; }; } public function getSize():int{ return (heapSize); } public function getNode(_arg1:int):Node{ var _local2:int; _local2 = 0; while (_local2 < heapSize) { if (nodes[_local2].id == _arg1){ return (nodes[_local2]); }; _local2++; }; return (null); } public function printHeap(){ var _local1:int; var _local2:String; var _local3:int; var _local4:int; _local2 = "heap: "; _local3 = 0; _local4 = 0; _local1 = 0; while (_local1 < heapSize) { _local2 = (_local2 + (nodes[_local1].value + " ")); if ((((_local1 == 0)) || (((_local1 % _local4) == 0)))){ _local2 = (_local2 + "\t"); _local4 = (_local4 + (2 << _local3)); _local3++; }; _local1++; }; trace(_local2); } } }//packageSection 22//BlueJellyfish (BlueJellyfish) package { import flash.display.*; public dynamic class BlueJellyfish extends BitmapData { public function BlueJellyfish(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 23//CityTiles (CityTiles) package { import flash.display.*; public dynamic class CityTiles extends BitmapData { public function CityTiles(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 24//Door (Door) package { import flash.geom.*; public class Door { public var houseIndex:int; public var bounds:Rectangle; public function Door(_arg1:int, _arg2:int, _arg3:int){ bounds = new Rectangle(_arg1, (_arg2 + 16), 32, 16); houseIndex = _arg3; } } }//packageSection 25//Floor (Floor) package { import greenpixel.game.tilemap.*; public class Floor { public var doors:Array; public var map:TileMap; public static var MIN_FLOOR_WIDTH = 15; public static var MAX_WALL_OFFSET_Y = 4; public static var MIN_ROOMS = 2; public static var MAX_WALL_OFFSET_X = 4; public static var MAX_FLOOR_HEIGHT = 15; public static var MAX_FLOOR_WIDTH = 15; public static var MAX_ROOMS = 4; public static var MIN_FLOOR_HEIGHT = 15; public function Floor(_arg1:TileMap){ map = _arg1; doors = new Array(); } public function setDoor(_arg1:Door):void{ doors.push(_arg1); } public function initMap(_arg1:int, _arg2:int){ map = new TileMap(_arg1, _arg2); } } }//packageSection 26//Game (Game) package { import greenpixel.gut.anim.*; import flash.events.*; import flash.geom.*; import greenpixel.game.world.objects.*; import greenpixel.game.tilemap.*; import greenpixel.math.*; import flash.text.*; import greenpixel.game.*; import greenpixel.game.sprite.*; import greenpixel.sound.*; import greenpixel.io.*; import greenpixel.game.ui.*; public class Game extends GameLayer { private var theGame:Main; private var touched:Boolean; private var HOUSE_TILES_HEIGHT;// = 15 private var MAX_METAL:int;// = 30 private var housesWidth:int; private var NUM_HOUSES;// = 8 private var townHeight:int; private var townWidth:int; private var townItems:Array; private var metalField:TextSprite; private var housesHeight:int; private var stunBullet:StunBullet; private var playerDrawPos:Point; private var woodField:TextSprite; private var worldMap:Array; private var gunImg:Sprite2D; private var NUM_HOUSES_PER_HEIGHT;// = 2 private var COIL_FIELD_X:int;// = 363 private var COIL_FIELD_Y:int;// = 310 private var currentDoors:Array; private var BAT_Y:int;// = 414 private var BAT_X:int;// = 532 private var WOOD_FIELD_X:int;// = 269 private var WOOD_INDEX:int;// = 0 private var WOOD_FIELD_Y:int;// = 275 private var MAX_COIL:int;// = 20 private var PROPERTY_SLICE_HEIGHT;// = 800 private var CIRCUIT_INDEX:int;// = 1 private var MAX_RESOURCES:int;// = 4 private var currentNPCs:Array; private var worldSpecial:Array; private var MAX_WOOD:int;// = 60 private var inventoryImg:Sprite2D; private var METAL_FIELD_Y:int;// = 310 private var player:Player; private var circuitField:TextSprite; private var METAL_FIELD_X:int;// = 269 private var lastTownPosY:int; private var font32:GameFont; private var lastTownPosX:int; private var GUN_X:int;// = 578 private var GUN_Y:int;// = 414 private var COIL_INDEX:int;// = 3 private var housesMap:Array; private var TILE_SIZE;// = 32 private var PROPERTY_SLICE_TILES_WIDTH;// = 19 private var NUM_HOUSE_TYPES;// = 7 private var townDoors:Array; private var currentMap:TileMap; private var lifeImg:Sprite2D; private var PROPERTY_SLICE_WIDTH;// = 608 private var currentSpawns:Array; private var PROPERTIES_PER_HEIGHT;// = 3 private var soundButton:SoundButton; private var houseArray:Array; private var METAL_INDEX:int;// = 2 private var inventory:Array; private var townNPCs:Array; private var townMap:TileMap; private var batImg:Sprite2D; private var NUM_PROPERTY_TYPES;// = 8 private var NUM_PROPERTY_PER_WIDTH;// = 4 private var propertyArray:Array; private var townSpawns:Array; private var PROPERTY_SLICE_TILES_HEIGHT;// = 25 private var shortcutImg:Sprite2D; private var HOUSE_TILES_WIDTH;// = 20 private var NUM_HOUSES_PER_WIDTH;// = 4 private var NUM_PROPERTIES;// = 12 private var LIFE_SPACING_X:int;// = 40 private var coilField:TextSprite; private var CIRCUIT_FIELD_X:int;// = 363 private var CIRCUIT_FIELD_Y:int;// = 275 private var MAX_CIRCUIT:int;// = 20 private var LIFE_X:int;// = 16 private var LIFE_Y:int;// = 16 private var housesSpecial:Array; private var PROPERTIES_PER_WIDTH;// = 5 private var currentItems:Array; private var gameOverImg:Sprite2D; private static var STATE_PLAY = 0; private static var STATE_GAME_OVER = 3; private static var STATE_FADE_IN = 2; private static var STATE_INVENTORY = 1; public function Game(_arg1:Main){ var _local2:int; var _local3:TextFormat; WOOD_INDEX = 0; CIRCUIT_INDEX = 1; METAL_INDEX = 2; COIL_INDEX = 3; MAX_WOOD = 60; MAX_METAL = 30; MAX_CIRCUIT = 20; MAX_COIL = 20; MAX_RESOURCES = 4; WOOD_FIELD_X = 269; WOOD_FIELD_Y = 275; METAL_FIELD_X = 269; METAL_FIELD_Y = 310; CIRCUIT_FIELD_X = 363; CIRCUIT_FIELD_Y = 275; COIL_FIELD_X = 363; COIL_FIELD_Y = 310; LIFE_X = 16; LIFE_Y = 16; LIFE_SPACING_X = 40; BAT_X = 532; BAT_Y = 414; GUN_X = 578; GUN_Y = 414; TILE_SIZE = 32; PROPERTIES_PER_WIDTH = 5; PROPERTIES_PER_HEIGHT = 3; PROPERTY_SLICE_TILES_WIDTH = 19; PROPERTY_SLICE_TILES_HEIGHT = 25; PROPERTY_SLICE_WIDTH = 608; PROPERTY_SLICE_HEIGHT = 800; NUM_PROPERTIES = 12; NUM_HOUSE_TYPES = 7; NUM_PROPERTY_TYPES = 8; NUM_PROPERTY_PER_WIDTH = 4; HOUSE_TILES_WIDTH = 20; HOUSE_TILES_HEIGHT = 15; NUM_HOUSES = 8; NUM_HOUSES_PER_WIDTH = 4; NUM_HOUSES_PER_HEIGHT = 2; super(_arg1); theGame = _arg1; housesWidth = (NUM_HOUSES_PER_WIDTH * HOUSE_TILES_WIDTH); housesHeight = (NUM_HOUSES_PER_HEIGHT * HOUSE_TILES_HEIGHT); housesMap = new Array(housesHeight); housesSpecial = new Array(housesWidth); _local2 = 0; while (_local2 < housesMap.length) { housesMap[_local2] = new Array(housesWidth); housesSpecial[_local2] = new Array(housesWidth); _local2++; }; soundButton = new SoundButton(); soundButton.buttonMode = true; soundButton.gotoAndStop(0); soundButton.addEventListener(MouseEvent.CLICK, toggleSound); soundButton.x = 588; soundButton.y = 20; TileMap.translateByteMapTo2D(Maps.HOUSES_MAP, housesMap, housesSpecial); townWidth = (PROPERTIES_PER_WIDTH * PROPERTY_SLICE_TILES_WIDTH); townHeight = (PROPERTIES_PER_HEIGHT * PROPERTY_SLICE_TILES_HEIGHT); worldMap = new Array(townHeight); worldSpecial = new Array(townHeight); _local2 = 0; while (_local2 < worldMap.length) { worldMap[_local2] = new Array(townWidth); worldSpecial[_local2] = new Array(townWidth); _local2++; }; TileMap.translateByteMapTo2D(Maps.WORLD_MAP, worldMap, worldSpecial); inventory = new Array(MAX_RESOURCES); inventoryImg = new Sprite2D(); inventoryImg.setAnim(AnimData.UI_INVENTORY, AnimData.UI_INVENTORY_INVENTORY); gameOverImg = new Sprite2D(); gameOverImg.setAnim(AnimData.UI_DEATHSCREEN, AnimData.UI_DEATHSCREEN_DEATHSCREEN); batImg = new Sprite2D(); batImg.setPos(BAT_X, BAT_Y); batImg.setAnim(AnimData.UI_SHORTCUT_ICONS, AnimData.UI_SHORTCUT_ICONS_BAT); gunImg = new Sprite2D(); gunImg.setPos(GUN_X, GUN_Y); gunImg.setAnim(AnimData.UI_SHORTCUT_ICONS, AnimData.UI_SHORTCUT_ICONS_STUNGUN); font32 = new GameFont(); _local3 = new TextFormat(); _local3.font = font32.fontName; _local3.size = 16; woodField = new TextSprite(new Rectangle(WOOD_FIELD_X, WOOD_FIELD_Y, 32, 32), TextArea.STATIC, 0xFF00, false); woodField.setFormat(_local3); metalField = new TextSprite(new Rectangle(METAL_FIELD_X, METAL_FIELD_Y, 32, 32), TextArea.STATIC, 0xFF00, false); metalField.setFormat(_local3); circuitField = new TextSprite(new Rectangle(CIRCUIT_FIELD_X, CIRCUIT_FIELD_Y, 32, 32), TextArea.STATIC, 0xFF00, false); circuitField.setFormat(_local3); coilField = new TextSprite(new Rectangle(COIL_FIELD_X, COIL_FIELD_Y, 32, 32), TextArea.STATIC, 0xFF00, false); coilField.setFormat(_local3); lifeImg = new Sprite2D(); lifeImg.setAnim(AnimData.UI_LIFE, AnimData.UI_LIFE_LIFE); shortcutImg = new Sprite2D(); shortcutImg.setAnim(AnimData.UI_SHORTCUTS, AnimData.UI_SHORTCUTS_SHORTCUTS); initPopup(new Rectangle(10, 10, 300, 100), TextArea.ANIMATED, 0, true); setPopupAnim(AnimData.MESSAGE_WINDOW, AnimData.MESSAGE_WINDOW_SMALL_WINDOW); pushState(STATE_PLAY); addChild(soundButton); } public function hitObjects():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:Rectangle; var _local5:Rectangle; var _local6:NPC; var _local7:NPC; var _local8:Vector2D; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:Array; var _local14:Item; var _local15:Spawn; var _local16:int; var _local17:int; var _local18:int; _local4 = new Rectangle(0, 0, 0, 0); _local5 = new Rectangle(0, 0, 0, 0); switch (player.direction){ case Entity.DIR_UP: _local4 = new Rectangle(player.x, (player.y - Player.ATTACK_HEIGHT), Player.ATTACK_WIDTH, Player.ATTACK_HEIGHT); break; case Entity.DIR_RIGHT: _local4 = new Rectangle(((player.x + player.hitBox.x) + player.hitBox.width), player.y, Player.ATTACK_WIDTH, Player.ATTACK_HEIGHT); break; case Entity.DIR_DOWN: _local4 = new Rectangle(player.x, ((player.y + player.hitBox.y) + player.hitBox.height), Player.ATTACK_WIDTH, Player.ATTACK_HEIGHT); break; case Entity.DIR_LEFT: _local4 = new Rectangle((player.x - Player.ATTACK_WIDTH), player.y, Player.ATTACK_WIDTH, Player.ATTACK_HEIGHT); break; }; _local1 = 0; while (_local1 < currentNPCs.length) { _local6 = currentNPCs[_local1]; if (!_local6.isAlive){ } else { _local5 = new Rectangle(_local6.x, _local6.y, _local6.hitBox.width, _local6.hitBox.height); if (Utils.rectInRect(_local4, _local5)){ SoundManager.instance.playEffect(Main.HIT_EFFECT); _local6.health = (_local6.health - player.attackPower); _local2 = 0; while (_local2 < currentNPCs.length) { _local7 = currentNPCs[_local2]; if ((((((((_local2 == _local1)) || (!(_local7.isAlive)))) || ((_local7.state == NPC.STATE_SEARCH)))) || ((_local7.state == NPC.STATE_ATTACK)))){ } else { _local8 = new Vector2D((_local7.x - player.x), (_local7.y - player.y)); if (_local8.length() <= NPC.HEARING_RADIUS){ _local9 = (_local7.x / TILE_SIZE); _local10 = (_local7.y / TILE_SIZE); _local11 = (player.x / TILE_SIZE); _local12 = (player.y / TILE_SIZE); _local13 = PathFinder.getPathAStar(currentMap.getMap(), _local9, _local10, _local11, _local12); _local7.setPath(_local13); _local7.setState(NPC.STATE_SEARCH); }; }; _local2++; }; if (_local6.health <= 0){ _local6.kill(); } else { _local6.hit(); }; switch (player.direction){ case Entity.DIR_UP: currentMap.moveSpriteUp(_local6, (TILE_SIZE - 2)); break; case Entity.DIR_RIGHT: currentMap.moveSpriteRight(_local6, (TILE_SIZE - 2)); break; case Entity.DIR_DOWN: currentMap.moveSpriteDown(_local6, (TILE_SIZE - 2)); break; case Entity.DIR_LEFT: currentMap.moveSpriteLeft(_local6, (TILE_SIZE - 2)); break; }; }; }; _local1++; }; _local1 = 0; while (_local1 < currentItems.length) { _local14 = currentItems[_local1]; if (((_local14.isPickedUp) || ((_local14.state == Item.STATE_BROKEN)))){ } else { _local5 = new Rectangle(_local14.x, _local14.y, _local14.hitBox.width, _local14.hitBox.height); if (Utils.rectInRect(_local4, _local5)){ SoundManager.instance.playEffect(Main.HIT_EFFECT); _local14.hit(); _local14.health = (_local14.health - player.attackPower); _local2 = 0; while (_local2 < currentNPCs.length) { _local6 = currentNPCs[_local2]; if (((((!(_local6.isAlive)) || ((_local6.state == NPC.STATE_SEARCH)))) || ((_local6.state == NPC.STATE_ATTACK)))){ } else { _local8 = new Vector2D((_local6.x - player.x), (_local6.y - player.y)); if (_local8.length() <= NPC.HEARING_RADIUS){ _local9 = (_local6.x / TILE_SIZE); _local10 = (_local6.y / TILE_SIZE); _local11 = (player.x / TILE_SIZE); _local12 = (player.y / TILE_SIZE); _local13 = PathFinder.getPathAStar(currentMap.getMap(), _local9, _local10, _local11, _local12); _local6.setPath(_local13); _local6.setState(NPC.STATE_SEARCH); }; }; _local2++; }; if (_local14.health <= 0){ _local14.breakYoself(); _local2 = 0; while (_local2 < (_local14.hitBox.height / TILE_SIZE)) { _local3 = 0; while (_local3 < (_local14.hitBox.width / TILE_SIZE)) { _local15 = getAvailableSpawn(); _local16 = _local14.spawnType1; if (Math.random() < 0.25){ _local16 = _local14.spawnType2; }; _local15.init((_local14.x + (_local3 * TILE_SIZE)), (_local14.y + (_local2 * TILE_SIZE)), _local16); _local17 = (_local14.x / TILE_SIZE); _local18 = (_local14.y / TILE_SIZE); currentMap.removeWall((_local17 + _local3), (_local18 + _local2)); _local3++; }; _local2++; }; }; }; }; _local1++; }; } public function toggleSound(_arg1:MouseEvent):void{ SoundManager.instance.toggleMute(); } private function generateFloorMap(_arg1:House, _arg2:TileMap):Door{ var _local3:Array; var _local4:Array; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:Door; var _local10:int; var _local11:int; var _local12:int; var _local13:Item; var _local14:NPC; _local3 = new Array(HOUSE_TILES_HEIGHT); _local4 = new Array(HOUSE_TILES_HEIGHT); _local9 = new Door(0, 0, -1); _local5 = 0; while (_local5 < _local3.length) { _local3[_local5] = new Array(HOUSE_TILES_WIDTH); _local4[_local5] = new Array(HOUSE_TILES_WIDTH); _local5++; }; _local10 = 0; _local11 = 0; _local12 = int((Math.random() * NUM_HOUSES)); _local10 = (int((_local12 % NUM_HOUSES_PER_WIDTH)) * HOUSE_TILES_WIDTH); _local11 = (int((_local12 / NUM_HOUSES_PER_WIDTH)) * HOUSE_TILES_HEIGHT); _local5 = 0; while (_local5 < HOUSE_TILES_HEIGHT) { _local6 = 0; while (_local6 < HOUSE_TILES_WIDTH) { _local3[_local5][_local6] = housesMap[(_local5 + _local11)][(_local6 + _local10)]; _local6++; }; _local5++; }; _local5 = 0; while (_local5 < HOUSE_TILES_HEIGHT) { _local6 = 0; while (_local6 < HOUSE_TILES_WIDTH) { _local13 = null; switch (Tile.getType(housesSpecial[(_local5 + _local11)][(_local6 + _local10)])){ case Tile.SPECIAL_SPAWN_DOOR: _local9 = new Door((_local6 * TILE_SIZE), (_local5 * TILE_SIZE), -1); break; case Tile.SPECIAL_SPAWN_NPC: _local14 = new NPC(); _local14.setPos((_local6 * TILE_SIZE), (_local5 * TILE_SIZE)); _arg1.addNPC(_local14); break; case Tile.SPECIAL_SPAWN_BUSH: case Tile.SPECIAL_SPAWN_ROCK: case Tile.SPECIAL_SPAWN_STOVE: case Tile.SPECIAL_SPAWN_SINK: case Tile.SPECIAL_SPAWN_COUNTER: case Tile.SPECIAL_SPAWN_FRIDGE: case Tile.SPECIAL_SPAWN_TABLE_AND_CHAIRS: case Tile.SPECIAL_SPAWN_TV: case Tile.SPECIAL_SPAWN_COUCH: case Tile.SPECIAL_SPAWN_TABLE: case Tile.SPECIAL_SPAWN_BED: case Tile.SPECIAL_SPAWN_DRESSER: case Tile.SPECIAL_SPAWN_DESK: case Tile.SPECIAL_SPAWN_CAR: case Tile.SPECIAL_SPAWN_TREE: _local13 = _arg1.addItem(Tile.getType(housesSpecial[(_local5 + _local11)][(_local6 + _local10)]), (_local6 * TILE_SIZE), (_local5 * TILE_SIZE)); break; }; if (_local13 != null){ _local7 = 0; while (_local7 < (_local13.hitBox.height / TILE_SIZE)) { _local8 = 0; while (_local8 < (_local13.hitBox.width / TILE_SIZE)) { _local3[(_local5 + _local7)][(_local6 + _local8)] = (_local3[(_local5 + _local7)][(_local6 + _local8)] | Tile.WALL); _local8++; }; _local7++; }; }; _local6++; }; _local5++; }; _arg2.loadMap2D(_local3, _local4, new HouseTiles(0, 0), 32); return (_local9); } private function updateGame():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:Boolean; var _local5:Door; var _local6:int; var _local7:Rectangle; var _local8:int; var _local9:int; var _local10:NPC; var _local11:Rectangle; var _local12:int; var _local13:Boolean; var _local14:Rectangle; var _local15:int; var _local16:int; var _local17:int; var _local18:int; var _local19:Number; var _local20:int; var _local21:int; var _local22:int; var _local23:int; var _local24:Array; var _local25:Rectangle; var _local26:Item; _local1 = Player.ANIM_IDLE; _local2 = 0; if (isKeyPressed(KeyCodes.KEY_SPACE)){ pushState(STATE_INVENTORY); return; }; SoundManager.instance.clearEffectsInUse(); if (player.stunCooldown > 0){ gunImg.setAnim(AnimData.UI_SHORTCUT_ICONS, AnimData.UI_SHORTCUT_ICONS_STUNGUN_COOLING); player.stunCooldown--; if (player.stunCooldown == 0){ gunImg.setAnim(AnimData.UI_SHORTCUT_ICONS, AnimData.UI_SHORTCUT_ICONS_STUNGUN_READYFLASH); }; }; if (player.state == Player.STATE_IDLE){ if (isKeyDown(KeyCodes.KEY_LEFT)){ player.direction = Entity.DIR_LEFT; if (!objectCollision(-(player.speed), 0)){ currentMap.moveSpriteLeft(player, player.speed); }; _local1 = Player.ANIM_WALK; } else { if (isKeyDown(KeyCodes.KEY_RIGHT)){ player.direction = Entity.DIR_RIGHT; if (!objectCollision(player.speed, 0)){ currentMap.moveSpriteRight(player, player.speed); }; _local1 = Player.ANIM_WALK; }; }; if (isKeyDown(KeyCodes.KEY_DOWN)){ player.direction = Entity.DIR_DOWN; if (!objectCollision(0, player.speed)){ currentMap.moveSpriteDown(player, player.speed); }; _local1 = Player.ANIM_WALK; } else { if (isKeyDown(KeyCodes.KEY_UP)){ player.direction = Entity.DIR_UP; if (!objectCollision(0, -(player.speed))){ currentMap.moveSpriteUp(player, player.speed); }; _local1 = Player.ANIM_WALK; }; }; if (isKeyDown(KeyCodes.KEY_X)){ _local1 = Player.ANIM_MELEE; player.state = Player.STATE_ATTACK; } else { if (((isKeyDown(KeyCodes.KEY_C)) && ((player.stunCooldown == 0)))){ _local1 = Player.ANIM_SHOOT; player.state = Player.STATE_SHOOT; }; }; }; if ((((_local1 == Player.ANIM_MELEE)) || ((player.state == Player.STATE_ATTACK)))){ switch (player.direction){ case Entity.DIR_UP: _local2 = AnimData.SPRITE_MADSCIENTIST_MELEE_BACK; break; case Entity.DIR_RIGHT: _local2 = AnimData.SPRITE_MADSCIENTIST_MELEE_RIGHT; break; case Entity.DIR_DOWN: _local2 = AnimData.SPRITE_MADSCIENTIST_MELEE_FRONT; break; case Entity.DIR_LEFT: _local2 = AnimData.SPRITE_MADSCIENTIST_MELEE_LEFT; break; }; if (((player.isAnimFinished) && (isKeyDown(KeyCodes.KEY_X)))){ player.resetAnim(_local2); }; } else { if ((((_local1 == Player.ANIM_SHOOT)) || ((player.state == Player.STATE_SHOOT)))){ switch (player.direction){ case Entity.DIR_UP: _local2 = AnimData.SPRITE_MADSCIENTIST_IDLE_GUN_BACK; break; case Entity.DIR_RIGHT: _local2 = AnimData.SPRITE_MADSCIENTIST_IDLE_GUN_RIGHT; break; case Entity.DIR_DOWN: _local2 = AnimData.SPRITE_MADSCIENTIST_IDLE_GUN_FRONT; break; case Entity.DIR_LEFT: _local2 = AnimData.SPRITE_MADSCIENTIST_IDLE_GUN_LEFT; break; }; } else { switch (_local1){ case Player.ANIM_WALK: switch (player.direction){ case Entity.DIR_UP: _local2 = AnimData.SPRITE_MADSCIENTIST_WALK_BACK; break; case Entity.DIR_RIGHT: _local2 = AnimData.SPRITE_MADSCIENTIST_WALK_RIGHT; break; case Entity.DIR_DOWN: _local2 = AnimData.SPRITE_MADSCIENTIST_WALK_FRONT; break; case Entity.DIR_LEFT: _local2 = AnimData.SPRITE_MADSCIENTIST_WALK_LEFT; break; }; break; case Player.ANIM_IDLE: switch (player.direction){ case Entity.DIR_UP: _local2 = AnimData.SPRITE_MADSCIENTIST_IDLE_BACK; break; case Entity.DIR_RIGHT: _local2 = AnimData.SPRITE_MADSCIENTIST_IDLE_RIGHT; break; case Entity.DIR_DOWN: _local2 = AnimData.SPRITE_MADSCIENTIST_IDLE_FRONT; break; case Entity.DIR_LEFT: _local2 = AnimData.SPRITE_MADSCIENTIST_IDLE_LEFT; break; }; break; }; }; }; player.setAnim(AnimData.SPRITE_MADSCIENTIST, _local2); if (player.state == Player.STATE_ATTACK){ switch (player.checkFrameOps()){ case FrameData.OP_ATTACK: SoundManager.instance.playEffect(Main.SWING_EFFECT); hitObjects(); break; }; if (player.isAnimFinished){ player.state = Player.STATE_IDLE; }; } else { if (player.state == Player.STATE_SHOOT){ switch (player.checkFrameOps()){ case FrameData.OP_ATTACK: SoundManager.instance.playEffect(Main.LASER_EFFECT); player.shoot(); switch (player.direction){ case Entity.DIR_UP: stunBullet.init((player.x + (player.hitBox.width / 2)), (player.y + (player.hitBox.height / 2)), 0, -1); break; case Entity.DIR_RIGHT: stunBullet.init((player.x + (player.hitBox.width / 2)), (player.y + (player.hitBox.height / 2)), 1, 0); break; case Entity.DIR_DOWN: stunBullet.init((player.x + (player.hitBox.width / 2)), (player.y + (player.hitBox.height / 2)), 0, 1); break; case Entity.DIR_LEFT: stunBullet.init((player.x + (player.hitBox.width / 2)), (player.y + (player.hitBox.height / 2)), -1, 0); break; }; break; }; if (player.isAnimFinished){ player.state = Player.STATE_IDLE; }; }; }; if (player.attackCooldown > 0){ player.attackCooldown--; }; playerDrawPos = currentMap.centerMap(player.x, player.y); _local3 = 0; while (_local3 < currentDoors.length) { _local5 = currentDoors[_local3]; if (Utils.boxInRect((player.x + player.hitBox.x), player.hitBox.width, (player.y + player.hitBox.y), player.hitBox.height, _local5.bounds)){ _local6 = _local5.houseIndex; if (_local6 > -1){ currentMap = houseArray[_local6].getCurrentFloor().map; currentDoors = houseArray[_local6].getCurrentFloor().doors; currentNPCs = houseArray[_local6].npcArray; currentItems = houseArray[_local6].itemArray; currentSpawns = houseArray[_local6].spawnArray; lastTownPosX = _local5.bounds.x; lastTownPosY = _local5.bounds.y; player.setPos(currentDoors[0].bounds.x, (currentDoors[0].bounds.y - TILE_SIZE)); playerDrawPos = currentMap.centerMap(player.x, player.y); fadeOut(); pushState(STATE_FADE_IN); } else { currentMap = townMap; currentDoors = townDoors; currentItems = townItems; currentNPCs = townNPCs; currentSpawns = townSpawns; player.setPos(lastTownPosX, (lastTownPosY + 16)); playerDrawPos = currentMap.centerMap(player.x, player.y); fadeOut(); pushState(STATE_FADE_IN); }; break; }; _local3++; }; if (stunBullet.isAlive){ _local7 = new Rectangle(stunBullet.x, stunBullet.y, stunBullet.hitBox.width, stunBullet.hitBox.height); _local3 = 0; while (_local3 < currentNPCs.length) { _local10 = currentNPCs[_local3]; if (!_local10.isAlive){ } else { _local11 = new Rectangle(_local10.x, _local10.y, _local10.hitBox.width, _local10.hitBox.height); if (Utils.rectInRect(_local7, _local11)){ _local10.stun(); stunBullet.isAlive = false; break; }; }; _local3++; }; stunBullet.x = (stunBullet.x + (stunBullet.heading.x * stunBullet.speed)); stunBullet.y = (stunBullet.y + (stunBullet.heading.y * stunBullet.speed)); _local8 = (stunBullet.x / TILE_SIZE); _local9 = (stunBullet.y / TILE_SIZE); if ((((((((((_local8 < 0)) || ((_local9 < 0)))) || ((_local8 >= currentMap.mapWidth)))) || ((_local9 >= currentMap.mapHeight)))) || (currentMap.hasWall(_local8, _local9)))){ stunBullet.isAlive = false; }; }; _local3 = 0; while (_local3 < currentNPCs.length) { _local10 = currentNPCs[_local3]; _local13 = true; _local14 = new Rectangle((player.x + player.hitBox.x), (player.y + player.hitBox.y), player.hitBox.width, player.hitBox.height); _local11 = new Rectangle((_local10.x + (_local10.heading.x * _local10.speed)), (_local10.y + (_local10.heading.y * _local10.speed)), _local10.hitBox.width, _local10.hitBox.height); if (((!(_local10.isAlive)) || ((_local10.hitCooldown > 0)))){ } else { switch (_local10.state){ case NPC.STATE_IDLE: getNewNPCDest(_local10); break; case NPC.STATE_WALK: if ((((Math.abs((_local10.y - _local10.dest.y)) <= _local10.speed)) && ((Math.abs((_local10.x - _local10.dest.x)) <= _local10.speed)))){ _local10.x = _local10.dest.x; _local10.y = _local10.dest.y; getNewNPCDest(_local10); } else { if (Utils.rectInRect(_local14, _local11)){ _local13 = false; }; if (_local13){ switch (_local10.direction){ case Entity.DIR_UP: _local13 = currentMap.moveSpriteUp(_local10, _local10.speed); break; case Entity.DIR_RIGHT: _local13 = currentMap.moveSpriteRight(_local10, _local10.speed); break; case Entity.DIR_DOWN: _local13 = currentMap.moveSpriteDown(_local10, _local10.speed); break; case Entity.DIR_LEFT: _local13 = currentMap.moveSpriteLeft(_local10, _local10.speed); break; }; }; if (!_local13){ getNewNPCDest(_local10); }; }; break; case NPC.STATE_SEARCH: _local15 = ((_local10.x + (_local10.hitBox.width / 2)) / TILE_SIZE); _local16 = ((_local10.y + (_local10.hitBox.height / 2)) / TILE_SIZE); _local17 = ((player.x + (player.hitBox.width / 2)) / TILE_SIZE); _local18 = ((player.y + (player.hitBox.height / 2)) / TILE_SIZE); if (lineOfSightBresenham(_local15, _local16, _local17, _local18)){ _local10.setState(NPC.STATE_ATTACK); } else { if ((((Math.abs((_local10.y - _local10.dest.y)) <= _local10.speed)) && ((Math.abs((_local10.x - _local10.dest.x)) <= _local10.speed)))){ _local10.setPos(_local10.dest.x, _local10.dest.y); if (_local10.hasNextDest()){ _local10.nextDest(); } else { _local10.setState(NPC.STATE_WALK); }; } else { _local10.x = (_local10.x + (_local10.heading.x * _local10.speed)); _local10.y = (_local10.y + (_local10.heading.y * _local10.speed)); }; }; break; case NPC.STATE_ATTACK: if (Utils.rectInRect(_local14, _local11)){ _local19 = Math.atan2(((_local10.y + (_local10.hitBox.height / 2)) - (player.y + (player.hitBox.height / 2))), ((_local10.x + (_local10.hitBox.width / 2)) - (player.x + (player.hitBox.width / 2)))); if ((((_local19 < (-(Math.PI) / 4))) && ((_local19 > (-(Math.PI) + (Math.PI / 4)))))){ _local10.direction = Entity.DIR_DOWN; } else { if ((((_local19 > (Math.PI / 4))) && ((_local19 < (Math.PI - (Math.PI / 4)))))){ _local10.direction = Entity.DIR_UP; } else { if ((((_local19 > (Math.PI - (Math.PI / 4)))) || ((_local19 < (-(Math.PI) + (Math.PI / 4)))))){ _local10.direction = Entity.DIR_RIGHT; } else { _local10.direction = Entity.DIR_LEFT; }; }; }; _local10.attack(); _local10.setState(NPC.STATE_SWING_BAT); } else { _local20 = (_local10.x / TILE_SIZE); _local21 = (_local10.y / TILE_SIZE); _local22 = (player.x / TILE_SIZE); _local23 = (player.y / TILE_SIZE); _local24 = PathFinder.getPathAStar(currentMap.getMap(), _local20, _local21, _local22, _local23); _local10.setPath(_local24); if ((((Math.abs((_local10.y - _local10.dest.y)) <= _local10.speed)) && ((Math.abs((_local10.x - _local10.dest.x)) <= _local10.speed)))){ _local10.setPos(_local10.dest.x, _local10.dest.y); if (_local10.hasNextDest()){ _local10.nextDest(); }; } else { _local10.x = (_local10.x + (_local10.heading.x * _local10.speed)); _local10.y = (_local10.y + (_local10.heading.y * _local10.speed)); }; }; break; case NPC.STATE_SWING_BAT: _local19 = Math.atan2(((_local10.y + (_local10.hitBox.height / 2)) - (player.y + (player.hitBox.height / 2))), ((_local10.x + (_local10.hitBox.width / 2)) - (player.x + (player.hitBox.width / 2)))); if ((((_local19 < (-(Math.PI) / 4))) && ((_local19 > (-(Math.PI) + (Math.PI / 4)))))){ _local10.direction = Entity.DIR_DOWN; } else { if ((((_local19 > (Math.PI / 4))) && ((_local19 < (Math.PI - (Math.PI / 4)))))){ _local10.direction = Entity.DIR_UP; } else { if ((((_local19 > (Math.PI - (Math.PI / 4)))) || ((_local19 < (-(Math.PI) + (Math.PI / 4)))))){ _local10.direction = Entity.DIR_RIGHT; } else { _local10.direction = Entity.DIR_LEFT; }; }; }; if (_local10.isAnimFinished){ _local11 = new Rectangle((_local10.x + (_local10.heading.x * _local10.speed)), (_local10.y + (_local10.heading.y * _local10.speed)), _local10.hitBox.width, _local10.hitBox.height); if (!Utils.rectInRect(_local14, _local11)){ _local10.setState(NPC.STATE_ATTACK); } else { _local10.attack(); }; }; break; }; if (_local10.state == NPC.STATE_SWING_BAT){ switch (_local10.checkFrameOps()){ case FrameData.OP_ATTACK: _local25 = new Rectangle(0, 0, 0, 0); switch (_local10.direction){ case Entity.DIR_UP: _local25 = new Rectangle(_local10.x, (_local10.y - Player.ATTACK_HEIGHT), Player.ATTACK_WIDTH, Player.ATTACK_HEIGHT); break; case Entity.DIR_RIGHT: _local25 = new Rectangle(((_local10.x + _local10.hitBox.x) + _local10.hitBox.width), _local10.y, Player.ATTACK_WIDTH, Player.ATTACK_HEIGHT); break; case Entity.DIR_DOWN: _local25 = new Rectangle(_local10.x, (_local10.y + _local10.hitBox.height), Player.ATTACK_WIDTH, Player.ATTACK_HEIGHT); break; case Entity.DIR_LEFT: _local25 = new Rectangle((_local10.x - Player.ATTACK_WIDTH), _local10.y, Player.ATTACK_WIDTH, Player.ATTACK_HEIGHT); break; }; if (((Utils.rectInRect(_local25, _local14)) && ((player.damageCooldown == 0)))){ SoundManager.instance.playEffect(Main.HIT_EFFECT); player.hit(_local10.attackPower); touched = true; if (player.health <= 0){ drawGame(); pushState(STATE_GAME_OVER); return; }; }; break; }; } else { if (_local10.state == NPC.STATE_ATTACK){ _local19 = Math.atan2(((_local10.y + (_local10.hitBox.height / 2)) - (player.y + (player.hitBox.height / 2))), ((_local10.x + (_local10.hitBox.width / 2)) - (player.x + (player.hitBox.width / 2)))); if ((((_local19 < (-(Math.PI) / 4))) && ((_local19 > (-(Math.PI) + (Math.PI / 4)))))){ _local10.direction = Entity.DIR_DOWN; _local12 = AnimData.SPRITE_NPC01_WALK_FRONT; } else { if ((((_local19 > (Math.PI / 4))) && ((_local19 < (Math.PI - (Math.PI / 4)))))){ _local10.direction = Entity.DIR_UP; _local12 = AnimData.SPRITE_NPC01_WALK_BACK; } else { if ((((_local19 > (Math.PI - (Math.PI / 4)))) || ((_local19 < (-(Math.PI) + (Math.PI / 4)))))){ _local10.direction = Entity.DIR_RIGHT; _local12 = AnimData.SPRITE_NPC01_WALK_RIGHT; } else { _local10.direction = Entity.DIR_LEFT; _local12 = AnimData.SPRITE_NPC01_WALK_LEFT; }; }; }; _local10.setAnim((_local10.npcType + AnimData.SPRITE_NPC01), _local12); } else { switch (_local10.direction){ case Entity.DIR_UP: _local12 = AnimData.SPRITE_NPC01_WALK_BACK; break; case Entity.DIR_RIGHT: _local12 = AnimData.SPRITE_NPC01_WALK_RIGHT; break; case Entity.DIR_DOWN: _local12 = AnimData.SPRITE_NPC01_WALK_FRONT; break; case Entity.DIR_LEFT: _local12 = AnimData.SPRITE_NPC01_WALK_LEFT; break; }; _local10.setAnim((_local10.npcType + AnimData.SPRITE_NPC01), _local12); }; }; }; _local3++; }; _local4 = true; _local3 = 0; while (_local3 < currentItems.length) { _local26 = currentItems[_local3]; if (_local26.state != Item.STATE_BROKEN){ _local4 = false; }; _local3++; }; if (_local4){ }; } private function drawInventory():void{ drawSprite(inventoryImg); woodField.setText(("" + (((MAX_WOOD - inventory[WOOD_INDEX]) > 0)) ? (MAX_WOOD - inventory[WOOD_INDEX]) : 0), 0); metalField.setText(("" + (((MAX_METAL - inventory[METAL_INDEX]) > 0)) ? (MAX_METAL - inventory[METAL_INDEX]) : 0), 0); circuitField.setText(("" + (((MAX_CIRCUIT - inventory[CIRCUIT_INDEX]) > 0)) ? (MAX_CIRCUIT - inventory[CIRCUIT_INDEX]) : 0), 0); coilField.setText(("" + (((MAX_COIL - inventory[COIL_INDEX]) > 0)) ? (MAX_COIL - inventory[COIL_INDEX]) : 0), 0); drawSprite(woodField); drawSprite(metalField); drawSprite(circuitField); drawSprite(coilField); } private function generateProperty(_arg1:Array, _arg2:Array, _arg3, _arg4):void{ } private function updateInventory():void{ if (isKeyPressed(KeyCodes.KEY_SPACE)){ popState(); }; } override public function update():void{ soundButton.gotoAndStop((SoundManager.instance.isMute) ? 2 : 1); switch (getState()){ case STATE_FADE_IN: popState(); fadeIn(); break; case STATE_PLAY: updateGame(); break; case STATE_INVENTORY: updateInventory(); break; case STATE_GAME_OVER: updateGameOver(); break; }; } private function generateHouse():void{ var _local1:House; var _local2:TileMap; var _local3:Door; var _local4:Floor; _local1 = new House(); _local2 = new TileMap(screenWidth, screenHeight); _local3 = generateFloorMap(_local1, _local2); _local4 = new Floor(_local2); _local4.setDoor(_local3); _local1.addFloor(_local4); houseArray.push(_local1); } private function objectCollision(_arg1:int, _arg2:int):Boolean{ var _local3:int; var _local4:Rectangle; var _local5:NPC; var _local6:*; var _local7:Spawn; var _local8:*; var _local9:int; var _local10:Boolean; _local4 = new Rectangle(((player.x + player.hitBox.x) + _arg1), ((player.y + player.hitBox.y) + _arg2), player.hitBox.width, player.hitBox.height); _local3 = 0; while (_local3 < currentNPCs.length) { _local5 = currentNPCs[_local3]; if (!_local5.isAlive){ } else { _local6 = new Rectangle(_local5.x, _local5.y, _local5.hitBox.width, _local5.hitBox.height); if (Utils.rectInRect(_local4, _local6)){ return (true); }; }; _local3++; }; _local3 = 0; while (_local3 < currentSpawns.length) { _local7 = currentSpawns[_local3]; if (!_local7.isAlive){ } else { _local8 = new Rectangle(_local7.x, _local7.y, _local7.hitBox.width, _local7.hitBox.height); if (Utils.rectInRect(_local4, _local8)){ SoundManager.instance.playEffect(Main.LOOT_EFFECT); _local7.isAlive = false; _local9 = WOOD_INDEX; switch (_local7.spawnType){ case Spawn.SPAWN_TYPE_WOOD: _local9 = WOOD_INDEX; break; case Spawn.SPAWN_TYPE_METAL: _local9 = METAL_INDEX; break; case Spawn.SPAWN_TYPE_CIRCUIT: _local9 = CIRCUIT_INDEX; break; case Spawn.SPAWN_TYPE_COIL: _local9 = COIL_INDEX; break; case Spawn.SPAWN_TYPE_APPLE: player.health = ((player.health)<Player.MAX_HEALTH) ? (player.health + 1) : Player.MAX_HEALTH; break; case Spawn.SPAWN_TYPE_STEAK: player.health = Player.MAX_HEALTH; break; }; var _local11 = inventory; var _local12 = _local9; var _local13 = (_local11[_local12] + 1); _local11[_local12] = _local13; _local10 = (((((((inventory[WOOD_INDEX] >= MAX_WOOD)) && ((inventory[METAL_INDEX] >= MAX_METAL)))) && ((inventory[CIRCUIT_INDEX] >= MAX_CIRCUIT)))) && ((inventory[COIL_INDEX] >= MAX_COIL))); if (_local10){ theGame.switchLayerOutro(); if (!touched){ }; }; }; }; _local3++; }; return (false); } override public function init():void{ SoundManager.instance.playMusic(Main.WORLD_THEME, true); reset(); fadeIn(); } override public function draw():void{ switch (getState()){ case STATE_PLAY: drawGame(); break; case STATE_INVENTORY: drawInventory(); break; case STATE_GAME_OVER: drawGameOver(); break; }; } private function getAvailableSpawn():Spawn{ var _local1:int; var _local2:Spawn; var _local3:Spawn; _local1 = 0; while (_local1 < currentSpawns.length) { _local3 = currentSpawns[_local1]; if (!_local3.isAlive){ return (_local3); }; _local1++; }; _local2 = new Spawn(); currentSpawns.push(_local2); return (currentSpawns[(currentSpawns.length - 1)]); } private function drawGame():void{ var _local1:int; var _local2:Point; var _local3:Item; var _local4:NPC; var _local5:Spawn; clearBackBuffer(); drawTileMap(currentMap); _local2 = currentMap.getCurrentOffset(); _local1 = 0; while (_local1 < currentItems.length) { _local3 = currentItems[_local1]; if (_local3.isPickedUp){ } else { if (_local3.hitCooldown > 0){ _local3.hitCooldown--; } else { drawSpriteAt(_local3, (_local3.x - _local2.x), (_local3.y - _local2.y)); }; }; _local1++; }; _local1 = 0; while (_local1 < currentNPCs.length) { _local4 = currentNPCs[_local1]; if (_local4.hitCooldown > 0){ _local4.hitCooldown--; //unresolved if } else { drawSpriteAt(_local4, (_local4.x - _local2.x), (_local4.y - _local2.y)); }; _local1++; }; _local1 = 0; while (_local1 < currentSpawns.length) { _local5 = currentSpawns[_local1]; if (!_local5.isAlive){ } else { drawSpriteAt(_local5, (_local5.x - _local2.x), (_local5.y - _local2.y)); }; _local1++; }; if (player.damageCooldown > 0){ if ((player.damageCooldown % 2) == 0){ drawSpriteAt(player, playerDrawPos.x, playerDrawPos.y); }; player.damageCooldown--; } else { drawSpriteAt(player, playerDrawPos.x, playerDrawPos.y); }; if (stunBullet.isAlive){ drawSpriteAt(stunBullet, (stunBullet.x - _local2.x), (stunBullet.y - _local2.y)); }; lifeImg.setAnim(AnimData.UI_LIFE, AnimData.UI_LIFE_LIFE); _local1 = 0; while (_local1 < Player.MAX_HEALTH) { if (player.health <= _local1){ lifeImg.setAnim(AnimData.UI_LIFE, AnimData.UI_LIFE_NOLIFE); }; drawSpriteAt(lifeImg, (LIFE_X + (_local1 * LIFE_SPACING_X)), LIFE_Y); _local1++; }; drawSprite(shortcutImg); drawSprite(batImg); drawSprite(gunImg); } private function reset():void{ var _local1:int; lastTownPosX = 0; lastTownPosY = 0; generateTown(); player = new Player(); player.setAnim(AnimData.SPRITE_MADSCIENTIST, AnimData.SPRITE_MADSCIENTIST_IDLE_FRONT); player.setPos((((townWidth * TILE_SIZE) / 2) - 64), ((townHeight * TILE_SIZE) - 64)); stunBullet = new StunBullet(); stunBullet.setAnim(AnimData.BLUE_JELLYFISH, AnimData.BLUE_JELLYFISH_IDLE); _local1 = 0; while (_local1 < inventory.length) { inventory[_local1] = 0; _local1++; }; playerDrawPos = currentMap.centerMap(player.x, player.y); touched = false; gunImg.setAnim(AnimData.UI_SHORTCUT_ICONS, AnimData.UI_SHORTCUT_ICONS_STUNGUN); } private function drawGameOver():void{ drawSprite(gameOverImg); } private function getNewNPCDest(_arg1:NPC):void{ var _local2:int; _local2 = _arg1.direction; if (Math.random() <= 0.25){ _local2 = int((4 * Math.random())); if (_local2 == 4){ _local2--; }; }; _arg1.heading.x = 0; _arg1.heading.y = 0; switch (_local2){ case Entity.DIR_UP: _arg1.setDest(_arg1.x, (_arg1.y - TILE_SIZE)); break; case Entity.DIR_DOWN: _arg1.setDest(_arg1.x, (_arg1.y + TILE_SIZE)); break; case Entity.DIR_RIGHT: _arg1.setDest((_arg1.x + TILE_SIZE), _arg1.y); break; case Entity.DIR_LEFT: _arg1.setDest((_arg1.x - TILE_SIZE), _arg1.y); break; }; _arg1.setState(NPC.STATE_WALK); } private function generateTown():void{ var _local1:Array; var _local2:Array; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:Item; var _local16:NPC; var _local17:int; var _local18:int; _local1 = new Array(townHeight); _local2 = new Array(townHeight); _local3 = 0; while (_local3 < townHeight) { _local1[_local3] = new Array(townWidth); _local2[_local3] = new Array(townWidth); _local3++; }; _local7 = 0; _local8 = 0; propertyArray = new Array(PROPERTIES_PER_HEIGHT); townDoors = new Array(); townNPCs = new Array(); townItems = new Array(); townSpawns = new Array(); houseArray = new Array(); _local3 = 0; while (_local3 < PROPERTIES_PER_HEIGHT) { propertyArray[_local3] = new Array(PROPERTIES_PER_WIDTH); _local3++; }; _local9 = 0; while (_local9 < NUM_PROPERTIES) { _local10 = (Math.random() * PROPERTIES_PER_WIDTH); _local11 = (Math.random() * PROPERTIES_PER_HEIGHT); if (!propertyArray[_local11][_local10]){ propertyArray[_local11][_local10] = true; _local9++; }; }; _local3 = 0; while (_local3 < PROPERTIES_PER_HEIGHT) { _local4 = 0; while (_local4 < PROPERTIES_PER_WIDTH) { _local12 = 0; _local13 = 0; _local14 = (NUM_PROPERTY_TYPES - 1); if (propertyArray[_local3][_local4]){ _local14 = int((Math.random() * NUM_HOUSE_TYPES)); generateHouse(); }; _local12 = (int((_local14 % NUM_PROPERTY_PER_WIDTH)) * PROPERTY_SLICE_TILES_WIDTH); _local13 = (int((_local14 / NUM_PROPERTY_PER_WIDTH)) * PROPERTY_SLICE_TILES_HEIGHT); _local5 = 0; while (_local5 < PROPERTY_SLICE_TILES_HEIGHT) { _local6 = 0; while (_local6 < PROPERTY_SLICE_TILES_WIDTH) { _local1[(_local5 + (_local3 * PROPERTY_SLICE_TILES_HEIGHT))][(_local6 + (_local4 * PROPERTY_SLICE_TILES_WIDTH))] = worldMap[(_local5 + _local13)][(_local6 + _local12)]; _local6++; }; _local5++; }; _local5 = 0; while (_local5 < PROPERTY_SLICE_TILES_HEIGHT) { _local6 = 0; while (_local6 < PROPERTY_SLICE_TILES_WIDTH) { _local15 = null; switch (Tile.getType(worldSpecial[(_local5 + _local13)][(_local6 + _local12)])){ case Tile.SPECIAL_SPAWN_DOOR: townDoors.push(new Door(((_local6 + (_local4 * PROPERTY_SLICE_TILES_WIDTH)) * TILE_SIZE), ((_local5 + (_local3 * PROPERTY_SLICE_TILES_HEIGHT)) * TILE_SIZE), townDoors.length)); break; case Tile.SPECIAL_SPAWN_NPC: _local16 = new NPC(); _local16.setPos(((_local6 + (_local4 * PROPERTY_SLICE_TILES_WIDTH)) * TILE_SIZE), ((_local5 + (_local3 * PROPERTY_SLICE_TILES_HEIGHT)) * TILE_SIZE)); townNPCs.push(_local16); break; case Tile.SPECIAL_SPAWN_BUSH: case Tile.SPECIAL_SPAWN_ROCK: case Tile.SPECIAL_SPAWN_STOVE: case Tile.SPECIAL_SPAWN_SINK: case Tile.SPECIAL_SPAWN_COUNTER: case Tile.SPECIAL_SPAWN_FRIDGE: case Tile.SPECIAL_SPAWN_TABLE_AND_CHAIRS: case Tile.SPECIAL_SPAWN_TV: case Tile.SPECIAL_SPAWN_COUCH: case Tile.SPECIAL_SPAWN_TABLE: case Tile.SPECIAL_SPAWN_BED: case Tile.SPECIAL_SPAWN_DRESSER: case Tile.SPECIAL_SPAWN_DESK: case Tile.SPECIAL_SPAWN_CAR: case Tile.SPECIAL_SPAWN_TREE: _local15 = new Item(Tile.getType(worldSpecial[(_local5 + _local13)][(_local6 + _local12)])); _local15.setPos(((_local6 + (_local4 * PROPERTY_SLICE_TILES_WIDTH)) * TILE_SIZE), ((_local5 + (_local3 * PROPERTY_SLICE_TILES_HEIGHT)) * TILE_SIZE)); townItems.push(_local15); break; }; if (_local15 != null){ _local17 = 0; while (_local17 < (_local15.hitBox.height / TILE_SIZE)) { _local18 = 0; while (_local18 < (_local15.hitBox.width / TILE_SIZE)) { _local1[((_local17 + _local5) + (_local3 * PROPERTY_SLICE_TILES_HEIGHT))][((_local18 + _local6) + (_local4 * PROPERTY_SLICE_TILES_WIDTH))] = (_local1[((_local17 + _local5) + (_local3 * PROPERTY_SLICE_TILES_HEIGHT))][((_local18 + _local6) + (_local4 * PROPERTY_SLICE_TILES_WIDTH))] | Tile.WALL); _local18++; }; _local17++; }; }; _local6++; }; _local5++; }; _local4++; }; _local3++; }; townMap = new TileMap(screenWidth, screenHeight); townMap.loadMap2D(_local1, _local2, new TownTiles(0, 0), 32); currentMap = townMap; currentDoors = townDoors; currentNPCs = townNPCs; currentItems = townItems; currentSpawns = townSpawns; } private function lineOfSightBresenham(_arg1:int, _arg2:int, _arg3:int, _arg4:int):Boolean{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; _local5 = _arg1; _local6 = _arg3; _local7 = _arg2; _local8 = _arg4; _local9 = (_arg3 - _arg1); _local10 = (_arg4 - _arg2); _local11 = 0; _local12 = 0; _local13 = 0; if (_local10 == 0){ if (_local9 == 0){ return (true); }; if (_local9 < 0){ _local12 = -1; } else { _local12 = 1; }; while (_local5 != _local6) { _local5 = (_local5 + _local12); if (currentMap.hasWall(_local5, _local7)){ return (false); }; }; return (true); }; if (_local9 == 0){ if (_local10 < 0){ _local11 = -1; } else { _local11 = 1; }; while (_local7 != _local8) { _local7 = (_local7 + _local11); if (currentMap.hasWall(_local5, _local7)){ return (false); }; }; return (true); }; if (_local10 < 0){ _local10 = -(_local10); _local11 = -1; } else { _local11 = 1; }; if (_local9 < 0){ _local9 = -(_local9); _local12 = -1; } else { _local12 = 1; }; _local9 = (_local9 * 2); _local10 = (_local10 * 2); if (_local9 > _local10){ _local13 = ((2 * _local10) - _local9); while (_local5 != _local6) { if (_local13 >= 0){ _local7 = (_local7 + _local11); _local13 = (_local13 - _local9); }; _local5 = (_local5 + _local12); _local13 = (_local13 + _local10); if (currentMap.hasWall(_local5, _local7)){ return (false); }; }; } else { _local13 = ((2 * _local9) - _local10); while (_local7 != _local8) { if (_local13 >= 0){ _local5 = (_local5 + _local12); _local13 = (_local13 - _local10); }; _local7 = (_local7 + _local11); _local13 = (_local13 + _local9); if (currentMap.hasWall(_local5, _local7)){ return (false); }; }; }; return (true); } private function updateGameOver():void{ if (isKeyPressed(KeyCodes.KEY_SPACE)){ reset(); popState(); }; } } }//packageSection 27//GameFont (GameFont) package { import flash.text.*; public dynamic class GameFont extends Font { } }//packageSection 28//GameOverImage (GameOverImage) package { import flash.display.*; public dynamic class GameOverImage extends BitmapData { public function GameOverImage(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 29//HitSound (HitSound) package { import flash.media.*; public dynamic class HitSound extends Sound { } }//packageSection 30//House (House) package { public class House { public var itemArray:Array; private var floors:Array; private var currentFloor:int; public var npcArray:Array; public var spawnArray:Array; public function House(){ floors = new Array(); npcArray = new Array(); itemArray = new Array(); spawnArray = new Array(); currentFloor = 0; } public function addNPC(_arg1:NPC):void{ npcArray.push(_arg1); } public function getCurrentFloor():Floor{ return (floors[currentFloor]); } public function addFloor(_arg1:Floor):void{ floors.push(_arg1); } public function addItem(_arg1:int, _arg2:int, _arg3:int):Item{ var _local4:Item; _local4 = new Item(_arg1); _local4.setPos(_arg2, _arg3); itemArray.push(_local4); return (_local4); } } }//packageSection 31//HouseTiles (HouseTiles) package { import flash.display.*; public dynamic class HouseTiles extends BitmapData { public function HouseTiles(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 32//IntroClip (IntroClip) package { import flash.display.*; public dynamic class IntroClip extends MovieClip { public var soundButton:SoundButton; public var btn_skip:SimpleButton; public function IntroClip(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20, 20, frame21, 21, frame22, 22, frame23, 23, frame24, 24, frame25, 25, frame26, 26, frame27, 27, frame28, 28, frame29, 29, frame30, 30, frame31, 31, frame32, 32, frame33, 33, frame34, 34, frame35, 35, frame36, 36, frame37, 37, frame38, 38, frame39, 39, frame40, 40, frame41, 41, frame42, 42, frame43, 43, frame44, 87, frame88); } function frame88(){ stop(); } function frame10(){ stop(); } function frame14(){ stop(); } function frame18(){ stop(); } function frame12(){ stop(); } function frame3(){ stop(); } function frame6(){ stop(); } function frame7(){ stop(); } function frame1(){ stop(); } function frame19(){ stop(); } function frame25(){ stop(); } function frame13(){ stop(); } function frame17(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame22(){ stop(); } function frame16(){ stop(); } function frame8(){ stop(); } function frame9(){ stop(); } function frame2(){ stop(); } function frame15(){ stop(); } function frame23(){ stop(); } function frame28(){ stop(); } function frame36(){ stop(); } function frame20(){ stop(); } function frame21(){ stop(); } function frame31(){ stop(); } function frame34(){ stop(); } function frame27(){ stop(); } function frame11(){ stop(); } function frame35(){ stop(); } function frame24(){ stop(); } function frame37(){ stop(); } function frame30(){ stop(); } function frame29(){ stop(); } function frame33(){ stop(); } function frame40(){ stop(); } function frame41(){ stop(); } function frame43(){ stop(); } function frame39(){ stop(); } function frame26(){ stop(); } function frame32(){ stop(); } function frame42(){ stop(); } function frame44(){ stop(); } function frame38(){ stop(); } } }//packageSection 33//IntroCutscene (IntroCutscene) package { import flash.events.*; import greenpixel.game.*; import greenpixel.sound.*; public class IntroCutscene extends GameLayer { private var theGame:Main; private var cutscene:IntroClip; public function IntroCutscene(_arg1:Main){ super(_arg1); theGame = _arg1; cutscene = new IntroClip(); cutscene.btn_skip.addEventListener(MouseEvent.CLICK, loadGame); cutscene.soundButton.gotoAndStop(0); cutscene.soundButton.buttonMode = true; cutscene.soundButton.addEventListener(MouseEvent.CLICK, toggleSound); addChild(cutscene); cutscene.stop(); } override public function init():void{ stage.focus = stage; SoundManager.instance.playMusic(Main.LAIR_THEME, true); cutscene.gotoAndStop(0); cutscene.soundButton.gotoAndStop((SoundManager.instance.isMute) ? 2 : 1); fadeIn(); } override public function draw():void{ } public function toggleSound(_arg1:MouseEvent):void{ SoundManager.instance.toggleMute(); } override public function update():void{ if (cutscene.currentFrame == cutscene.totalFrames){ cutscene.stop(); stage.focus = stage; theGame.switchLayerGame(); }; if (isAnyKeyPressed()){ cutscene.play(); }; cutscene.soundButton.gotoAndStop((SoundManager.instance.isMute) ? 2 : 1); } private function loadGame(_arg1:MouseEvent):void{ stage.focus = stage; theGame.switchLayerGame(); } } }//packageSection 34//InventoryImage (InventoryImage) package { import flash.display.*; public dynamic class InventoryImage extends BitmapData { public function InventoryImage(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 35//Item (Item) package { import flash.geom.*; import greenpixel.game.world.objects.*; import greenpixel.game.tilemap.*; public class Item extends Character { private var breakAnimIndex:int; public var hitCooldown:int; public var spawnType1:int; public var spawnType2:int; public var isPickedUp:Boolean; private var HIT_COOLDOWN_MAX:int;// = 4 public static var STATE_FIXED:int = 0; public static var CAR_HEALTH = 200; public static var SINK_HEALTH:int = 50; public static var TABLE_HEALTH:int = 25; public static var TYPE_WOOD:int = 1; public static var BUSH_HEALTH:int = 25; public static var FRIDGE_HEALTH:int = 100; public static var TREE_HEALTH = 100; public static var COUNTER_HEALTH:int = 50; public static var STATE_BROKEN:int = 1; public static var STOVE_HEALTH:int = 75; public static var TYPE_ENGINE:int = 0; public static var DRAWER_HEALTH = 50; public static var COUCH_HEALTH:int = 75; public static var TABLE_AND_CHAIR_HEALTH:int = 100; public static var NUM_CAR_TYPES = 7; public static var ROCK_HEALTH:int = 50; public static var DRESSER_HEALTH = 125; public static var TV_HEALTH:int = 150; public static var BED_HEALTH:int = 75; public function Item(_arg1:int){ var _local2:int; HIT_COOLDOWN_MAX = 4; super(); breakAnimIndex = AnimData.TILES_OBJECTS_BROKEN1X1; type = _arg1; isAlive = true; isPickedUp = false; switch (_arg1){ case Tile.SPECIAL_SPAWN_BUSH: _local2 = AnimData.TILES_OBJECTS_BUSH_IDLE; hitBox = new Rectangle(0, 0, 32, 32); health = BUSH_HEALTH; spawnType1 = Spawn.SPAWN_TYPE_WOOD; spawnType2 = Spawn.SPAWN_TYPE_WOOD; break; case Tile.SPECIAL_SPAWN_ROCK: _local2 = AnimData.TILES_OBJECTS_ROCK_IDLE; hitBox = new Rectangle(0, 0, 32, 32); health = ROCK_HEALTH; spawnType1 = Spawn.SPAWN_TYPE_WOOD; spawnType2 = Spawn.SPAWN_TYPE_WOOD; break; case Tile.SPECIAL_SPAWN_STOVE: _local2 = AnimData.TILES_OBJECTS_KITCHEN_NORTH_STOVE; hitBox = new Rectangle(0, 0, 32, 32); health = STOVE_HEALTH; spawnType1 = Spawn.SPAWN_TYPE_METAL; spawnType2 = Spawn.SPAWN_TYPE_METAL; break; case Tile.SPECIAL_SPAWN_SINK: _local2 = AnimData.TILES_OBJECTS_KITCHEN_NORTH_SINK; hitBox = new Rectangle(0, 0, 32, 32); health = SINK_HEALTH; spawnType1 = Spawn.SPAWN_TYPE_METAL; spawnType2 = Spawn.SPAWN_TYPE_METAL; break; case Tile.SPECIAL_SPAWN_COUNTER: _local2 = AnimData.TILES_OBJECTS_KITCHEN_NORTH_COUNTER; hitBox = new Rectangle(0, 0, 32, 32); health = COUNTER_HEALTH; spawnType1 = Spawn.SPAWN_TYPE_METAL; spawnType2 = Spawn.SPAWN_TYPE_METAL; break; case Tile.SPECIAL_SPAWN_FRIDGE: _local2 = AnimData.TILES_OBJECTS_KITCHEN_NORTH_FRIDGE; hitBox = new Rectangle(0, 0, 32, 64); health = FRIDGE_HEALTH; spawnType1 = Spawn.SPAWN_TYPE_COIL; spawnType2 = Spawn.SPAWN_TYPE_STEAK; breakAnimIndex = AnimData.TILES_OBJECTS_BROKEN1X2; break; case Tile.SPECIAL_SPAWN_TABLE_AND_CHAIRS: _local2 = AnimData.TILES_OBJECTS_KITCHEN_DINING; hitBox = new Rectangle(0, 0, 96, 32); health = TABLE_AND_CHAIR_HEALTH; spawnType1 = Spawn.SPAWN_TYPE_WOOD; spawnType2 = Spawn.SPAWN_TYPE_METAL; breakAnimIndex = AnimData.TILES_OBJECTS_BROKEN3X1; break; case Tile.SPECIAL_SPAWN_TV: _local2 = AnimData.TILES_OBJECTS_DEN_NORTH_TV; hitBox = new Rectangle(0, 0, 64, 64); health = TV_HEALTH; spawnType1 = Spawn.SPAWN_TYPE_CIRCUIT; spawnType2 = Spawn.SPAWN_TYPE_METAL; breakAnimIndex = AnimData.TILES_OBJECTS_BROKEN2X2; break; case Tile.SPECIAL_SPAWN_COUCH: _local2 = AnimData.TILES_OBJECTS_DEN_SOUTH_COUCH; hitBox = new Rectangle(0, 0, 96, 32); health = COUCH_HEALTH; spawnType1 = Spawn.SPAWN_TYPE_COIL; spawnType2 = Spawn.SPAWN_TYPE_WOOD; breakAnimIndex = AnimData.TILES_OBJECTS_BROKEN3X1; break; case Tile.SPECIAL_SPAWN_TABLE: _local2 = AnimData.TILES_OBJECTS_DEN_TABLE; hitBox = new Rectangle(0, 0, 32, 32); health = TABLE_HEALTH; spawnType1 = Spawn.SPAWN_TYPE_WOOD; spawnType2 = Spawn.SPAWN_TYPE_WOOD; break; case Tile.SPECIAL_SPAWN_BED: _local2 = AnimData.TILES_OBJECTS_BEDROOM_BED; hitBox = new Rectangle(0, 0, 32, 64); health = BED_HEALTH; spawnType1 = Spawn.SPAWN_TYPE_WOOD; spawnType2 = Spawn.SPAWN_TYPE_COIL; breakAnimIndex = AnimData.TILES_OBJECTS_BROKEN1X2; break; case Tile.SPECIAL_SPAWN_DRESSER: _local2 = AnimData.TILES_OBJECTS_BEDROOM_NORTH_DRESSER; hitBox = new Rectangle(0, 0, 64, 64); health = DRESSER_HEALTH; spawnType1 = Spawn.SPAWN_TYPE_WOOD; spawnType2 = Spawn.SPAWN_TYPE_WOOD; breakAnimIndex = AnimData.TILES_OBJECTS_BROKEN2X2; break; case Tile.SPECIAL_SPAWN_DESK: _local2 = AnimData.TILES_OBJECTS_BEDROOM_NORTH_DRAWER; hitBox = new Rectangle(0, 0, 64, 32); health = DRAWER_HEALTH; spawnType1 = Spawn.SPAWN_TYPE_WOOD; spawnType2 = Spawn.SPAWN_TYPE_WOOD; breakAnimIndex = AnimData.TILES_OBJECTS_BROKEN2X1; break; case Tile.SPECIAL_SPAWN_CAR: _local2 = (AnimData.TILES_OBJECTS_CAR01_IDLE + int((Math.random() * NUM_CAR_TYPES))); hitBox = new Rectangle(0, 0, 64, 96); health = CAR_HEALTH; spawnType1 = Spawn.SPAWN_TYPE_METAL; spawnType2 = Spawn.SPAWN_TYPE_CIRCUIT; breakAnimIndex = AnimData.TILES_OBJECTS_BROKEN2X3; break; case Tile.SPECIAL_SPAWN_TREE: _local2 = AnimData.TILES_OBJECTS_TREE_IDLE; hitBox = new Rectangle(0, 0, 96, 96); health = TREE_HEALTH; spawnType1 = Spawn.SPAWN_TYPE_WOOD; spawnType2 = Spawn.SPAWN_TYPE_APPLE; breakAnimIndex = AnimData.TILES_OBJECTS_BROKEN3X3; break; }; state = STATE_FIXED; setAnim(AnimData.TILES_OBJECTS, _local2); } public function breakYoself():void{ health = 0; isAlive = false; setAnim(AnimData.TILES_OBJECTS, breakAnimIndex); state = Item.STATE_BROKEN; } public function hit():void{ hitCooldown = HIT_COOLDOWN_MAX; } } }//packageSection 36//ItemImages (ItemImages) package { import flash.display.*; public dynamic class ItemImages extends BitmapData { public function ItemImages(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 37//LairTheme (LairTheme) package { import flash.media.*; public dynamic class LairTheme extends Sound { } }//packageSection 38//LaserSound (LaserSound) package { import flash.media.*; public dynamic class LaserSound extends Sound { } }//packageSection 39//LifeImage (LifeImage) package { import flash.display.*; public dynamic class LifeImage extends BitmapData { public function LifeImage(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 40//LootSound (LootSound) package { import flash.media.*; public dynamic class LootSound extends Sound { } }//packageSection 41//Main (Main) package { import flash.display.*; import greenpixel.game.*; public class Main extends GameBase { public var outro:OutroCutscene; public var SCREEN_WIDTH:int;// = 640 private var adClip:MovieClip; private var adIsFinished:Boolean;// = true var _mochiads_game_id:String;// = "6ccc17658bbc0d83" public var menu:Menu; public var splash:Splash; public var SCREEN_HEIGHT:int;// = 480 public var intro:IntroCutscene; private var siteLocks:Array; public var game:Game; public static var LASER_EFFECT = 3; public static var LOOT_EFFECT = 2; public static var MENU_THEME = 0; public static var LAIR_THEME = 1; public static var SWING_EFFECT = 1; public static var WORLD_THEME = 2; public static var HIT_EFFECT = 0; public function Main(){ SCREEN_WIDTH = 640; SCREEN_HEIGHT = 480; _mochiads_game_id = "6ccc17658bbc0d83"; adIsFinished = true; siteLocks = ["http://(.*\\.)?armorgames.com.*", "http://(.*\\.)?greenpixel.ca.*"]; super(SCREEN_WIDTH, SCREEN_HEIGHT, false, siteLocks); addAnimBundle(AnimData.BLUE_JELLYFISH_DATA, new BlueJellyfish(0, 0)); addAnimBundle(AnimData.MESSAGE_WINDOW_DATA, new MessageBoxes(0, 0)); addAnimBundle(AnimData.SPRITE_MADSCIENTIST_DATA, new PlayerImage(0, 0)); addAnimBundle(AnimData.SPRITE_NPC01_DATA, new NPCImage0(0, 0)); addAnimBundle(AnimData.SPRITE_NPC02_DATA, new NPCImage1(0, 0)); addAnimBundle(AnimData.SPRITE_NPC03_DATA, new NPCImage2(0, 0)); addAnimBundle(AnimData.SPRITE_NPC04_DATA, new NPCImage3(0, 0)); addAnimBundle(AnimData.SPRITE_NPC05_DATA, new NPCImage4(0, 0)); addAnimBundle(AnimData.ANIM_SET_8_DATA, new BlueJellyfish(0, 0)); addAnimBundle(AnimData.ANIM_SET_8_DATA, new BlueJellyfish(0, 0)); addAnimBundle(AnimData.ANIM_SET_8_DATA, new BlueJellyfish(0, 0)); addAnimBundle(AnimData.ANIM_SET_8_DATA, new BlueJellyfish(0, 0)); addAnimBundle(AnimData.ANIM_SET_8_DATA, new BlueJellyfish(0, 0)); addAnimBundle(AnimData.ANIM_SET_8_DATA, new BlueJellyfish(0, 0)); addAnimBundle(AnimData.TILES_OBJECTS_DATA, new ObjectImages(0, 0)); addAnimBundle(AnimData.ITEMS_DATA, new ItemImages(0, 0)); addAnimBundle(AnimData.UI_INVENTORY_DATA, new InventoryImage(0, 0)); addAnimBundle(AnimData.UI_SHORTCUTS_DATA, new ShortcutImage(0, 0)); addAnimBundle(AnimData.UI_LIFE_DATA, new LifeImage(0, 0)); addAnimBundle(AnimData.UI_SHORTCUT_ICONS_DATA, new ShortcutIconsImage(0, 0)); addAnimBundle(AnimData.UI_DEATHSCREEN_DATA, new GameOverImage(0, 0)); addMusic(new MenuTheme()); addMusic(new LairTheme()); addMusic(new WorldTheme()); addEffect(new HitSound()); addEffect(new SwingSound()); addEffect(new LootSound()); addEffect(new LaserSound()); splash = new Splash(this); menu = new Menu(this); game = new Game(this); intro = new IntroCutscene(this); outro = new OutroCutscene(this); pushLayer(splash); } private function adLoaded(_arg1:Number, _arg2:Number):void{ adIsFinished = false; } public function switchLayerGame():void{ fadeAndPushLayer(game); } public function switchLayerSplash():void{ fadeAndPushLayer(splash); } public function switchLayerOutro():void{ fadeAndPushLayer(outro); } public function switchLayerMenu():void{ fadeAndPushLayer(menu); } private function adFinished():void{ removeChild(adClip); switchLayerMenu(); } public function removeAd():void{ } public function switchLayerIntro():void{ fadeAndPushLayer(intro); } private function adStart():void{ adIsFinished = false; } } }//packageSection 42//MainMenuClip (MainMenuClip) package { import flash.display.*; public dynamic class MainMenuClip extends MovieClip { public var likeUsButton:MovieClip; public var soundButton:SoundButton; public var twitterButton:SimpleButton; public var armorGamesButton:MovieClip; public var moreGamesButton:MovieClip; public var btn_start:SimpleButton; } }//packageSection 43//Maps (Maps) package { public class Maps { public static var HOUSES_MAP:Array = [0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 30, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 10, 0, 0, 0, 0, 0, 11, 0, 11, 0, 0, 0, 0, 0, 11, 0, 12, 0, 0, 0, 0, 0, 11, 0, 12, 0, 0, 0, 0, 0, 11, 0, 13, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 11, 0, 18, 0, 0, 0, 0, 0, 11, 0, 20, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 19, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 18, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 19, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 17, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 18, 0, 0, 0, 0, 0, 11, 0, 20, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 19, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 10, 0, 0, 0, 0, 0, 11, 0, 11, 0, 0, 0, 0, 0, 11, 0, 12, 0, 0, 0, 0, 0, 11, 0, 12, 0, 0, 0, 0, 0, 11, 0, 12, 0, 0, 0, 0, 0, 11, 0, 13, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 14, 4, 18, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 19, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 18, 4, 13, 0, 0, 0, 0, 0, 15, 0, 12, 0, 0, 0, 0, 0, 15, 0, 11, 0, 0, 0, 0, 0, 15, 0, 10, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 14, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, 1, 1, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 7, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 1, 2, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1, 1, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 1, 2, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 14, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 0, 7, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 14, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 7, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1, 3, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 5, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 6, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 7, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 5, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 6, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 8, 4, 0, 0, 0, 0, 0, 1, 9, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 11, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 11, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 12, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 1, 13, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 14, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1, 3, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 5, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 6, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 15, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 5, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 6, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 8, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1, 9, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 12, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 1, 13, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 16, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 12, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 1, 13, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 14, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 20, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 17, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 15, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 0, 15, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 1, 18, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 20, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 10, 0, 0, 0, 0, 0, 15, 0, 11, 0, 0, 0, 0, 0, 15, 0, 13, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 20, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 15, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 15, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 19, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, 1, 1, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 17, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 1, 18, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 14, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 1, 2, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 11, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 17, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1, 1, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 17, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 1, 2, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 16, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 14, 4, 16, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 7, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 16, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 16, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 7, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 2, 1, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 3, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 4, 4, 6, 0, 0, 0, 0, 2, 5, 0, 0, 0, 0, 0, 0, 2, 6, 4, 0, 0, 0, 0, 0, 2, 7, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 3, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 8, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 2, 9, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 11, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 12, 4, 6, 0, 0, 0, 0, 2, 13, 0, 0, 0, 0, 0, 0, 2, 14, 4, 0, 0, 0, 0, 0, 2, 11, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 15, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 2, 1, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 3, 4, 0, 0, 0, 0, 0, 2, 4, 4, 6, 0, 0, 0, 0, 2, 16, 0, 0, 0, 0, 0, 0, 2, 6, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 7, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 3, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 3, 4, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 8, 4, 0, 0, 0, 0, 0, 2, 9, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 11, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 17, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 12, 4, 6, 0, 0, 0, 0, 2, 18, 0, 0, 0, 0, 0, 0, 2, 14, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 17, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 11, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 15, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 2, 19, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 2, 4, 0, 0, 0, 0, 0, 3, 3, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 5, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 6, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 20, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 19, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 20, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 18, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 10, 0, 0, 0, 0, 0, 11, 0, 11, 0, 0, 0, 0, 0, 11, 0, 12, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 13, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 19, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 18, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 2, 19, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 13, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 13, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 3, 2, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 3, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 6, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 14, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 15, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 10, 0, 0, 0, 0, 0, 15, 0, 11, 0, 0, 0, 0, 0, 15, 0, 12, 0, 0, 0, 0, 0, 15, 0, 13, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 0, 0, 0, 0, 0, 11, 0, 12, 0, 0, 0, 0, 0, 11, 0, 12, 0, 0, 0, 0, 0, 11, 0, 13, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 16, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 15, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 7, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 17, 4, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 14, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 16, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 17, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 18, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 15, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 19, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 19, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 15, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 14, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 15, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 1, 4, 0, 0, 0, 0, 0, 4, 1, 4, 0, 0, 0, 0, 0, 4, 2, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 4, 3, 4, 0, 0, 0, 0, 0, 4, 1, 4, 0, 0, 0, 0, 0, 4, 1, 4, 0, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 4, 5, 4, 0, 0, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 4, 7, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 4, 8, 4, 0, 0, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 4, 9, 4, 0, 0, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 4, 7, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 4, 8, 4, 0, 0, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 4, 10, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 15, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 10, 0, 0, 0, 0, 0, 15, 0, 11, 0, 0, 0, 0, 0, 15, 0, 13, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 15, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 20, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 20, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 20, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 14, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 14, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 16, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 19, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 16, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 19, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 17, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 19, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 16, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 14, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 17, 4, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0, 11, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 17, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 18, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 16, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 7, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 17, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 16, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 18, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 18, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 7, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 7, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 16, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 4, 11, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 13, 4, 0, 0, 0, 0, 0, 4, 14, 4, 6, 0, 0, 0, 0, 4, 15, 0, 0, 0, 0, 0, 0, 4, 16, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 17, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 13, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 18, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 4, 19, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 2, 3, 4, 0, 0, 0, 0, 0, 5, 1, 4, 6, 0, 0, 0, 0, 5, 2, 0, 0, 0, 0, 0, 0, 5, 3, 4, 0, 0, 0, 0, 0, 2, 3, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 4, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 4, 11, 4, 0, 0, 0, 0, 0, 4, 14, 4, 6, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 4, 16, 4, 0, 0, 0, 0, 0, 4, 17, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 17, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 13, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 4, 18, 4, 0, 0, 0, 0, 0, 4, 19, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 2, 3, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 6, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 1, 4, 6, 0, 0, 0, 0, 5, 7, 0, 0, 0, 0, 0, 0, 5, 3, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 2, 3, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 4, 4, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0]; public static var WORLD_MAP:Array = [0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 50, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 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, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 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, 8, 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, 3, 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, 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, 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, 2, 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, 1, 0, 0, 0, 0, 0, 0, 0, 2, 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, 3, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 9, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 10, 4, 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 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, 7, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 11, 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, 5, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 9, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 4, 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, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 17, 4, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, 1, 1, 4, 0, 0, 0, 0, 0, 1, 2, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 1, 3, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 5, 4, 0, 0, 0, 0, 0, 1, 6, 4, 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, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 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, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 17, 4, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, 1, 7, 4, 0, 0, 0, 0, 0, 1, 2, 4, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 8, 4, 0, 0, 0, 0, 0, 1, 9, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 11, 4, 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, 4, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 4, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 1, 13, 4, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 1, 14, 4, 0, 0, 0, 0, 0, 1, 15, 4, 0, 0, 0, 0, 0, 1, 16, 4, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 17, 4, 0, 0, 0, 0, 0, 1, 18, 4, 0, 0, 0, 0, 0, 1, 19, 4, 0, 0, 0, 0, 0, 2, 0, 4, 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, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 4, 0, 0, 0, 0, 0, 1, 9, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 22, 0, 0, 0, 0, 0, 3, 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, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 8, 4, 0, 0, 0, 0, 0, 1, 9, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 4, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 1, 13, 4, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 1, 14, 4, 0, 0, 0, 0, 0, 2, 1, 4, 0, 0, 0, 0, 0, 1, 16, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 3, 4, 0, 0, 0, 0, 0, 2, 4, 4, 0, 0, 0, 0, 0, 2, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 0, 0, 0, 0, 0, 1, 13, 4, 0, 0, 0, 0, 0, 2, 6, 4, 0, 0, 0, 0, 0, 2, 7, 4, 0, 0, 0, 0, 0, 2, 8, 4, 0, 0, 0, 0, 0, 2, 9, 4, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 11, 4, 0, 0, 0, 0, 0, 2, 12, 4, 0, 0, 0, 0, 0, 2, 13, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 22, 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, 2, 0, 8, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 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, 2, 2, 4, 0, 0, 0, 0, 0, 2, 3, 4, 0, 0, 0, 0, 0, 2, 4, 4, 0, 0, 0, 0, 0, 2, 5, 4, 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, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 2, 3, 4, 0, 0, 0, 0, 0, 2, 4, 4, 0, 0, 0, 0, 0, 2, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 0, 0, 0, 0, 0, 1, 13, 4, 0, 0, 0, 0, 0, 2, 14, 4, 0, 0, 0, 0, 0, 2, 15, 4, 0, 0, 0, 0, 0, 2, 16, 4, 0, 0, 0, 0, 0, 2, 17, 4, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 2, 18, 4, 0, 0, 0, 0, 0, 2, 19, 4, 0, 0, 0, 0, 0, 2, 19, 4, 0, 0, 0, 0, 0, 3, 0, 4, 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, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 0, 0, 0, 0, 0, 2, 6, 4, 0, 0, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 3, 2, 4, 0, 0, 0, 0, 0, 3, 3, 4, 0, 0, 0, 0, 0, 2, 8, 4, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 5, 4, 0, 0, 0, 0, 0, 3, 5, 4, 0, 0, 0, 0, 0, 3, 6, 4, 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 18, 4, 0, 0, 0, 0, 0, 2, 19, 4, 0, 0, 0, 0, 0, 2, 19, 4, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 2, 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, 2, 0, 7, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 2, 18, 4, 0, 0, 0, 0, 0, 2, 19, 4, 0, 0, 0, 0, 0, 2, 19, 4, 0, 0, 0, 0, 0, 3, 0, 4, 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, 1, 17, 4, 0, 0, 0, 0, 0, 2, 14, 4, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 3, 8, 4, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 2, 16, 4, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 3, 12, 4, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 13, 4, 0, 0, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 3, 14, 4, 0, 0, 0, 0, 0, 3, 2, 4, 0, 0, 0, 0, 0, 3, 14, 4, 0, 0, 0, 0, 0, 3, 3, 4, 0, 0, 0, 0, 0, 3, 15, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 4, 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, 3, 10, 4, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 16, 4, 0, 0, 0, 0, 0, 3, 7, 4, 0, 0, 0, 0, 0, 3, 17, 4, 0, 0, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 3, 17, 4, 0, 0, 0, 0, 0, 3, 9, 4, 0, 0, 0, 0, 0, 3, 18, 4, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 19, 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 1, 4, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 4, 0, 0, 0, 0, 0, 3, 2, 4, 0, 0, 0, 0, 0, 3, 2, 4, 0, 0, 0, 0, 0, 3, 2, 4, 0, 0, 0, 0, 0, 3, 2, 4, 0, 0, 0, 0, 0, 3, 2, 4, 0, 0, 0, 0, 0, 4, 3, 4, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 19, 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 1, 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 1, 4, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 4, 5, 4, 0, 0, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 1, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 4, 0, 0, 0, 0, 0, 4, 8, 4, 0, 0, 0, 0, 0, 4, 9, 4, 0, 0, 0, 0, 0, 4, 10, 4, 0, 0, 0, 0, 0, 4, 11, 4, 0, 0, 0, 0, 0, 4, 8, 4, 0, 0, 0, 0, 0, 4, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 13, 0, 0, 0, 0, 0, 0, 4, 14, 0, 0, 0, 0, 0, 0, 4, 14, 0, 0, 0, 0, 0, 0, 4, 15, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 16, 4, 0, 0, 0, 0, 0, 4, 17, 4, 0, 0, 0, 0, 0, 4, 17, 4, 0, 0, 0, 0, 0, 4, 17, 4, 0, 0, 0, 0, 0, 4, 17, 4, 0, 0, 0, 0, 0, 4, 17, 4, 0, 0, 0, 0, 0, 4, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 13, 0, 0, 0, 0, 0, 0, 4, 14, 0, 0, 0, 0, 0, 0, 4, 14, 0, 0, 0, 0, 0, 0, 4, 15, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 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, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 4, 13, 0, 0, 0, 0, 0, 0, 4, 14, 0, 0, 0, 0, 0, 0, 4, 14, 0, 0, 0, 0, 0, 0, 4, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 4, 5, 4, 0, 0, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 4, 19, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 1, 4, 0, 0, 0, 0, 0, 5, 2, 4, 0, 0, 0, 0, 0, 5, 3, 4, 0, 0, 0, 0, 0, 1, 2, 4, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 4, 0, 0, 0, 0, 0, 5, 8, 4, 0, 0, 0, 0, 0, 5, 9, 4, 6, 0, 0, 0, 0, 5, 10, 0, 0, 0, 0, 0, 0, 5, 11, 4, 0, 0, 0, 0, 0, 5, 8, 4, 0, 0, 0, 0, 0, 5, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 21, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 16, 4, 0, 0, 0, 0, 0, 5, 17, 4, 0, 0, 0, 0, 0, 5, 18, 4, 0, 0, 0, 0, 0, 5, 19, 4, 0, 0, 0, 0, 0, 6, 0, 4, 0, 0, 0, 0, 0, 5, 17, 4, 0, 0, 0, 0, 0, 6, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 21, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 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, 5, 13, 0, 21, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 4, 19, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 1, 4, 0, 0, 0, 0, 0, 5, 2, 4, 0, 0, 0, 0, 0, 5, 3, 4, 0, 0, 0, 0, 0, 1, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 6, 3, 4, 0, 0, 0, 0, 0, 5, 2, 4, 0, 0, 0, 0, 0, 6, 4, 4, 0, 0, 0, 0, 0, 6, 5, 4, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 5, 13, 0, 21, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 4, 0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, 6, 8, 0, 0, 0, 0, 0, 0, 6, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 4, 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 10, 4, 0, 0, 0, 0, 0, 6, 11, 4, 0, 0, 0, 0, 0, 6, 12, 4, 6, 0, 0, 0, 0, 6, 13, 0, 0, 0, 0, 0, 0, 6, 14, 4, 0, 0, 0, 0, 0, 6, 11, 4, 0, 0, 0, 0, 0, 6, 15, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 2, 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, 3, 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, 4, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 6, 3, 4, 0, 0, 0, 0, 0, 5, 2, 4, 0, 0, 0, 0, 0, 6, 16, 4, 0, 0, 0, 0, 0, 6, 5, 4, 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, 1, 8, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 6, 17, 4, 0, 0, 0, 0, 0, 6, 18, 4, 0, 0, 0, 0, 0, 6, 19, 4, 0, 0, 0, 0, 0, 7, 0, 4, 0, 0, 0, 0, 0, 1, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 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, 7, 1, 4, 0, 0, 0, 0, 0, 7, 2, 4, 0, 0, 0, 0, 0, 7, 3, 0, 0, 0, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, 7, 5, 0, 0, 0, 0, 0, 0, 7, 6, 4, 0, 0, 0, 0, 0, 7, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 0, 0, 7, 9, 0, 0, 0, 0, 0, 0, 7, 9, 0, 0, 0, 0, 0, 0, 7, 9, 0, 0, 0, 0, 0, 0, 7, 9, 0, 0, 0, 0, 0, 0, 7, 9, 0, 0, 0, 0, 0, 0, 7, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 22, 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, 3, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 8, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 7, 11, 4, 0, 0, 0, 0, 0, 7, 12, 4, 0, 0, 0, 0, 0, 7, 13, 4, 0, 0, 0, 0, 0, 7, 14, 4, 0, 0, 0, 0, 0, 1, 11, 4, 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, 1, 8, 4, 0, 0, 0, 0, 0, 6, 17, 4, 0, 0, 0, 0, 0, 7, 15, 4, 0, 0, 0, 0, 0, 7, 16, 4, 0, 0, 0, 0, 0, 7, 17, 4, 0, 0, 0, 0, 0, 6, 19, 4, 0, 0, 0, 0, 0, 1, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 11, 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, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 19, 4, 0, 0, 0, 0, 0, 8, 0, 4, 0, 0, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 0, 8, 3, 0, 0, 0, 0, 0, 0, 8, 4, 4, 0, 0, 0, 0, 0, 8, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 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, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 8, 6, 0, 0, 0, 0, 0, 0, 1, 8, 4, 0, 0, 0, 0, 0, 7, 11, 4, 0, 0, 0, 0, 0, 8, 7, 4, 0, 0, 0, 0, 0, 8, 8, 4, 0, 0, 0, 0, 0, 8, 9, 4, 0, 0, 0, 0, 0, 7, 13, 4, 0, 0, 0, 0, 0, 1, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 10, 4, 0, 0, 0, 0, 0, 8, 11, 4, 0, 0, 0, 0, 0, 8, 12, 4, 0, 0, 0, 0, 0, 7, 16, 4, 0, 0, 0, 0, 0, 8, 12, 4, 0, 0, 0, 0, 0, 8, 13, 4, 0, 0, 0, 0, 0, 8, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 21, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 4, 0, 0, 0, 0, 0, 0, 5, 13, 0, 21, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 8, 15, 4, 0, 0, 0, 0, 0, 8, 16, 4, 0, 0, 0, 0, 0, 8, 17, 0, 0, 0, 0, 0, 0, 8, 8, 4, 0, 0, 0, 0, 0, 8, 17, 4, 0, 0, 0, 0, 0, 8, 18, 4, 0, 0, 0, 0, 0, 8, 19, 4, 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, 9, 0, 4, 0, 0, 0, 0, 0, 9, 1, 4, 0, 0, 0, 0, 0, 9, 2, 4, 0, 0, 0, 0, 0, 9, 3, 4, 0, 0, 0, 0, 0, 9, 4, 4, 0, 0, 0, 0, 0, 9, 1, 4, 0, 0, 0, 0, 0, 9, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 7, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 11, 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, 4, 0, 0, 0, 0, 0, 0, 7, 18, 0, 7, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 9, 6, 4, 0, 0, 0, 0, 0, 9, 7, 4, 0, 0, 0, 0, 0, 9, 8, 4, 0, 0, 0, 0, 0, 9, 9, 4, 0, 0, 0, 0, 0, 9, 10, 4, 0, 0, 0, 0, 0, 9, 7, 4, 0, 0, 0, 0, 0, 9, 11, 4, 0, 0, 0, 0, 0, 0, 11, 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, 9, 12, 4, 0, 0, 0, 0, 0, 9, 13, 4, 0, 0, 0, 0, 0, 9, 14, 4, 6, 0, 0, 0, 0, 9, 15, 0, 0, 0, 0, 0, 0, 9, 16, 4, 0, 0, 0, 0, 0, 9, 13, 4, 0, 0, 0, 0, 0, 9, 17, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 7, 18, 0, 0, 0, 0, 0, 0, 0, 3, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 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, 4, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 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, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 9, 18, 4, 0, 0, 0, 0, 0, 9, 19, 4, 0, 0, 0, 0, 0, 10, 0, 4, 6, 0, 0, 0, 0, 10, 1, 0, 0, 0, 0, 0, 0, 10, 2, 4, 0, 0, 0, 0, 0, 9, 19, 4, 0, 0, 0, 0, 0, 10, 3, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 18, 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, 10, 4, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 10, 5, 0, 0, 0, 0, 0, 0, 0, 4, 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 18, 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, 10, 4, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 10, 5, 0, 0, 0, 0, 0, 0, 0, 1, 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, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 10, 5, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 7, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 10, 5, 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, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 7, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 4, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 8, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 4, 0, 8, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 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, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 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, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 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, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 7, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 11, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 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, 3, 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, 3, 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, 11, 0, 22, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 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, 11, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 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, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 3, 0, 0, 0, 0, 0, 0, 0, 4, 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, 3, 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, 3, 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 8, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 11, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 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, 3, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 10, 8, 4, 0, 0, 0, 0, 0, 10, 9, 4, 0, 0, 0, 0, 0, 10, 10, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 10, 4, 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, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 9, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 1, 3, 4, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 0, 0, 1, 5, 4, 0, 0, 0, 0, 0, 1, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 22, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 10, 11, 4, 0, 0, 0, 0, 0, 10, 12, 4, 0, 0, 0, 0, 0, 10, 13, 4, 0, 0, 0, 0, 0, 10, 14, 4, 0, 0, 0, 0, 0, 10, 15, 4, 0, 0, 0, 0, 0, 1, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 17, 4, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, 1, 7, 4, 0, 0, 0, 0, 0, 1, 2, 4, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 17, 4, 0, 0, 0, 0, 0, 1, 18, 4, 0, 0, 0, 0, 0, 1, 19, 4, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 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, 11, 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, 5, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 10, 16, 4, 0, 0, 0, 0, 0, 4, 5, 4, 0, 0, 0, 0, 0, 10, 17, 4, 0, 0, 0, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 10, 18, 4, 0, 0, 0, 0, 0, 10, 12, 4, 0, 0, 0, 0, 0, 10, 19, 4, 0, 0, 0, 0, 0, 10, 13, 4, 0, 0, 0, 0, 0, 11, 0, 4, 0, 0, 0, 0, 0, 6, 4, 4, 0, 0, 0, 0, 0, 11, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 4, 0, 0, 0, 0, 0, 0, 18, 4, 0, 0, 0, 0, 0, 1, 13, 4, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 1, 14, 4, 0, 0, 0, 0, 0, 2, 1, 4, 0, 0, 0, 0, 0, 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 10, 4, 0, 0, 0, 0, 0, 2, 11, 4, 0, 0, 0, 0, 0, 2, 12, 4, 0, 0, 0, 0, 0, 2, 13, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 2, 0, 0, 0, 0, 0, 0, 0, 2, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 4, 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, 12, 4, 0, 0, 0, 0, 0, 0, 13, 4, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 0, 0, 0, 0, 15, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 11, 2, 4, 0, 0, 0, 0, 0, 11, 3, 4, 0, 0, 0, 0, 0, 5, 1, 4, 0, 0, 0, 0, 0, 11, 4, 4, 0, 0, 0, 0, 0, 11, 5, 4, 0, 0, 0, 0, 0, 1, 2, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 4, 0, 0, 0, 0, 0, 11, 7, 4, 0, 0, 0, 0, 0, 11, 8, 4, 0, 0, 0, 0, 0, 11, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 10, 4, 0, 0, 0, 0, 0, 10, 19, 4, 0, 0, 0, 0, 0, 11, 11, 4, 0, 0, 0, 0, 0, 11, 12, 4, 0, 0, 0, 0, 0, 11, 13, 4, 0, 0, 0, 0, 0, 11, 14, 4, 0, 0, 0, 0, 0, 11, 15, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 8, 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, 1, 17, 4, 0, 0, 0, 0, 0, 1, 13, 4, 0, 0, 0, 0, 0, 11, 16, 4, 0, 0, 0, 0, 0, 11, 17, 4, 0, 0, 0, 0, 0, 11, 18, 4, 0, 0, 0, 0, 0, 11, 19, 4, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 4, 0, 0, 0, 0, 0, 3, 5, 4, 0, 0, 0, 0, 0, 3, 5, 0, 0, 0, 0, 0, 0, 3, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 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, 3, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 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, 1, 8, 4, 0, 0, 0, 0, 0, 1, 9, 4, 0, 0, 0, 0, 0, 1, 10, 4, 0, 0, 0, 0, 0, 1, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 4, 0, 0, 0, 0, 0, 11, 3, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 5, 1, 4, 0, 0, 0, 0, 0, 5, 2, 4, 0, 0, 0, 0, 0, 12, 1, 4, 0, 0, 0, 0, 0, 12, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 11, 10, 4, 0, 0, 0, 0, 0, 12, 3, 4, 0, 0, 0, 0, 0, 12, 4, 4, 0, 0, 0, 0, 0, 11, 15, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 10, 4, 0, 0, 0, 0, 0, 11, 11, 4, 0, 0, 0, 0, 0, 12, 5, 4, 0, 0, 0, 0, 0, 12, 6, 4, 0, 0, 0, 0, 0, 12, 7, 4, 0, 0, 0, 0, 0, 11, 13, 4, 0, 0, 0, 0, 0, 11, 15, 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 17, 4, 0, 0, 0, 0, 0, 11, 16, 4, 0, 0, 0, 0, 0, 12, 8, 4, 0, 0, 0, 0, 0, 12, 9, 4, 0, 0, 0, 0, 0, 12, 10, 4, 0, 0, 0, 0, 0, 11, 18, 4, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 11, 0, 0, 0, 0, 0, 0, 0, 3, 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, 2, 2, 4, 0, 0, 0, 0, 0, 2, 3, 4, 0, 0, 0, 0, 0, 2, 4, 4, 0, 0, 0, 0, 0, 2, 5, 4, 8, 0, 0, 0, 0, 0, 11, 0, 8, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 8, 4, 0, 0, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 12, 11, 4, 0, 0, 0, 0, 0, 12, 12, 4, 0, 0, 0, 0, 0, 12, 13, 4, 0, 0, 0, 0, 0, 12, 14, 4, 0, 0, 0, 0, 0, 1, 11, 4, 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, 12, 15, 4, 0, 0, 0, 0, 0, 12, 16, 4, 0, 0, 0, 0, 0, 12, 17, 4, 0, 0, 0, 0, 0, 12, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 19, 4, 0, 0, 0, 0, 0, 12, 5, 4, 0, 0, 0, 0, 0, 3, 14, 4, 0, 0, 0, 0, 0, 12, 6, 4, 0, 0, 0, 0, 0, 3, 14, 4, 0, 0, 0, 0, 0, 12, 7, 4, 0, 0, 0, 0, 0, 13, 0, 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 13, 1, 4, 0, 0, 0, 0, 0, 12, 8, 4, 0, 0, 0, 0, 0, 3, 14, 4, 0, 0, 0, 0, 0, 12, 9, 4, 0, 0, 0, 0, 0, 3, 14, 4, 0, 0, 0, 0, 0, 12, 10, 4, 0, 0, 0, 0, 0, 13, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 1, 4, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 2, 18, 4, 0, 0, 0, 0, 0, 2, 19, 4, 0, 0, 0, 0, 0, 2, 19, 4, 0, 0, 0, 0, 0, 3, 0, 4, 8, 0, 0, 0, 0, 0, 11, 0, 8, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 8, 4, 0, 0, 0, 0, 0, 12, 11, 4, 0, 0, 0, 0, 0, 13, 3, 4, 0, 0, 0, 0, 0, 13, 4, 4, 0, 0, 0, 0, 0, 13, 5, 4, 0, 0, 0, 0, 0, 12, 13, 4, 0, 0, 0, 0, 0, 1, 11, 4, 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, 13, 6, 4, 0, 0, 0, 0, 0, 13, 7, 4, 0, 0, 0, 0, 0, 13, 7, 4, 0, 0, 0, 0, 0, 13, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 9, 4, 0, 0, 0, 0, 0, 13, 10, 4, 0, 0, 0, 0, 0, 13, 11, 4, 0, 0, 0, 0, 0, 13, 12, 4, 0, 0, 0, 0, 0, 13, 13, 4, 0, 0, 0, 0, 0, 13, 10, 4, 0, 0, 0, 0, 0, 13, 14, 4, 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, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 13, 15, 4, 0, 0, 0, 0, 0, 12, 9, 4, 0, 0, 0, 0, 0, 12, 9, 4, 0, 0, 0, 0, 0, 12, 9, 4, 0, 0, 0, 0, 0, 12, 9, 4, 0, 0, 0, 0, 0, 12, 9, 4, 0, 0, 0, 0, 0, 13, 16, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 1, 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, 3, 10, 4, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 17, 4, 0, 0, 0, 0, 0, 13, 3, 4, 0, 0, 0, 0, 0, 3, 17, 4, 0, 0, 0, 0, 0, 13, 4, 4, 0, 0, 0, 0, 0, 3, 17, 4, 0, 0, 0, 0, 0, 13, 5, 4, 0, 0, 0, 0, 0, 13, 18, 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 10, 4, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, 0, 0, 3, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 13, 19, 4, 0, 0, 0, 0, 0, 14, 0, 4, 0, 0, 0, 0, 0, 14, 1, 4, 6, 0, 0, 0, 0, 14, 2, 0, 0, 0, 0, 0, 0, 14, 3, 4, 0, 0, 0, 0, 0, 14, 0, 4, 0, 0, 0, 0, 0, 14, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 5, 4, 0, 0, 0, 0, 0, 14, 6, 4, 0, 0, 0, 0, 0, 14, 6, 4, 0, 0, 0, 0, 0, 14, 6, 4, 0, 0, 0, 0, 0, 14, 6, 4, 0, 0, 0, 0, 0, 14, 6, 4, 0, 0, 0, 0, 0, 14, 7, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 5, 13, 0, 21, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 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, 2, 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, 3, 19, 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 8, 4, 0, 0, 0, 0, 0, 13, 4, 4, 0, 0, 0, 0, 0, 13, 4, 4, 0, 0, 0, 0, 0, 13, 4, 4, 0, 0, 0, 0, 0, 13, 4, 4, 0, 0, 0, 0, 0, 13, 4, 4, 0, 0, 0, 0, 0, 14, 9, 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 19, 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 4, 1, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 6, 6, 4, 0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, 6, 8, 0, 0, 0, 0, 0, 0, 6, 9, 4, 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, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 10, 4, 0, 0, 0, 0, 0, 14, 11, 4, 0, 0, 0, 0, 0, 14, 12, 4, 0, 0, 0, 0, 0, 14, 13, 4, 0, 0, 0, 0, 0, 14, 14, 4, 0, 0, 0, 0, 0, 14, 11, 4, 0, 0, 0, 0, 0, 14, 15, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 5, 6, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 16, 4, 0, 0, 0, 0, 0, 14, 17, 4, 0, 0, 0, 0, 0, 14, 17, 4, 0, 0, 0, 0, 0, 14, 17, 4, 0, 0, 0, 0, 0, 14, 17, 4, 0, 0, 0, 0, 0, 14, 17, 4, 0, 0, 0, 0, 0, 14, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 5, 6, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 7, 1, 4, 0, 0, 0, 0, 0, 7, 2, 4, 0, 0, 0, 0, 0, 7, 3, 0, 0, 0, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, 7, 5, 0, 0, 0, 0, 0, 0, 7, 6, 4, 0, 0, 0, 0, 0, 7, 7, 4, 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, 3, 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, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 19, 4, 0, 0, 0, 0, 0, 15, 0, 4, 0, 0, 0, 0, 0, 15, 1, 4, 6, 0, 0, 0, 0, 15, 2, 0, 0, 0, 0, 0, 0, 15, 3, 4, 0, 0, 0, 0, 0, 15, 0, 4, 0, 0, 0, 0, 0, 15, 4, 4, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 11, 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, 4, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 5, 13, 0, 21, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 5, 4, 0, 0, 0, 0, 0, 15, 6, 4, 0, 0, 0, 0, 0, 15, 7, 4, 0, 0, 0, 0, 0, 15, 8, 4, 0, 0, 0, 0, 0, 15, 9, 4, 0, 0, 0, 0, 0, 15, 6, 4, 0, 0, 0, 0, 0, 15, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 5, 13, 0, 21, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 22, 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, 3, 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, 2, 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, 3, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 11, 4, 0, 0, 0, 0, 0, 15, 12, 4, 0, 0, 0, 0, 0, 15, 13, 4, 6, 0, 0, 0, 0, 15, 2, 0, 0, 0, 0, 0, 0, 15, 14, 4, 0, 0, 0, 0, 0, 15, 12, 4, 0, 0, 0, 0, 0, 15, 15, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 11, 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, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 21, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 2, 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, 8, 6, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 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, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 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, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 7, 18, 0, 7, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 11, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 10, 5, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 10, 5, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 7, 18, 0, 7, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 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, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 5, 14, 0, 0, 0, 0, 0, 0, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 3, 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, 8, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 7, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 10, 6, 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, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 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, 3, 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, 3, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 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, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 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, 3, 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, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 4, 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, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 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, 3, 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, 3, 0]; } }//packageSection 44//Menu (Menu) package { import flash.events.*; import greenpixel.game.*; import greenpixel.sound.*; import flash.net.*; public class Menu extends GameLayer { private var theGame:Main; private var menuClip:MainMenuClip; public function Menu(_arg1:Main){ super(_arg1); theGame = _arg1; menuClip = new MainMenuClip(); menuClip.btn_start.addEventListener(MouseEvent.CLICK, startGame); menuClip.twitterButton.addEventListener(MouseEvent.CLICK, gotoTwitter); menuClip.armorGamesButton.buttonMode = true; menuClip.armorGamesButton.addEventListener(MouseEvent.CLICK, gotoMoreGames); menuClip.moreGamesButton.buttonMode = true; menuClip.moreGamesButton.addEventListener(MouseEvent.CLICK, gotoMoreGames); menuClip.likeUsButton.buttonMode = true; menuClip.likeUsButton.addEventListener(MouseEvent.CLICK, gotoLikeUs); menuClip.soundButton.gotoAndStop(0); menuClip.soundButton.buttonMode = true; menuClip.soundButton.addEventListener(MouseEvent.CLICK, toggleSound); addChild(menuClip); menuClip.stop(); } override public function init():void{ SoundManager.instance.playMusic(Main.MENU_THEME, false); menuClip.soundButton.gotoAndStop((SoundManager.instance.isMute) ? 2 : 1); fadeIn(); } public function toggleSound(_arg1:MouseEvent):void{ SoundManager.instance.toggleMute(); } public function gotoLikeUs(_arg1:Event){ var _local2:URLRequest; _local2 = new URLRequest("http://www.facebook.com/ArmorGames"); navigateToURL(_local2, "_blank"); } override public function draw():void{ } public function gotoMoreGames(_arg1:Event){ var _local2:URLRequest; _local2 = new URLRequest("http://armor.ag/MoreGames"); navigateToURL(_local2, "_blank"); } private function startGame(_arg1:MouseEvent):void{ theGame.switchLayerIntro(); } public function gotoTwitter(_arg1:Event){ var _local2:URLRequest; _local2 = new URLRequest("https://twitter.com/#!/greenpixeldev"); navigateToURL(_local2, "_blank"); } override public function update():void{ menuClip.soundButton.gotoAndStop((SoundManager.instance.isMute) ? 2 : 1); } } }//packageSection 45//MenuTheme (MenuTheme) package { import flash.media.*; public dynamic class MenuTheme extends Sound { } }//packageSection 46//MessageBoxes (MessageBoxes) package { import flash.display.*; public dynamic class MessageBoxes extends BitmapData { public function MessageBoxes(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 47//Node (Node) package { public class Node { public var parent:int; public var value:int; public var gCost:int; public var hCost:int; public var id:int; public function Node(_arg1){ this.id = _arg1; parent = -1; gCost = 0; hCost = 0; } public function copy(_arg1:Node){ id = _arg1.id; parent = _arg1.parent; gCost = _arg1.gCost; hCost = _arg1.hCost; value = _arg1.value; } public function setValue(_arg1:int, _arg2:int){ gCost = _arg1; hCost = _arg2; value = (gCost + hCost); } } }//packageSection 48//NPC (NPC) package { import flash.geom.*; import greenpixel.game.world.objects.*; import greenpixel.math.*; public class NPC extends Character { public var hitCooldown:int; private var path:Array; public var WALK_SPEED:int;// = 1 public var STUN_COOLDOWN:int;// = 30 public var RUN_SPEED:Number;// = 4.5 public var cooldown:int; public var IDLE_COOLDOWN:int;// = 0 public var attackPower:int; private var pathIndex:int; public var HIT_COOLDOWN:int;// = 8 public var npcType:int; public var SEARCH_SPEED:int;// = 3 private var HEALTH_MAX:int;// = 75 public static var STATE_SWING_BAT:int = 5; public static var STATE_IDLE:int = 3; public static var STATE_DEAD:int = 4; public static var HEARING_RADIUS:int = 250; public static var STATE_ATTACK:int = 2; public static var STATE_WALK:int = 0; public static var NPC_TYPES:int = 5; public static var STATE_SEARCH:int = 1; public function NPC(){ WALK_SPEED = 1; SEARCH_SPEED = 3; RUN_SPEED = 4.5; HIT_COOLDOWN = 8; STUN_COOLDOWN = 30; IDLE_COOLDOWN = 0; HEALTH_MAX = 75; super(); npcType = int((Math.random() * NPC_TYPES)); health = HEALTH_MAX; hitBox = new Rectangle(0, 0, 32, 32); isAlive = true; setAnim((npcType + AnimData.SPRITE_NPC01), AnimData.SPRITE_NPC01_WALK_FRONT); setPos(64, 64); speed = WALK_SPEED; state = STATE_IDLE; heading = new Vector2D(0, 0); dest = new Vector2D(0, 0); cooldown = IDLE_COOLDOWN; attackPower = 1; } public function setDest(_arg1:int, _arg2:int):void{ if (_arg1 < x){ direction = Entity.DIR_LEFT; } else { if (_arg1 > x){ direction = Entity.DIR_RIGHT; }; }; if (_arg2 < y){ direction = Entity.DIR_UP; } else { if (_arg2 > y){ direction = Entity.DIR_DOWN; }; }; dest.x = _arg1; dest.y = _arg2; heading = new Vector2D((dest.x - x), (dest.y - y)); heading.normalize(); } public function nextDest():void{ setDest(path[pathIndex].x, path[pathIndex].y); pathIndex++; } public function attack():void{ switch (direction){ case Entity.DIR_UP: resetAnim(AnimData.SPRITE_NPC01_MELEE_BACK); break; case Entity.DIR_RIGHT: resetAnim(AnimData.SPRITE_NPC01_MELEE_RIGHT); break; case Entity.DIR_DOWN: resetAnim(AnimData.SPRITE_NPC01_MELEE_FRONT); break; case Entity.DIR_LEFT: resetAnim(AnimData.SPRITE_NPC01_MELEE_LEFT); break; }; } public function setState(_arg1:int){ state = _arg1; switch (state){ case STATE_WALK: speed = WALK_SPEED; break; case STATE_SEARCH: speed = SEARCH_SPEED; break; case STATE_ATTACK: speed = RUN_SPEED; break; case STATE_IDLE: speed = 0; cooldown = IDLE_COOLDOWN; break; case STATE_DEAD: speed = 0; break; case STATE_SWING_BAT: speed = 0; break; }; } public function kill():void{ health = 0; isAlive = false; setAnim((npcType + AnimData.SPRITE_NPC01), AnimData.SPRITE_NPC01_DEAD_FRONT); } public function hit():void{ hitCooldown = HIT_COOLDOWN; if (state == STATE_WALK){ setState(NPC.STATE_SEARCH); }; } public function stun():void{ hitCooldown = STUN_COOLDOWN; if (state == STATE_WALK){ setState(NPC.STATE_SEARCH); }; } public function setPath(_arg1:Array){ path = _arg1; pathIndex = 0; if (hasNextDest()){ nextDest(); }; } public function hasNextDest():Boolean{ return (((!((path == null))) && ((pathIndex <= (path.length - 1))))); } } }//packageSection 49//NPCImage0 (NPCImage0) package { import flash.display.*; public dynamic class NPCImage0 extends BitmapData { public function NPCImage0(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 50//NPCImage1 (NPCImage1) package { import flash.display.*; public dynamic class NPCImage1 extends BitmapData { public function NPCImage1(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 51//NPCImage2 (NPCImage2) package { import flash.display.*; public dynamic class NPCImage2 extends BitmapData { public function NPCImage2(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 52//NPCImage3 (NPCImage3) package { import flash.display.*; public dynamic class NPCImage3 extends BitmapData { public function NPCImage3(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 53//NPCImage4 (NPCImage4) package { import flash.display.*; public dynamic class NPCImage4 extends BitmapData { public function NPCImage4(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 54//NPCImage5 (NPCImage5) package { import flash.display.*; public dynamic class NPCImage5 extends BitmapData { public function NPCImage5(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 55//ObjectImages (ObjectImages) package { import flash.display.*; public dynamic class ObjectImages extends BitmapData { public function ObjectImages(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 56//OutroClip (OutroClip) package { import flash.display.*; public dynamic class OutroClip extends MovieClip { public var soundButton:SoundButton; public function OutroClip(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 374, frame375, 375, frame376, 376, frame377, 377, frame378, 378, frame379, 379, frame380, 380, frame381, 381, frame382, 382, frame383, 383, frame384, 384, frame385, 385, frame386, 386, frame387, 387, frame388, 388, frame389, 389, frame390, 390, frame391, 391, frame392, 392, frame393, 449, frame450, 450, frame451, 451, frame452, 452, frame453, 453, frame454, 454, frame455, 455, frame456, 456, frame457, 457, frame458, 582, frame583, 583, frame584, 584, frame585, 585, frame586, 586, frame587); } function frame393(){ stop(); } function frame385(){ stop(); } function frame386(){ stop(); } function frame391(){ stop(); } function frame451(){ stop(); } function frame452(){ stop(); } function frame453(){ stop(); } function frame456(){ stop(); } function frame10(){ stop(); } function frame457(){ stop(); } function frame455(){ stop(); } function frame583(){ stop(); } function frame3(){ stop(); } function frame6(){ stop(); } function frame7(){ stop(); } function frame1(){ stop(); } function frame586(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame584(){ stop(); } function frame454(){ stop(); } function frame8(){ stop(); } function frame9(){ stop(); } function frame2(){ stop(); } function frame458(){ stop(); } function frame11(){ stop(); } function frame587(){ stop(); } function frame450(){ stop(); } function frame585(){ stop(); } function frame376(){ stop(); } function frame377(){ stop(); } function frame378(){ stop(); } function frame379(){ stop(); } function frame375(){ stop(); } function frame380(){ stop(); } function frame382(){ stop(); } function frame383(){ stop(); } function frame387(){ stop(); } function frame381(){ stop(); } function frame384(){ stop(); } function frame388(){ stop(); } function frame389(){ stop(); } function frame390(){ stop(); } function frame392(){ stop(); } } }//packageSection 57//OutroCutscene (OutroCutscene) package { import flash.events.*; import greenpixel.game.*; import greenpixel.sound.*; public class OutroCutscene extends GameLayer { private var theGame:Main; private var cutscene:OutroClip; public function OutroCutscene(_arg1:Main){ super(_arg1); theGame = _arg1; cutscene = new OutroClip(); cutscene.soundButton.gotoAndStop(0); cutscene.soundButton.buttonMode = true; cutscene.soundButton.addEventListener(MouseEvent.CLICK, toggleSound); addChild(cutscene); cutscene.stop(); } override public function init():void{ stage.focus = stage; SoundManager.instance.playMusic(Main.LAIR_THEME, true); cutscene.gotoAndStop(0); cutscene.soundButton.gotoAndStop((SoundManager.instance.isMute) ? 2 : 1); fadeIn(); } override public function draw():void{ } public function toggleSound(_arg1:MouseEvent):void{ SoundManager.instance.toggleMute(); } override public function update():void{ if (cutscene.currentFrame == cutscene.totalFrames){ stage.focus = stage; theGame.switchLayerMenu(); }; if (isAnyKeyPressed()){ cutscene.play(); }; cutscene.soundButton.gotoAndStop((SoundManager.instance.isMute) ? 2 : 1); } } }//packageSection 58//PathFinder (PathFinder) package { import flash.geom.*; import greenpixel.game.tilemap.*; public class PathFinder { public static function getPathAStar(_arg1:Array, _arg2:int, _arg3:int, _arg4:int, _arg5:int):Array{ var _local6:int; var _local7:int; var _local8:int; var _local9:BinaryHeap; var _local10:Array; var _local11:Node; var _local12:Node; var _local13:Array; var _local14:Array; var _local15:Node; var _local16:int; var _local17:int; var _local18:Node; var _local19:Node; var _local20:int; _local6 = 0; _local7 = 0; _local8 = 0; _local9 = new BinaryHeap((_arg1[0].length * _arg1.length)); _local10 = new Array(); _local11 = new Node(((_arg2 << 16) | _arg3)); _local11.setValue(0, (((10 + Math.abs((_arg2 - _arg4))) + 10) + Math.abs((_arg3 - _arg5)))); _local9.add(_local11); while (_local9.getSize() > 0) { _local15 = _local9.getTopNode(); _local16 = (_local15.id >> 16); _local17 = (_local15.id & 0xFFFF); _local10.push(_local15); if (((((_local15.id >> 16) == _arg4)) && (((_local15.id & 0xFFFF) == _arg5)))){ break; }; _local6 = -1; while (_local6 <= 1) { _local7 = -1; while (_local7 <= 1) { if ((((((((((((((_local6 == 0)) && ((_local7 == 0)))) || (((!((_local6 == 0))) && (!((_local7 == 0))))))) || (((_local16 + _local7) < 0)))) || (((_local17 + _local6) < 0)))) || (((_local16 + _local7) >= _arg1[0].length)))) || (((_local17 + _local6) >= _arg1.length)))){ } else { if (Tile.hasFlag(_arg1[(_local17 + _local6)][(_local16 + _local7)], Tile.WALL)){ } else { _local18 = new Node((((_local16 + _local7) << 16) | (_local17 + _local6))); if (hasValue(_local10, _local18)){ } else { _local19 = _local9.getNode(_local18.id); _local20 = (10 + _local15.gCost); if (_local19 != null){ if (_local20 < _local19.gCost){ _local19.setValue(_local20, (((10 + Math.abs(((_local16 + _local7) - _arg4))) + 10) + Math.abs(((_local17 + _local6) - _arg5)))); _local19.parent = ((_local16 << 16) | _local17); _local9.replaceNode(_local19); }; } else { _local18.setValue(_local20, (((10 + Math.abs(((_local16 + _local7) - _arg4))) + 10) + Math.abs(((_local17 + _local6) - _arg5)))); _local18.parent = ((_local16 << 16) | _local17); _local9.add(_local18); }; }; }; }; _local7++; }; _local6++; }; }; _local12 = _local10.pop(); _local13 = new Array(); while (((!(((_local12.id >> 16) == _arg2))) || (!(((_local12.id & 0xFFFF) == _arg3))))) { _local13.push(_local12.id); _local6 = 0; while (_local6 < _local10.length) { if (_local10[_local6].id == _local12.parent){ _local12 = _local10[_local6]; break; }; _local6++; }; }; _local13.reverse(); _local14 = new Array(); _local6 = 0; while (_local6 < _local13.length) { _local14.push(new Point((32 * (_local13[_local6] >> 16)), (32 * (_local13[_local6] & 0xFFFF)))); _local6++; }; return (_local14); } private static function hasValue(_arg1:Array, _arg2:Node):Boolean{ var _local3:int; var _local4:Node; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _arg1[_local3]; if (_local4.id == _arg2.id){ return (true); }; _local3++; }; return (false); } } }//packageSection 59//Player (Player) package { import flash.geom.*; import greenpixel.game.world.objects.*; public class Player extends Character { public var stunCooldown:int; public var attackPower:int; public var attackCooldown:int; public var damageCooldown:int; public static var ATTACK_POWER_INIT:int = 25; public static var ANIM_IDLE:int = 0; public static var MAX_HEALTH:int = 3; public static var STUN_COOLDOWN:int = 120; public static var ANIM_SHOOT:int = 3; public static var STATE_ATTACK:int = 1; public static var COOLDOWN_INIT:int = 0; public static var ANIM_MELEE:int = 2; public static var SPEED:Number = 5.5; public static var ATTACK_WIDTH:int = 32; public static var STATE_IDLE:int = 0; public static var ANIM_WALK:int = 1; public static var STATE_SHOOT:int = 2; public static var DAMAGE_COOLDOWN:int = 30; public static var ATTACK_HEIGHT:int = 32; public function Player(){ attackCooldown = 0; attackPower = ATTACK_POWER_INIT; hitBox = new Rectangle(0, 0, 32, 32); speed = SPEED; health = MAX_HEALTH; damageCooldown = 0; stunCooldown = 0; } public function shoot():void{ stunCooldown = STUN_COOLDOWN; } public function hit(_arg1:int):void{ damageCooldown = DAMAGE_COOLDOWN; health = (health - _arg1); } public function resetCooldown():void{ attackCooldown = COOLDOWN_INIT; } } }//packageSection 60//PlayerImage (PlayerImage) package { import flash.display.*; public dynamic class PlayerImage extends BitmapData { public function PlayerImage(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 61//ShortcutIconsImage (ShortcutIconsImage) package { import flash.display.*; public dynamic class ShortcutIconsImage extends BitmapData { public function ShortcutIconsImage(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 62//ShortcutImage (ShortcutImage) package { import flash.display.*; public dynamic class ShortcutImage extends BitmapData { public function ShortcutImage(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 63//SoundButton (SoundButton) package { import flash.display.*; public dynamic class SoundButton extends MovieClip { } }//packageSection 64//Spawn (Spawn) package { import flash.geom.*; import greenpixel.game.world.objects.*; public class Spawn extends Character { public var spawnType:int; public static var SPAWN_TYPE_DUCTTAPE:int = 5; public static var SPAWN_TYPE_METAL:int = 2; public static var SPAWN_TYPE_STEAK:int = 7; public static var SPAWN_TYPE_WOOD:int = 0; public static var SPAWN_TYPE_CIRCUIT:int = 3; public static var SPAWN_TYPE_ISOTOPE:int = 1; public static var SPAWN_TYPE_COIL:int = 4; public static var SPAWN_TYPE_APPLE:int = 6; public function Spawn(){ isAlive = false; hitBox = new Rectangle(0, 0, 32, 32); } public function init(_arg1:int, _arg2:int, _arg3:int):void{ x = _arg1; y = _arg2; spawnType = _arg3; isAlive = true; switch (_arg3){ case SPAWN_TYPE_WOOD: setAnim(AnimData.ITEMS, AnimData.ITEMS_WOOD_IDLE); break; case SPAWN_TYPE_ISOTOPE: setAnim(AnimData.ITEMS, AnimData.ITEMS_ISOTOPE_IDLE); break; case SPAWN_TYPE_METAL: setAnim(AnimData.ITEMS, AnimData.ITEMS_METAL_IDLE); break; case SPAWN_TYPE_CIRCUIT: setAnim(AnimData.ITEMS, AnimData.ITEMS_CIRCUIT_IDLE); break; case SPAWN_TYPE_COIL: setAnim(AnimData.ITEMS, AnimData.ITEMS_COIL_IDLE); break; case SPAWN_TYPE_DUCTTAPE: setAnim(AnimData.ITEMS, AnimData.ITEMS_DUCTTAPE_IDLE); break; case SPAWN_TYPE_APPLE: setAnim(AnimData.ITEMS, AnimData.ITEMS_APPLE_IDLE); break; case SPAWN_TYPE_STEAK: setAnim(AnimData.ITEMS, AnimData.ITEMS_STEAK_IDLE); break; }; } } }//packageSection 65//Splash (Splash) package { import flash.events.*; import greenpixel.game.*; import flash.net.*; public class Splash extends GameLayer { private var theGame:Main; private var cutscene:ArmorGamesClip; public function Splash(_arg1:Main){ super(_arg1); theGame = _arg1; cutscene = new ArmorGamesClip(); cutscene.x = (_arg1.screenWidth / 2); cutscene.y = (_arg1.screenHeight / 2); cutscene.buttonMode = true; cutscene.addEventListener(MouseEvent.CLICK, gotoArmorGames); addChild(cutscene); cutscene.stop(); } override public function init():void{ cutscene.gotoAndPlay(2); } override public function draw():void{ } public function gotoArmorGames(_arg1:Event):void{ var _local2:URLRequest; _local2 = new URLRequest("http://armor.ag/MoreGames"); navigateToURL(_local2, "_blank"); } override public function update():void{ if (cutscene.currentFrame == cutscene.totalFrames){ cutscene.stop(); stage.focus = stage; theGame.switchLayerMenu(); }; } } }//packageSection 66//StunBullet (StunBullet) package { import flash.geom.*; import greenpixel.game.world.objects.*; import greenpixel.math.*; public class StunBullet extends Character { private var SPEED:int;// = 10 public function StunBullet(){ SPEED = 10; super(); hitBox = new Rectangle(0, 0, 32, 32); speed = SPEED; isAlive = false; heading = new Vector2D(0, 0); } public function init(_arg1:int, _arg2:int, _arg3:int, _arg4:int):void{ isAlive = true; x = _arg1; y = _arg2; heading.x = _arg3; heading.y = _arg4; } } }//packageSection 67//SwingSound (SwingSound) package { import flash.media.*; public dynamic class SwingSound extends Sound { } }//packageSection 68//TownTiles (TownTiles) package { import flash.display.*; public dynamic class TownTiles extends BitmapData { public function TownTiles(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 69//WorldTheme (WorldTheme) package { import flash.media.*; public dynamic class WorldTheme extends Sound { } }//package
Library Items
| Symbol 1 Font {GameFont} | ||
| Symbol 2 Sound {WorldTheme} | ||
| Symbol 3 Sound {MenuTheme} | ||
| Symbol 4 Sound {SwingSound} | ||
| Symbol 5 Sound {LaserSound} | ||
| Symbol 6 Sound {HitSound} | ||
| Symbol 7 Sound {LootSound} | ||
| Symbol 8 Sound {LairTheme} | ||
| Symbol 9 Bitmap {ShortcutImage} | ||
| Symbol 10 Bitmap {ShortcutIconsImage} | ||
| Symbol 11 Bitmap {MessageBoxes} | ||
| Symbol 12 Bitmap {LifeImage} | ||
| Symbol 13 Bitmap {InventoryImage} | ||
| Symbol 14 Bitmap {GameOverImage} | ||
| Symbol 15 Bitmap {TownTiles} | ||
| Symbol 16 Bitmap {ObjectImages} | ||
| Symbol 17 Bitmap {NPCImage5} | ||
| Symbol 18 Bitmap {NPCImage4} | ||
| Symbol 19 Bitmap {NPCImage3} | ||
| Symbol 20 Bitmap {NPCImage2} | ||
| Symbol 21 Bitmap {NPCImage1} | ||
| Symbol 22 Bitmap {NPCImage0} | ||
| Symbol 23 Bitmap {PlayerImage} | ||
| Symbol 24 Bitmap {ItemImages} | ||
| Symbol 25 Bitmap {HouseTiles} | ||
| Symbol 26 Bitmap {BlueJellyfish} | ||
| Symbol 27 Bitmap {CityTiles} | ||
| Symbol 28 Graphic | Used by:44 | |
| Symbol 29 Graphic | Used by:44 | |
| Symbol 30 Graphic | Used by:44 | |
| Symbol 31 Sound | Used by:44 | |
| Symbol 32 Sound | Used by:44 | |
| Symbol 33 Graphic | Used by:44 | |
| Symbol 34 Graphic | Used by:35 | |
| Symbol 35 MovieClip | Uses:34 | Used by:44 |
| Symbol 36 Sound | Used by:44 | |
| Symbol 37 Sound | Used by:44 | |
| Symbol 38 Sound | Used by:44 | |
| Symbol 39 Sound | Used by:44 | |
| Symbol 40 Graphic | Used by:41 | |
| Symbol 41 MovieClip | Uses:40 | Used by:44 |
| Symbol 42 Sound | Used by:44 | |
| Symbol 43 Sound | Used by:44 | |
| Symbol 44 MovieClip {ArmorGamesClip} | Uses:28 29 30 31 32 33 35 36 37 38 39 41 42 43 | |
| Symbol 45 Bitmap | Used by:46 235 | |
| Symbol 46 Graphic | Uses:45 | Used by:72 |
| Symbol 47 Bitmap | Used by:48 | |
| Symbol 48 Graphic | Uses:47 | Used by:49 |
| Symbol 49 MovieClip | Uses:48 | Used by:72 |
| Symbol 50 Bitmap | Used by:51 | |
| Symbol 51 Graphic | Uses:50 | Used by:52 |
| Symbol 52 MovieClip | Uses:51 | Used by:72 |
| Symbol 53 Bitmap | Used by:54 | |
| Symbol 54 Graphic | Uses:53 | Used by:55 |
| Symbol 55 MovieClip | Uses:54 | Used by:72 |
| Symbol 56 Bitmap | Used by:57 | |
| Symbol 57 Graphic | Uses:56 | Used by:60 |
| Symbol 58 Bitmap | Used by:59 | |
| Symbol 59 Graphic | Uses:58 | Used by:60 |
| Symbol 60 Button | Uses:57 59 | Used by:72 |
| Symbol 61 Bitmap | Used by:62 | |
| Symbol 62 Graphic | Uses:61 | Used by:65 |
| Symbol 63 Bitmap | Used by:64 | |
| Symbol 64 Graphic | Uses:63 | Used by:65 |
| Symbol 65 Button | Uses:62 64 | Used by:72 |
| Symbol 66 Bitmap | Used by:67 | |
| Symbol 67 Graphic | Uses:66 | Used by:71 |
| Symbol 68 Bitmap | Used by:69 | |
| Symbol 69 Graphic | Uses:68 | Used by:70 |
| Symbol 70 MovieClip | Uses:69 | Used by:71 |
| Symbol 71 MovieClip {SoundButton} | Uses:67 70 | Used by:72 148 234 |
| Symbol 72 MovieClip {MainMenuClip} | Uses:46 49 52 55 60 65 71 | |
| Symbol 73 Bitmap | Used by:74 | |
| Symbol 74 Graphic | Uses:73 | Used by:148 234 |
| Symbol 75 Bitmap | Used by:76 | |
| Symbol 76 Graphic | Uses:75 | Used by:148 234 |
| Symbol 77 Bitmap | Used by:78 | |
| Symbol 78 Graphic | Uses:77 | Used by:148 234 |
| Symbol 79 Font | Used by:80 90 91 92 93 94 95 96 97 98 99 100 101 102 105 106 107 108 111 112 113 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 140 145 153 154 155 156 157 158 159 160 161 162 163 192 193 194 195 196 197 198 199 200 201 203 204 207 208 211 212 213 214 221 222 223 224 225 226 227 228 229 230 231 232 233 | |
| Symbol 80 Text | Uses:79 | Used by:148 |
| Symbol 81 Bitmap | Used by:82 | |
| Symbol 82 Graphic | Uses:81 | Used by:148 |
| Symbol 83 Bitmap | Used by:84 | |
| Symbol 84 Graphic | Uses:83 | Used by:87 |
| Symbol 85 Bitmap | Used by:86 | |
| Symbol 86 Graphic | Uses:85 | Used by:87 |
| Symbol 87 Button | Uses:84 86 | Used by:148 |
| Symbol 88 Bitmap | Used by:89 | |
| Symbol 89 Graphic | Uses:88 | Used by:148 234 |
| Symbol 90 Text | Uses:79 | Used by:148 |
| Symbol 91 Text | Uses:79 | Used by:148 |
| Symbol 92 Text | Uses:79 | Used by:148 |
| Symbol 93 Text | Uses:79 | Used by:148 |
| Symbol 94 Text | Uses:79 | Used by:148 |
| Symbol 95 Text | Uses:79 | Used by:148 |
| Symbol 96 Text | Uses:79 | Used by:148 |
| Symbol 97 Text | Uses:79 | Used by:148 |
| Symbol 98 Text | Uses:79 | Used by:148 |
| Symbol 99 Text | Uses:79 | Used by:148 |
| Symbol 100 Text | Uses:79 | Used by:148 |
| Symbol 101 Text | Uses:79 | Used by:148 |
| Symbol 102 Text | Uses:79 | Used by:148 |
| Symbol 103 Bitmap | Used by:104 | |
| Symbol 104 Graphic | Uses:103 | Used by:148 234 |
| Symbol 105 Text | Uses:79 | Used by:148 |
| Symbol 106 Text | Uses:79 | Used by:148 |
| Symbol 107 Text | Uses:79 | Used by:148 |
| Symbol 108 Text | Uses:79 | Used by:148 |
| Symbol 109 Bitmap | Used by:110 | |
| Symbol 110 Graphic | Uses:109 | Used by:148 |
| Symbol 111 Text | Uses:79 | Used by:148 |
| Symbol 112 Text | Uses:79 | Used by:148 |
| Symbol 113 Text | Uses:79 | Used by:148 |
| Symbol 114 Bitmap | Used by:115 | |
| Symbol 115 Graphic | Uses:114 | Used by:148 234 |
| Symbol 116 Text | Uses:79 | Used by:148 |
| Symbol 117 Text | Uses:79 | Used by:148 |
| Symbol 118 Text | Uses:79 | Used by:148 |
| Symbol 119 Text | Uses:79 | Used by:148 |
| Symbol 120 Text | Uses:79 | Used by:148 |
| Symbol 121 Text | Uses:79 | Used by:148 |
| Symbol 122 Text | Uses:79 | Used by:148 |
| Symbol 123 Text | Uses:79 | Used by:148 |
| Symbol 124 Text | Uses:79 | Used by:148 |
| Symbol 125 Text | Uses:79 | Used by:148 |
| Symbol 126 Text | Uses:79 | Used by:148 |
| Symbol 127 Text | Uses:79 | Used by:148 |
| Symbol 128 Text | Uses:79 | Used by:148 |
| Symbol 129 Text | Uses:79 | Used by:148 |
| Symbol 130 Text | Uses:79 | Used by:148 |
| Symbol 131 Text | Uses:79 | Used by:148 |
| Symbol 132 Text | Uses:79 | Used by:148 |
| Symbol 133 Text | Uses:79 | Used by:148 |
| Symbol 134 Text | Uses:79 | Used by:148 |
| Symbol 135 Text | Uses:79 | Used by:148 |
| Symbol 136 Text | Uses:79 | Used by:148 |
| Symbol 137 Text | Uses:79 | Used by:148 |
| Symbol 138 Bitmap | Used by:139 | |
| Symbol 139 Graphic | Uses:138 | Used by:148 |
| Symbol 140 Text | Uses:79 | Used by:148 |
| Symbol 141 Bitmap | Used by:142 | |
| Symbol 142 Graphic | Uses:141 | Used by:148 |
| Symbol 143 Bitmap | Used by:144 | |
| Symbol 144 Graphic | Uses:143 | Used by:148 |
| Symbol 145 Text | Uses:79 | Used by:148 |
| Symbol 146 Graphic | Used by:147 | |
| Symbol 147 MovieClip | Uses:146 | Used by:148 234 |
| Symbol 148 MovieClip {IntroClip} | Uses:74 76 78 80 82 87 71 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 139 140 142 144 145 147 | |
| Symbol 149 Bitmap | Used by:150 | |
| Symbol 150 Graphic | Uses:149 | Used by:234 |
| Symbol 151 Bitmap | Used by:152 | |
| Symbol 152 Graphic | Uses:151 | Used by:234 |
| Symbol 153 Text | Uses:79 | Used by:234 |
| Symbol 154 Text | Uses:79 | Used by:234 |
| Symbol 155 Text | Uses:79 | Used by:234 |
| Symbol 156 Text | Uses:79 | Used by:234 |
| Symbol 157 Text | Uses:79 | Used by:234 |
| Symbol 158 Text | Uses:79 | Used by:234 |
| Symbol 159 Text | Uses:79 | Used by:234 |
| Symbol 160 Text | Uses:79 | Used by:234 |
| Symbol 161 Text | Uses:79 | Used by:234 |
| Symbol 162 Text | Uses:79 | Used by:234 |
| Symbol 163 Text | Uses:79 | Used by:234 |
| Symbol 164 Bitmap | Used by:165 | |
| Symbol 165 Graphic | Uses:164 | Used by:234 |
| Symbol 166 Sound | Used by:234 | |
| Symbol 167 Bitmap | Used by:168 | |
| Symbol 168 Graphic | Uses:167 | Used by:234 |
| Symbol 169 Bitmap | Used by:170 | |
| Symbol 170 Graphic | Uses:169 | Used by:234 |
| Symbol 171 Bitmap | Used by:172 | |
| Symbol 172 Graphic | Uses:171 | Used by:234 |
| Symbol 173 Bitmap | Used by:174 181 | |
| Symbol 174 Graphic | Uses:173 | Used by:234 |
| Symbol 175 Sound | Used by:234 | |
| Symbol 176 Sound | Used by:234 | |
| Symbol 177 Bitmap | Used by:178 182 | |
| Symbol 178 Graphic | Uses:177 | Used by:234 |
| Symbol 179 Bitmap | Used by:180 183 | |
| Symbol 180 Graphic | Uses:179 | Used by:234 |
| Symbol 181 Graphic | Uses:173 | Used by:234 |
| Symbol 182 Graphic | Uses:177 | Used by:234 |
| Symbol 183 Graphic | Uses:179 | Used by:234 |
| Symbol 184 Bitmap | Used by:185 | |
| Symbol 185 Graphic | Uses:184 | Used by:234 |
| Symbol 186 Sound | Used by:234 | |
| Symbol 187 Sound | Used by:234 | |
| Symbol 188 Bitmap | Used by:189 | |
| Symbol 189 Graphic | Uses:188 | Used by:234 |
| Symbol 190 Graphic | Used by:191 | |
| Symbol 191 MovieClip | Uses:190 | Used by:234 |
| Symbol 192 Text | Uses:79 | Used by:234 |
| Symbol 193 Text | Uses:79 | Used by:234 |
| Symbol 194 Text | Uses:79 | Used by:234 |
| Symbol 195 Text | Uses:79 | Used by:234 |
| Symbol 196 Text | Uses:79 | Used by:234 |
| Symbol 197 Text | Uses:79 | Used by:234 |
| Symbol 198 Text | Uses:79 | Used by:234 |
| Symbol 199 Text | Uses:79 | Used by:234 |
| Symbol 200 Text | Uses:79 | Used by:234 |
| Symbol 201 Text | Uses:79 | Used by:234 |
| Symbol 202 Sound | Used by:234 | |
| Symbol 203 Text | Uses:79 | Used by:234 |
| Symbol 204 Text | Uses:79 | Used by:234 |
| Symbol 205 Bitmap | Used by:206 | |
| Symbol 206 Graphic | Uses:205 | Used by:234 |
| Symbol 207 Text | Uses:79 | Used by:234 |
| Symbol 208 Text | Uses:79 | Used by:234 |
| Symbol 209 Bitmap | Used by:210 | |
| Symbol 210 Graphic | Uses:209 | Used by:234 |
| Symbol 211 Text | Uses:79 | Used by:234 |
| Symbol 212 Text | Uses:79 | Used by:234 |
| Symbol 213 Text | Uses:79 | Used by:234 |
| Symbol 214 Text | Uses:79 | Used by:234 |
| Symbol 215 Bitmap | Used by:216 | |
| Symbol 216 Graphic | Uses:215 | Used by:234 |
| Symbol 217 Bitmap | Used by:218 | |
| Symbol 218 Graphic | Uses:217 | Used by:234 |
| Symbol 219 Font | Used by:220 | |
| Symbol 220 Text | Uses:219 | Used by:234 |
| Symbol 221 Text | Uses:79 | Used by:234 |
| Symbol 222 Text | Uses:79 | Used by:234 |
| Symbol 223 Text | Uses:79 | Used by:234 |
| Symbol 224 Text | Uses:79 | Used by:234 |
| Symbol 225 Text | Uses:79 | Used by:234 |
| Symbol 226 Text | Uses:79 | Used by:234 |
| Symbol 227 Text | Uses:79 | Used by:234 |
| Symbol 228 Text | Uses:79 | Used by:234 |
| Symbol 229 Text | Uses:79 | Used by:234 |
| Symbol 230 Text | Uses:79 | Used by:234 |
| Symbol 231 Text | Uses:79 | Used by:234 |
| Symbol 232 Text | Uses:79 | Used by:234 |
| Symbol 233 Text | Uses:79 | Used by:234 |
| Symbol 234 MovieClip {OutroClip} | Uses:150 152 153 71 154 155 156 157 158 159 160 161 162 163 165 166 168 170 172 174 175 176 178 180 181 182 183 185 186 187 189 191 74 76 78 192 89 193 194 195 196 197 198 199 200 115 201 202 203 204 206 207 208 210 211 212 213 214 216 218 220 221 222 223 104 224 225 226 227 228 147 229 230 231 232 233 | |
| Symbol 235 Graphic | Uses:45 | Used by:Timeline |
Instance Names
| "armorGamesButton" | Symbol 72 MovieClip {MainMenuClip} Frame 1 | Symbol 49 MovieClip |
| "moreGamesButton" | Symbol 72 MovieClip {MainMenuClip} Frame 1 | Symbol 52 MovieClip |
| "likeUsButton" | Symbol 72 MovieClip {MainMenuClip} Frame 1 | Symbol 55 MovieClip |
| "btn_start" | Symbol 72 MovieClip {MainMenuClip} Frame 1 | Symbol 60 Button |
| "twitterButton" | Symbol 72 MovieClip {MainMenuClip} Frame 1 | Symbol 65 Button |
| "soundButton" | Symbol 72 MovieClip {MainMenuClip} Frame 1 | Symbol 71 MovieClip {SoundButton} |
| "btn_skip" | Symbol 148 MovieClip {IntroClip} Frame 1 | Symbol 87 Button |
| "soundButton" | Symbol 148 MovieClip {IntroClip} Frame 1 | Symbol 71 MovieClip {SoundButton} |
| "soundButton" | Symbol 234 MovieClip {OutroClip} Frame 1 | Symbol 71 MovieClip {SoundButton} |
Special Tags
| FileAttributes (69) | Timeline Frame 1 | Access local files only, Metadata not present, AS3. |
|
|