diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Behaviors/Node.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Behaviors/Node.class new file mode 100644 index 0000000..28a1d25 Binary files /dev/null and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Behaviors/Node.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Behaviors/Pathfinding.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Behaviors/Pathfinding.class new file mode 100644 index 0000000..11b9902 Binary files /dev/null and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Behaviors/Pathfinding.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Enemy$State.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Enemy$State.class new file mode 100644 index 0000000..190f5ce Binary files /dev/null and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Enemy$State.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Enemy.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Enemy.class index 0a1fe32..5a33594 100644 Binary files a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Enemy.class and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Enemy.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Player$State.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Player$State.class new file mode 100644 index 0000000..5a6bd23 Binary files /dev/null and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Player$State.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Player.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Player.class index 249f20a..cf8363a 100644 Binary files a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Player.class and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Player.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Teleporter.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Teleporter.class new file mode 100644 index 0000000..76ba0e8 Binary files /dev/null and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Entities/Teleporter.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Scenes/Hud.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Scenes/Hud.class index d638b6c..7685bf9 100644 Binary files a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Scenes/Hud.class and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Scenes/Hud.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Screens/MainMenuScreen$1.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Screens/MainMenuScreen$1.class new file mode 100644 index 0000000..a8e34b4 Binary files /dev/null and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Screens/MainMenuScreen$1.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Screens/MainMenuScreen.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Screens/MainMenuScreen.class new file mode 100644 index 0000000..7f752c0 Binary files /dev/null and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Screens/MainMenuScreen.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Screens/PlayScreen.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Screens/PlayScreen.class index 81df8c5..8d72b36 100644 Binary files a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Screens/PlayScreen.class and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Screens/PlayScreen.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/SpaceGamePrototype.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/SpaceGamePrototype.class index dad1e7a..b401293 100644 Binary files a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/SpaceGamePrototype.class and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/SpaceGamePrototype.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/BinarySearch.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/BinarySearch.class new file mode 100644 index 0000000..3fda0ed Binary files /dev/null and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/BinarySearch.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/EnemyUpdater.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/EnemyUpdater.class new file mode 100644 index 0000000..3c5c999 Binary files /dev/null and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/EnemyUpdater.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/InteractiveWorldCreator.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/InteractiveWorldCreator.class new file mode 100644 index 0000000..d3825d6 Binary files /dev/null and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/InteractiveWorldCreator.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/MenuCamera.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/MenuCamera.class new file mode 100644 index 0000000..fd1cd19 Binary files /dev/null and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/MenuCamera.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/PathfindingWorldCreator.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/PathfindingWorldCreator.class new file mode 100644 index 0000000..9be0346 Binary files /dev/null and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/PathfindingWorldCreator.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/QuickSort.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/QuickSort.class new file mode 100644 index 0000000..491279a Binary files /dev/null and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/QuickSort.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/TaskWorldCreator.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/TaskWorldCreator.class new file mode 100644 index 0000000..32c17ae Binary files /dev/null and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/TaskWorldCreator.class differ diff --git a/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/WorldContactListener.class b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/WorldContactListener.class new file mode 100644 index 0000000..98dd983 Binary files /dev/null and b/SpaceGameFolder/core/bin/main/com/davidalexanderkelly/game/Tools/WorldContactListener.class differ diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Behaviors/Node.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Behaviors/Node.java index e2d459b..f2db42b 100644 --- a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Behaviors/Node.java +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Behaviors/Node.java @@ -1,27 +1,27 @@ -package com.davidalexanderkelly.game.Entities.Behaviors; - -import com.badlogic.gdx.math.Vector2; - -public class Node { - - private Vector2 worldPosition; - - public float gCost; - public float hCost; - public Node parent; - - public Node(Vector2 worldPosition) { - this.worldPosition = worldPosition; - } - - - - public Vector2 getWorldPosition() { - return worldPosition; - } - - public float fCost(){ - return gCost + hCost; - } - -} +package com.davidalexanderkelly.game.Entities.Behaviors; + +import com.badlogic.gdx.math.Vector2; + +public class Node { + + private Vector2 worldPosition; + + public float gCost; + public float hCost; + public Node parent; + + public Node(Vector2 worldPosition) { + this.worldPosition = worldPosition; + } + + + + public Vector2 getWorldPosition() { + return worldPosition; + } + + public float fCost(){ + return gCost + hCost; + } + +} diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Behaviors/Pathfinding.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Behaviors/Pathfinding.java index c6fec88..11a97e9 100644 --- a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Behaviors/Pathfinding.java +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Behaviors/Pathfinding.java @@ -1,104 +1,104 @@ -package com.davidalexanderkelly.game.Entities.Behaviors; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; - -import com.badlogic.gdx.math.Vector2; -import com.davidalexanderkelly.game.Screens.PlayScreen; -import com.davidalexanderkelly.game.Tools.PathfindingWorldCreator; - -public class Pathfinding { - - private float depth; - PathfindingWorldCreator pathfinder; - - public static float round(float d, int decimalPlace) { - BigDecimal bd = new BigDecimal(Float.toString(d)); - bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP); - return bd.floatValue(); - } - - public ArrayList findPath(Node startPosition,Node goalPosition, PathfindingWorldCreator pathfinder) { - this.pathfinder = pathfinder; - Node startNode = startPosition; - Node endNode = goalPosition; - depth = 0f; - - ArrayList openSet = new ArrayList(); - HashSet closedSet = new HashSet(); - openSet.add(startNode); - while(openSet.size() > 0) { - Node currentNode = openSet.get(0); - for(int i = 1; i < openSet.size(); i++) { - if((openSet.get(i).fCost() < currentNode.fCost() || (openSet.get(i).fCost() == currentNode.fCost() && openSet.get(i).hCost < currentNode.hCost)) && depth > currentNode.fCost()) { - currentNode = openSet.get(i); - depth = currentNode.fCost(); - - - - } - } - openSet.remove(currentNode); - closedSet.add(currentNode); - if(round(currentNode.getWorldPosition().x,2) == round(endNode.getWorldPosition().x,2) && round(currentNode.getWorldPosition().y,2) == round(endNode.getWorldPosition().y,2)) { - ArrayList returnPath = new ArrayList(); - returnPath = retracePath(startNode,currentNode); - - return returnPath; - - } - - for(Node neighbour : pathfinder.getNeighbours(currentNode)){ - if(closedSet.contains(neighbour)) { - - continue; - - } - - float newMovementCostToNeighbour = currentNode.gCost + getDistance(currentNode,neighbour); - if(newMovementCostToNeighbour < neighbour.gCost || !openSet.contains(neighbour)) { - neighbour.gCost = newMovementCostToNeighbour; - neighbour.hCost = getDistance(neighbour,endNode); - neighbour.parent = currentNode; - - if(!openSet.contains(neighbour)) { - openSet.add(neighbour); - - - } - } - - } - - } - - return openSet; - - } - - public ArrayList retracePath(Node startNode, Node endNode) { - - ArrayList path = new ArrayList(); - Node currentNode = endNode; - while(currentNode != startNode) { - path.add(currentNode); - currentNode = currentNode.parent; - } - - Collections.reverse(path); - return path; - } - - public float getDistance(Node nodeA, Node nodeB) { - - float distanceX = round(nodeA.getWorldPosition().x,2) - round(nodeB.getWorldPosition().x,2); - float distanceY = round(nodeA.getWorldPosition().y,2) - round(nodeB.getWorldPosition().y,2); - - if(distanceX > distanceY) - return 14*distanceY + 10*(distanceX-distanceY); - return 14*distanceX + 10*(distanceY-distanceX); - } -} +package com.davidalexanderkelly.game.Entities.Behaviors; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; + +import com.badlogic.gdx.math.Vector2; +import com.davidalexanderkelly.game.Screens.PlayScreen; +import com.davidalexanderkelly.game.Tools.PathfindingWorldCreator; + +public class Pathfinding { + + private float depth; + PathfindingWorldCreator pathfinder; + + public static float round(float d, int decimalPlace) { + BigDecimal bd = new BigDecimal(Float.toString(d)); + bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP); + return bd.floatValue(); + } + + public ArrayList findPath(Node startPosition,Node goalPosition, PathfindingWorldCreator pathfinder) { + this.pathfinder = pathfinder; + Node startNode = startPosition; + Node endNode = goalPosition; + depth = 0f; + + ArrayList openSet = new ArrayList(); + HashSet closedSet = new HashSet(); + openSet.add(startNode); + while(openSet.size() > 0) { + Node currentNode = openSet.get(0); + for(int i = 1; i < openSet.size(); i++) { + if((openSet.get(i).fCost() < currentNode.fCost() || (openSet.get(i).fCost() == currentNode.fCost() && openSet.get(i).hCost < currentNode.hCost)) && depth > currentNode.fCost()) { + currentNode = openSet.get(i); + depth = currentNode.fCost(); + + + + } + } + openSet.remove(currentNode); + closedSet.add(currentNode); + if(round(currentNode.getWorldPosition().x,2) == round(endNode.getWorldPosition().x,2) && round(currentNode.getWorldPosition().y,2) == round(endNode.getWorldPosition().y,2)) { + ArrayList returnPath = new ArrayList(); + returnPath = retracePath(startNode,currentNode); + + return returnPath; + + } + + for(Node neighbour : pathfinder.getNeighbours(currentNode)){ + if(closedSet.contains(neighbour)) { + + continue; + + } + + float newMovementCostToNeighbour = currentNode.gCost + getDistance(currentNode,neighbour); + if(newMovementCostToNeighbour < neighbour.gCost || !openSet.contains(neighbour)) { + neighbour.gCost = newMovementCostToNeighbour; + neighbour.hCost = getDistance(neighbour,endNode); + neighbour.parent = currentNode; + + if(!openSet.contains(neighbour)) { + openSet.add(neighbour); + + + } + } + + } + + } + + return openSet; + + } + + public ArrayList retracePath(Node startNode, Node endNode) { + + ArrayList path = new ArrayList(); + Node currentNode = endNode; + while(currentNode != startNode) { + path.add(currentNode); + currentNode = currentNode.parent; + } + + Collections.reverse(path); + return path; + } + + public float getDistance(Node nodeA, Node nodeB) { + + float distanceX = round(nodeA.getWorldPosition().x,2) - round(nodeB.getWorldPosition().x,2); + float distanceY = round(nodeA.getWorldPosition().y,2) - round(nodeB.getWorldPosition().y,2); + + if(distanceX > distanceY) + return 14*distanceY + 10*(distanceX-distanceY); + return 14*distanceX + 10*(distanceY-distanceX); + } +} diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Enemy.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Enemy.java index 8c6d420..da658fd 100644 --- a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Enemy.java +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Enemy.java @@ -18,8 +18,8 @@ import com.davidalexanderkelly.game.Entities.Behaviors.Node; import com.davidalexanderkelly.game.Entities.Behaviors.Pathfinding; import com.davidalexanderkelly.game.Screens.PlayScreen; -import com.davidalexanderkelly.game.Tools.InteractableWorldCreator; import com.davidalexanderkelly.game.Tools.PathfindingWorldCreator; +import com.davidalexanderkelly.game.Tools.TaskWorldCreator; public class Enemy extends Sprite{ public enum State{IDLE,RUNNING}; @@ -27,7 +27,7 @@ public enum State{IDLE,RUNNING}; public State previousState; - private InteractableWorldCreator interactables; + private TaskWorldCreator tasks; private Animation playerIdle; private Animation playerRun; private float stateTimer; @@ -165,14 +165,14 @@ public State getState() { public void setPath(int start, int end) { moving = false; pathfinding = new Pathfinding(); - List interactables = screen.interactables.getLocations(); + List interactables = screen.tasks.getLocations(); path = pathfinding.findPath(interactables.get(start),interactables.get(end),screen.pathfinder); } public void defineEnemy() { BodyDef bodyDefinition = new BodyDef(); - bodyDefinition.position.set(screen.interactables.getLocations().get(0).getWorldPosition().x,screen.interactables.getLocations().get(0).getWorldPosition().y); + bodyDefinition.position.set(screen.tasks.getLocations().get(0).getWorldPosition().x,screen.tasks.getLocations().get(0).getWorldPosition().y); bodyDefinition.type = BodyDef.BodyType.DynamicBody; box2dBody = world.createBody(bodyDefinition); FixtureDef fixtureDefinition = new FixtureDef(); diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Player.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Player.java index 97b9c47..42a34db 100644 --- a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Player.java +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Player.java @@ -109,10 +109,18 @@ public void definePlayer() { FixtureDef fixtureDefinition = new FixtureDef(); CircleShape shape = new CircleShape(); shape.setRadius(5 / SpaceGamePrototype.PixelsPerMetre); - + fixtureDefinition.filter.categoryBits = SpaceGamePrototype.PLAYER_BIT; + fixtureDefinition.filter.maskBits = SpaceGamePrototype.DEFAULT_BIT | SpaceGamePrototype.TELEPORTER_BIT; fixtureDefinition.shape = shape; - + box2dBody.createFixture(fixtureDefinition); + + CircleShape sensor = new CircleShape(); + sensor.setRadius(6 / SpaceGamePrototype.PixelsPerMetre); + fixtureDefinition.shape = sensor; + fixtureDefinition.isSensor = true; + box2dBody.createFixture(fixtureDefinition).setUserData("player"); + } diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Teleporter.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Teleporter.java new file mode 100644 index 0000000..a170eba --- /dev/null +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Entities/Teleporter.java @@ -0,0 +1,31 @@ +package com.davidalexanderkelly.game.Entities; + +import com.badlogic.gdx.physics.box2d.Body; +import com.badlogic.gdx.physics.box2d.BodyDef; +import com.badlogic.gdx.physics.box2d.CircleShape; +import com.badlogic.gdx.physics.box2d.Filter; +import com.badlogic.gdx.physics.box2d.FixtureDef; +import com.davidalexanderkelly.game.SpaceGamePrototype; + +public class Teleporter { + + private float x; + private float y; + private Body box2dBody; + + public Teleporter(float x, float y) { + this.x = x; + this.y = y; + + + } + + public void collide() { + System.out.println("Teleport"); + } + + + + + +} diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Scenes/Hud.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Scenes/Hud.java index cff19e0..d2b3d7f 100644 --- a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Scenes/Hud.java +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Scenes/Hud.java @@ -1,22 +1,84 @@ package com.davidalexanderkelly.game.Scenes; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.OrthographicCamera; +import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.scenes.scene2d.Stage; +import com.badlogic.gdx.scenes.scene2d.ui.Label; +import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.utils.Disposable; +import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; +import com.davidalexanderkelly.game.SpaceGamePrototype; + public class Hud implements Disposable{ - public Stage stage; - private Viewport viewport; - - public Hud(SpriteBatch sb) { - - } - - @Override - public void dispose() { - stage.dispose(); - } - - -} + + //Scene2D.ui Stage and its own Viewport for HUD + public Stage stage; + private Viewport viewport; + + //Mario score/time Tracking Variables + private Integer health; + private boolean timeUp; // true when the world timer reaches 0 + private Integer imposterCount; + + //Scene2D widgets + private Label healthLabel; + private Label imposterTextLabel; + private Label auberLabel; + private Label imposterLabel; + + public Hud(SpriteBatch sb){ + //define our tracking variables + health = 100; + //get imposetcount + imposterCount = 8; + + + //setup the HUD viewport using a new camera seperate from our gamecam + //define our stage using that viewport and our games spritebatch + viewport = new FitViewport(SpaceGamePrototype.V_WIDTH, SpaceGamePrototype.V_HEIGHT, new OrthographicCamera()); + stage = new Stage(viewport, sb); + + //define a table used to organize our hud's labels + Table table = new Table(); + //Top-Align table + table.top(); + //make the table fill the entire stage + table.setFillParent(true); + + //define our labels using the String, and a Label style consisting of a font and color + healthLabel = new Label(String.format("%03d", health), new Label.LabelStyle(new BitmapFont(), Color.WHITE)); + imposterTextLabel = new Label("IMPOSTERS REMAINING:", new Label.LabelStyle(new BitmapFont(), Color.WHITE)); + auberLabel = new Label("AUBER HEALTH:", new Label.LabelStyle(new BitmapFont(), Color.WHITE)); + imposterLabel = new Label(String.format("%03d",imposterCount), new Label.LabelStyle(new BitmapFont(), Color.WHITE)); + + //add our labels to our table, padding the top, and giving them all equal width with expandX + table.add(auberLabel).expandX().padTop(10); + table.add(imposterTextLabel).expandX().padTop(10); + //add a second row to our table + table.row(); + table.add(healthLabel).expandX(); + table.add(imposterLabel).expandX(); + + //add our table to the stage + stage.addActor(table); + + } + + public void dealDamage(int damage) { + health -= damage; + } + + + + + + @Override + public void dispose() { stage.dispose(); } + + public boolean isTimeUp() { return timeUp; } +} \ No newline at end of file diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Screens/MainMenuScreen.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Screens/MainMenuScreen.java new file mode 100644 index 0000000..2ce4b3f --- /dev/null +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Screens/MainMenuScreen.java @@ -0,0 +1,118 @@ +package com.davidalexanderkelly.game.Screens; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.InputAdapter; +import com.badlogic.gdx.Screen; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.math.Vector3; +import com.davidalexanderkelly.game.SpaceGamePrototype; + + +public class MainMenuScreen implements Screen { + + private static final int EXIT_BUTTON_WIDTH = 250; + private static final int EXIT_BUTTON_HEIGHT = 120; + private static final int PLAY_BUTTON_WIDTH = 300; + private static final int PLAY_BUTTON_HEIGHT = 120; + private static final int EXIT_BUTTON_Y = 100; + private static final int PLAY_BUTTON_Y = 230; + private static final int LOGO_WIDTH = 400; + private static final int LOGO_HEIGHT = 250; + private static final int LOGO_Y = 450; + + final SpaceGamePrototype game; + + Texture playButtonActive; + Texture playButtonInactive; + Texture exitButtonActive; + Texture exitButtonInactive; + Texture logo; + + public MainMenuScreen (final SpaceGamePrototype game) { + this.game = game; + playButtonActive = new Texture("assets/Images/play_button_active.png"); + playButtonInactive = new Texture("assets/Images/play_button_inactive.png"); + exitButtonActive = new Texture("assets/Images/exit_button_active.png"); + exitButtonInactive = new Texture("assets/Images/exit_button_inactive.png"); + logo = new Texture("assets/Images/logo.png"); + + final MainMenuScreen mainMenuScreen = this; + + Gdx.input.setInputProcessor(new InputAdapter() { + + @Override + public boolean touchDown(int screenX, int screenY, int pointer, int button) { + System.out.println(game.cam.getInputInGameWorld().x); + + //Exit button + int x = SpaceGamePrototype.V_WIDTH / 2 - EXIT_BUTTON_WIDTH / 2; + if (game.cam.getInputInGameWorld().x < (x*1.15) + EXIT_BUTTON_WIDTH && game.cam.getInputInGameWorld().x > (x*1.15) && SpaceGamePrototype.V_HEIGHT - game.cam.getInputInGameWorld().y < (EXIT_BUTTON_Y*1.75) + EXIT_BUTTON_HEIGHT && SpaceGamePrototype.V_HEIGHT - game.cam.getInputInGameWorld().y > (EXIT_BUTTON_Y*1.75)) { + mainMenuScreen.dispose(); + Gdx.app.exit(); + } + + //Play game button + x = SpaceGamePrototype.V_WIDTH / 2 - PLAY_BUTTON_WIDTH / 2; + if (game.cam.getInputInGameWorld().x < (x*1.15) + PLAY_BUTTON_WIDTH && game.cam.getInputInGameWorld().x > (x*1.15) && SpaceGamePrototype.V_HEIGHT - game.cam.getInputInGameWorld().y < (PLAY_BUTTON_Y*1.75) + PLAY_BUTTON_HEIGHT && SpaceGamePrototype.V_HEIGHT - game.cam.getInputInGameWorld().y > (PLAY_BUTTON_Y*1.75)) { + mainMenuScreen.dispose(); + game.setScreen(new PlayScreen(game)); + } + + return super.touchUp(screenX, screenY, pointer, button); + } + + }); + } + + @Override + public void show () { + + } + + @Override + public void render (float delta) { + Gdx.gl.glClearColor(0.15f, 0.15f, 0.3f, 1); + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + game.batch.begin(); + + + int x = SpaceGamePrototype.V_WIDTH / 2 - EXIT_BUTTON_WIDTH / 2; + if (game.cam.getInputInGameWorld().x < (x*1.15) + EXIT_BUTTON_WIDTH && game.cam.getInputInGameWorld().x > (x*1.15) && SpaceGamePrototype.V_HEIGHT - game.cam.getInputInGameWorld().y < (EXIT_BUTTON_Y*1.75) + EXIT_BUTTON_HEIGHT && SpaceGamePrototype.V_HEIGHT - game.cam.getInputInGameWorld().y > (EXIT_BUTTON_Y*1.75)) { + game.batch.draw(exitButtonActive, x, EXIT_BUTTON_Y, EXIT_BUTTON_WIDTH, EXIT_BUTTON_HEIGHT); + } else { + game.batch.draw(exitButtonInactive, x, EXIT_BUTTON_Y, EXIT_BUTTON_WIDTH, EXIT_BUTTON_HEIGHT); + } + + x = SpaceGamePrototype.V_WIDTH / 2 - PLAY_BUTTON_WIDTH / 2; + if (game.cam.getInputInGameWorld().x < (x*1.15) + PLAY_BUTTON_WIDTH && game.cam.getInputInGameWorld().x > (x*1.15) && SpaceGamePrototype.V_HEIGHT - game.cam.getInputInGameWorld().y < (PLAY_BUTTON_Y*1.75) + PLAY_BUTTON_HEIGHT && SpaceGamePrototype.V_HEIGHT - game.cam.getInputInGameWorld().y > (PLAY_BUTTON_Y*1.75)) { + game.batch.draw(playButtonActive, x, PLAY_BUTTON_Y, PLAY_BUTTON_WIDTH, PLAY_BUTTON_HEIGHT); + } else { + game.batch.draw(playButtonInactive, x, PLAY_BUTTON_Y, PLAY_BUTTON_WIDTH, PLAY_BUTTON_HEIGHT); + } + + game.batch.draw(logo, SpaceGamePrototype.V_WIDTH / 2 - LOGO_WIDTH / 2 , LOGO_Y, LOGO_WIDTH, LOGO_HEIGHT); + + game.batch.end(); + } + + @Override + public void resize (int V_WIDTH, int V_HEIGHT) { + + } + + @Override + public void pause() {} + + @Override + public void resume() {} + + @Override + public void hide() {} + + @Override + public void dispose() { + Gdx.input.setInputProcessor(null); + } + +} diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Screens/PlayScreen.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Screens/PlayScreen.java index 97bfd92..6f6e48b 100644 --- a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Screens/PlayScreen.java +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Screens/PlayScreen.java @@ -41,8 +41,10 @@ import com.davidalexanderkelly.game.Scenes.Hud; import com.davidalexanderkelly.game.Tools.Assets; import com.davidalexanderkelly.game.Tools.Box2DWorldCreator; -import com.davidalexanderkelly.game.Tools.InteractableWorldCreator; import com.davidalexanderkelly.game.Tools.PathfindingWorldCreator; +import com.davidalexanderkelly.game.Tools.TaskWorldCreator; +import com.davidalexanderkelly.game.Tools.InteractiveWorldCreator; +import com.davidalexanderkelly.game.Tools.WorldContactListener; import com.davidalexanderkelly.game.Tools.EnemyUpdater; public class PlayScreen implements Screen { @@ -74,7 +76,8 @@ public class PlayScreen implements Screen { private Box2DDebugRenderer collisionRenderer; public PathfindingWorldCreator pathfinder; - public InteractableWorldCreator interactables; + public TaskWorldCreator tasks; + public InteractiveWorldCreator teleporters; private Assets assets; private Player player; @@ -105,12 +108,14 @@ public PlayScreen(SpaceGamePrototype game) { //Creates the collision world world = new World(new Vector2(0,0), true); - interactables = new InteractableWorldCreator(map); - interactables.setLocations(); + tasks = new TaskWorldCreator(map); + tasks.setLocations(); pathfinder = new PathfindingWorldCreator(map); pathfinder.setLocations(); + teleporters = new InteractiveWorldCreator(this); + //allows the rendering of collision boxes @@ -132,6 +137,8 @@ public PlayScreen(SpaceGamePrototype game) { //creates Player in the world player = new Player(world,this ); enemy = new Enemy(world,this); + + world.setContactListener(new WorldContactListener()); @@ -212,6 +219,9 @@ public void render(float delta) { player.draw(game.batch); enemy.draw(game.batch); game.batch.end(); + + game.batch.setProjectionMatrix(hud.stage.getCamera().combined); + hud.stage.draw(); } public TiledMap getMap() { diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/SpaceGamePrototype.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/SpaceGamePrototype.java index aef8de3..3e9447e 100644 --- a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/SpaceGamePrototype.java +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/SpaceGamePrototype.java @@ -8,7 +8,9 @@ import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.davidalexanderkelly.game.Screens.MainMenuScreen; import com.davidalexanderkelly.game.Screens.PlayScreen; +import com.davidalexanderkelly.game.Tools.MenuCamera; public class SpaceGamePrototype extends Game { @@ -17,14 +19,20 @@ public class SpaceGamePrototype extends Game { public static final int V_HEIGHT = 720; public static final float PixelsPerMetre = 100; - public SpriteBatch batch; + public static final short DEFAULT_BIT = 1; + public static final short PLAYER_BIT =2; + public static final short TELEPORTER_BIT = 4; + public SpriteBatch batch; + public MenuCamera cam; @Override public void create () { // Sets level batch = new SpriteBatch(); - setScreen(new PlayScreen(this)); + cam = new MenuCamera(V_WIDTH, V_HEIGHT); + + setScreen(new MainMenuScreen(this)); } @Override diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/BinarySearch.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/BinarySearch.java index 9c54822..a4a13fe 100644 --- a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/BinarySearch.java +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/BinarySearch.java @@ -1,63 +1,63 @@ -package com.davidalexanderkelly.game.Tools; - -import java.math.BigDecimal; -import java.util.List; - -import com.davidalexanderkelly.game.Entities.Behaviors.Node; - -class BinarySearch { - - public int binarySearch(List locations, Node x) - { - int lowerBound = 0, upperBound = (locations.size() - 1); - boolean foundX = false; - int mid = 0; - while (lowerBound <= upperBound) { - if(foundX == false) { - mid = (lowerBound + upperBound) / 2; - } - - - if (round(locations.get(mid).getWorldPosition().x,2) == round(x.getWorldPosition().x,2) ) { - foundX = true; - if(round(locations.get(mid).getWorldPosition().y,2) == round(x.getWorldPosition().y,2) ) { - - return mid; - } - - if(round(locations.get(mid).getWorldPosition().y,2) < round(x.getWorldPosition().y,2)) { - mid +=1; - lowerBound +=1; - } - else { - mid -=1; - upperBound -=1; - } - - } - else if(foundX == true) { - return -1; - } - - - if (round(locations.get(mid).getWorldPosition().x,2) < round(x.getWorldPosition().x,2)) { - lowerBound = mid + 1; - - } - else { - upperBound = mid - 1; - } - - } - - return -1; - } - - public static float round(float d, int decimalPlace) { - BigDecimal bd = new BigDecimal(Float.toString(d)); - bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP); - return bd.floatValue(); - } - - -} +package com.davidalexanderkelly.game.Tools; + +import java.math.BigDecimal; +import java.util.List; + +import com.davidalexanderkelly.game.Entities.Behaviors.Node; + +class BinarySearch { + + public int binarySearch(List locations, Node x) + { + int lowerBound = 0, upperBound = (locations.size() - 1); + boolean foundX = false; + int mid = 0; + while (lowerBound <= upperBound) { + if(foundX == false) { + mid = (lowerBound + upperBound) / 2; + } + + + if (round(locations.get(mid).getWorldPosition().x,2) == round(x.getWorldPosition().x,2) ) { + foundX = true; + if(round(locations.get(mid).getWorldPosition().y,2) == round(x.getWorldPosition().y,2) ) { + + return mid; + } + + if(round(locations.get(mid).getWorldPosition().y,2) < round(x.getWorldPosition().y,2)) { + mid +=1; + lowerBound +=1; + } + else { + mid -=1; + upperBound -=1; + } + + } + else if(foundX == true) { + return -1; + } + + + if (round(locations.get(mid).getWorldPosition().x,2) < round(x.getWorldPosition().x,2)) { + lowerBound = mid + 1; + + } + else { + upperBound = mid - 1; + } + + } + + return -1; + } + + public static float round(float d, int decimalPlace) { + BigDecimal bd = new BigDecimal(Float.toString(d)); + bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP); + return bd.floatValue(); + } + + +} diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/Box2DWorldCreator.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/Box2DWorldCreator.java index d68e96e..c983e1a 100644 --- a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/Box2DWorldCreator.java +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/Box2DWorldCreator.java @@ -32,6 +32,6 @@ public Box2DWorldCreator(PlayScreen screen) { shape.setAsBox(rect.getWidth() / 2 / SpaceGamePrototype.PixelsPerMetre, rect.getHeight() /2 / SpaceGamePrototype.PixelsPerMetre); fixtureDefinition.shape = shape; body.createFixture(fixtureDefinition); - }; + } } } diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/EnemyUpdater.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/EnemyUpdater.java index 365dc6d..c98cda7 100644 --- a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/EnemyUpdater.java +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/EnemyUpdater.java @@ -1,18 +1,18 @@ -package com.davidalexanderkelly.game.Tools; - -import com.davidalexanderkelly.game.Entities.Enemy; - -public class EnemyUpdater extends Thread { - - Enemy enemy; - float deltaTime; - - public EnemyUpdater(Enemy enemy, float deltaTime) { - this.enemy = enemy; - this.deltaTime = deltaTime; - } - - public void run() { - enemy.update(deltaTime); - } -} +package com.davidalexanderkelly.game.Tools; + +import com.davidalexanderkelly.game.Entities.Enemy; + +public class EnemyUpdater extends Thread { + + Enemy enemy; + float deltaTime; + + public EnemyUpdater(Enemy enemy, float deltaTime) { + this.enemy = enemy; + this.deltaTime = deltaTime; + } + + public void run() { + enemy.update(deltaTime); + } +} diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/InteractiveWorldCreator.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/InteractiveWorldCreator.java new file mode 100644 index 0000000..7887a91 --- /dev/null +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/InteractiveWorldCreator.java @@ -0,0 +1,49 @@ +package com.davidalexanderkelly.game.Tools; + +import java.util.ArrayList; +import java.util.List; + +import com.badlogic.gdx.maps.MapObject; +import com.badlogic.gdx.maps.objects.RectangleMapObject; +import com.badlogic.gdx.maps.tiled.TiledMap; +import com.badlogic.gdx.math.Rectangle; +import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.physics.box2d.Body; +import com.badlogic.gdx.physics.box2d.BodyDef; +import com.badlogic.gdx.physics.box2d.Filter; +import com.badlogic.gdx.physics.box2d.Fixture; +import com.badlogic.gdx.physics.box2d.FixtureDef; +import com.badlogic.gdx.physics.box2d.PolygonShape; +import com.badlogic.gdx.physics.box2d.World; +import com.davidalexanderkelly.game.SpaceGamePrototype; +import com.davidalexanderkelly.game.Entities.Behaviors.Node; +import com.davidalexanderkelly.game.Screens.PlayScreen; + +public class InteractiveWorldCreator { + + private ArrayList locations; + private TiledMap map; + + protected Fixture fixture; + +public InteractiveWorldCreator(PlayScreen screen) { + World world = screen.getWorld(); + TiledMap map = screen.getMap(); + + BodyDef bodyDefinition = new BodyDef(); + PolygonShape shape = new PolygonShape(); + FixtureDef fixtureDefinition = new FixtureDef(); + Body body; + + bodyDefinition.type = BodyDef.BodyType.StaticBody; + } + + public void setCategoryFilter(short filterBit) { + Filter filter = new Filter(); + filter.categoryBits = filterBit; + fixture.setFilterData(filter); + } + + + +} \ No newline at end of file diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/MenuCamera.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/MenuCamera.java new file mode 100644 index 0000000..12aedca --- /dev/null +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/MenuCamera.java @@ -0,0 +1,37 @@ +package com.davidalexanderkelly.game.Tools; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.OrthographicCamera; +import com.badlogic.gdx.math.Matrix4; +import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.math.Vector3; +import com.badlogic.gdx.utils.viewport.StretchViewport; + +public class MenuCamera { + + private OrthographicCamera cam; + private StretchViewport viewport; + + public MenuCamera (int width, int height) { + cam = new OrthographicCamera(); + viewport = new StretchViewport(width, height, cam); + viewport.apply(); + cam.position.set(width / 2, height / 2, 0); + cam.update(); + } + + public Matrix4 combined() { + return cam.combined; + } + + public void update (int width, int height) { + viewport.update(width, height); + } + + public Vector2 getInputInGameWorld () { + Vector3 inputScreen = new Vector3(Gdx.input.getX(), Gdx.graphics.getHeight() - (Gdx.input.getY()), 0); + Vector3 unprojected = cam.unproject(inputScreen); + return new Vector2(unprojected.x, unprojected.y); + } + +} diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/PathfindingWorldCreator.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/PathfindingWorldCreator.java new file mode 100644 index 0000000..7bd73f2 --- /dev/null +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/PathfindingWorldCreator.java @@ -0,0 +1,86 @@ +package com.davidalexanderkelly.game.Tools; + +import com.badlogic.gdx.maps.MapObject; +import com.badlogic.gdx.maps.objects.RectangleMapObject; +import com.badlogic.gdx.maps.tiled.TiledMap; +import com.badlogic.gdx.math.Rectangle; +import com.badlogic.gdx.math.Vector; +import com.badlogic.gdx.math.Vector2; +import com.davidalexanderkelly.game.SpaceGamePrototype; +import com.davidalexanderkelly.game.Entities.Behaviors.Node; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + + + +public class PathfindingWorldCreator { + + private List locations; + private List> locationBreakdown; + private TiledMap map; + + + public PathfindingWorldCreator(TiledMap map) { + + this.map = map; + } + + public void setLocations() { + + this.locations = new ArrayList(); + this.locationBreakdown = new ArrayList>(); + + for(MapObject object : map.getLayers().get("Ai Pathing").getObjects().getByType(RectangleMapObject.class)){ + Rectangle rect = ((RectangleMapObject) object).getRectangle(); + Vector2 vPosition = new Vector2((rect.getX() + rect.getWidth() / 2) / SpaceGamePrototype.PixelsPerMetre,(rect.getY() + rect.getHeight() / 2) / SpaceGamePrototype.PixelsPerMetre); + Node newNode = new Node(vPosition); + locations.add(newNode); + + } + QuickSort ob = new QuickSort(locations); + ob.sort(0, (locations.size())-1); + locations = ob.path; + + + } + + + + public List getLocations() { + + return locations; + } + + public static float round(float d, int decimalPlace) { + BigDecimal bd = new BigDecimal(Float.toString(d)); + bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP); + return bd.floatValue(); + } + + public ArrayList getNeighbours(Node node){ + ArrayList neighbours = new ArrayList(); + for(int x = -1; x<= 1; x++) { + for(int y = -1; y<= 1; y++) { + if(x == y || (x+y) == 0) + continue; + + float checkX = node.getWorldPosition().x + (x*0.16f); + float checkY = node.getWorldPosition().y + (y*0.16f); + Vector2 checkV = new Vector2(checkX,checkY); + Node checkN = new Node(checkV); + BinarySearch ob = new BinarySearch(); + int result = ob.binarySearch(locations,checkN); + if(result != -1) { + neighbours.add(locations.get(result)); + } + + } + } + System.out.println(neighbours.size()); + return neighbours; + } + + +} diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/QuickSort.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/QuickSort.java index 8871f71..683377a 100644 --- a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/QuickSort.java +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/QuickSort.java @@ -1,61 +1,61 @@ -package com.davidalexanderkelly.game.Tools; - -import java.util.List; - -import com.davidalexanderkelly.game.Entities.Behaviors.Node; - -class QuickSort { - - public List path; - - public QuickSort(List path) { - this.path = path; - } - - public int partition(int low, int high) - { - float pivot = path.get(high).getWorldPosition().x; - float pivotY = path.get(high).getWorldPosition().y; - int i = (low-1); - for (int j=low; j path; + + public QuickSort(List path) { + this.path = path; + } + + public int partition(int low, int high) + { + float pivot = path.get(high).getWorldPosition().x; + float pivotY = path.get(high).getWorldPosition().y; + int i = (low-1); + for (int j=low; j locations; + private TiledMap map; + +public TaskWorldCreator(TiledMap map) { + + this.map = map; + } + + public void setLocations() { + + this.locations = new ArrayList(); + + for(MapObject object : map.getLayers().get("Tasks").getObjects().getByType(RectangleMapObject.class)){ + Rectangle rect = ((RectangleMapObject) object).getRectangle(); + Vector2 vPosition = new Vector2((rect.getX() + rect.getWidth() / 2) / SpaceGamePrototype.PixelsPerMetre,(rect.getY() + rect.getHeight() / 2) / SpaceGamePrototype.PixelsPerMetre); + Node newNode = new Node(vPosition); + locations.add(newNode); + } + } + + public List getLocations() { + return this.locations; + } + +} diff --git a/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/WorldContactListener.java b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/WorldContactListener.java new file mode 100644 index 0000000..e4dda73 --- /dev/null +++ b/SpaceGameFolder/core/src/com/davidalexanderkelly/game/Tools/WorldContactListener.java @@ -0,0 +1,47 @@ +package com.davidalexanderkelly.game.Tools; + +import com.badlogic.gdx.physics.box2d.Contact; +import com.badlogic.gdx.physics.box2d.ContactImpulse; +import com.badlogic.gdx.physics.box2d.ContactListener; +import com.badlogic.gdx.physics.box2d.Fixture; +import com.badlogic.gdx.physics.box2d.Manifold; +import com.davidalexanderkelly.game.Entities.Teleporter; + +public class WorldContactListener implements ContactListener{ + + @Override + public void beginContact(Contact contact) { + Fixture fixtureA = contact.getFixtureA(); + Fixture fixtureB = contact.getFixtureB(); + + if("player".equals(fixtureA.getUserData()) || "player".equals(fixtureB.getUserData())) { + Fixture player = "player".equals(fixtureA.getUserData()) ? fixtureA : fixtureB; + Fixture object = player == fixtureA ? fixtureB : fixtureA; + + + if(object.getUserData() != null) { + ((Teleporter) object.getUserData()).collide(); + } + } + + } + + @Override + public void endContact(Contact contact) { + // TODO Auto-generated method stub + + } + + @Override + public void preSolve(Contact contact, Manifold oldManifold) { + // TODO Auto-generated method stub + + } + + @Override + public void postSolve(Contact contact, ContactImpulse impulse) { + // TODO Auto-generated method stub + + } + +} diff --git a/SpaceGameFolder/desktop/assets/Images/exit_button_active.png b/SpaceGameFolder/desktop/assets/Images/exit_button_active.png new file mode 100644 index 0000000..62a94e7 Binary files /dev/null and b/SpaceGameFolder/desktop/assets/Images/exit_button_active.png differ diff --git a/SpaceGameFolder/desktop/assets/Images/exit_button_inactive.png b/SpaceGameFolder/desktop/assets/Images/exit_button_inactive.png new file mode 100644 index 0000000..a647fa1 Binary files /dev/null and b/SpaceGameFolder/desktop/assets/Images/exit_button_inactive.png differ diff --git a/SpaceGameFolder/desktop/assets/Images/game_over.png b/SpaceGameFolder/desktop/assets/Images/game_over.png new file mode 100644 index 0000000..99d6bac Binary files /dev/null and b/SpaceGameFolder/desktop/assets/Images/game_over.png differ diff --git a/SpaceGameFolder/desktop/assets/Images/logo.png b/SpaceGameFolder/desktop/assets/Images/logo.png new file mode 100644 index 0000000..5ae2332 Binary files /dev/null and b/SpaceGameFolder/desktop/assets/Images/logo.png differ diff --git a/SpaceGameFolder/desktop/assets/Images/play_button_active.png b/SpaceGameFolder/desktop/assets/Images/play_button_active.png new file mode 100644 index 0000000..dbdabeb Binary files /dev/null and b/SpaceGameFolder/desktop/assets/Images/play_button_active.png differ diff --git a/SpaceGameFolder/desktop/assets/Images/play_button_inactive.png b/SpaceGameFolder/desktop/assets/Images/play_button_inactive.png new file mode 100644 index 0000000..6a91a5f Binary files /dev/null and b/SpaceGameFolder/desktop/assets/Images/play_button_inactive.png differ diff --git a/SpaceGameFolder/desktop/assets/Maps/Background.tsx b/SpaceGameFolder/desktop/assets/Maps/Background.tsx index 4903943..72ed3af 100644 --- a/SpaceGameFolder/desktop/assets/Maps/Background.tsx +++ b/SpaceGameFolder/desktop/assets/Maps/Background.tsx @@ -1,4 +1,4 @@ - - - - + + + + diff --git a/SpaceGameFolder/desktop/assets/Maps/SpaceStation.tmx b/SpaceGameFolder/desktop/assets/Maps/SpaceStation.tmx index 371fef8..b75f5ac 100644 --- a/SpaceGameFolder/desktop/assets/Maps/SpaceStation.tmx +++ b/SpaceGameFolder/desktop/assets/Maps/SpaceStation.tmx @@ -1,2309 +1,2319 @@ - - - - - -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,3221225488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741840,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483652,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,31,31,34,23,36,31,9,9,9,31,36,23,29,31,31,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,2147483679,2147483679,2147483677,2147483671,2147483684,2147483679,2147483657,2147483657,2147483657,2147483679,2147483684,2147483682,2147483671,2147483679,2147483679,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,21,21,21,21,21,21,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,91,92,93,3221225505,91,92,93,3221225505,21,21,121,124,125,21,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,2147483669,2147483773,2147483772,2147483769,2147483669,2147483669,1073741857,2147483735,2147483734,2147483733,1073741857,85,86,87,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,103,104,105,3221225505,103,104,105,3221225505,21,21,133,136,137,21,2147483655,0,0,0,0,0,0,0,0,0,0,0,1073741840,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,3221225488,0,0,0,0,0,0,0,0,0,0,0,7,2147483669,2147483785,2147483784,2147483781,2147483669,2147483669,1073741857,2147483747,2147483746,2147483745,1073741857,97,98,99,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,115,116,117,3221225505,115,116,117,3221225505,21,21,21,21,21,21,2147483655,0,0,0,0,0,0,0,0,0,0,0,1073741831,31,31,29,29,29,31,9,10,10,31,29,29,29,31,31,3221225479,0,0,0,0,0,0,0,0,0,0,0,7,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,2147483759,2147483758,2147483757,1073741857,109,110,111,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,21,21,123,124,125,21,2147483665,3221225478,6,2147483654,2147483654,2147483654,2147483654,2147483654,5,0,0,0,1073741831,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3221225479,0,0,0,2147483653,6,6,6,6,6,2147483654,1073741830,17,2147483669,2147483773,2147483772,2147483771,2147483669,2147483669,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,91,92,93,3221225505,91,92,93,3221225505,21,21,135,136,137,21,2147483679,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483679,3221225479,0,0,0,1073741831,21,65,21,21,65,21,21,21,21,21,65,21,21,65,21,3221225479,0,0,0,1073741831,31,29,29,29,29,29,29,31,2147483669,2147483785,2147483784,2147483783,2147483669,2147483669,1073741857,2147483735,2147483734,2147483733,1073741857,94,95,96,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,103,104,105,3221225505,103,104,105,3221225505,21,21,21,21,21,21,3758096417,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741831,21,77,21,21,77,21,21,21,21,21,77,21,21,77,21,3221225479,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1610612769,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,2147483747,2147483746,2147483745,1073741857,106,107,108,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,115,116,117,3221225505,115,116,117,3221225505,21,21,21,21,21,21,3758096417,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741831,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3221225479,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1610612769,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,2147483759,2147483758,2147483757,1073741857,118,119,120,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,21,21,21,21,21,21,1073741840,3221225478,3221225478,3221225478,5,3221225493,3221225493,3221225493,3221225477,6,6,6,1073741829,21,65,21,21,65,21,21,21,21,21,65,21,21,65,21,3221225477,2147483654,2147483654,2147483654,1073741829,1073741845,1073741845,1073741845,2147483653,1073741830,1073741830,1073741830,3221225488,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,94,95,96,3221225505,21,21,21,21,21,21,21,21,21,2147483773,2147483655,0,0,0,3221225479,3221225493,3221225493,3221225493,2147483679,2147483677,2147483677,2147483677,2147483679,21,77,21,21,77,21,21,21,21,21,77,21,21,77,21,31,29,29,29,31,1073741845,1073741845,1073741845,1073741831,0,0,0,7,125,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,85,86,87,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,106,107,108,3221225505,21,21,21,21,21,21,21,21,21,2147483785,2147483655,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,21,536870945,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,2684354593,2147483669,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741831,0,0,0,7,137,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,97,98,99,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,118,119,120,3221225505,21,21,21,21,21,21,21,21,21,2147483773,2147483655,0,0,0,3221225479,3221225493,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,3758096417,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1610612769,21,21,21,21,21,21,1073741845,1073741831,0,0,0,7,125,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,109,110,111,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,3221225505,3221225505,3221225505,3221225505,21,21,21,21,21,21,21,21,21,2147483785,2147483655,0,0,0,1073741828,6,6,6,6,6,6,6,1073741841,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3221225489,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,3221225476,0,0,0,7,137,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,1073741857,1073741857,1073741857,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,16,6,6,6,6,6,3221225488,33,33,33,3221225489,6,6,6,6,6,2147483664,0,0,0,0,0,0,0,0,0,0,0,1073741831,125,44,45,2147483773,125,21,21,21,21,21,2147483773,125,2147483689,2147483688,2147483773,3221225479,0,0,0,0,0,0,0,0,0,0,0,16,2147483654,2147483654,2147483654,2147483654,2147483654,1073741841,2147483681,2147483681,2147483681,1073741840,2147483654,2147483654,2147483654,2147483654,2147483654,2147483664,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3221225479,21,21,21,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,137,56,57,2147483785,137,21,21,21,21,21,2147483785,137,2147483701,2147483700,2147483785,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,125,44,45,2147483773,125,21,21,21,21,21,2147483773,125,2147483689,2147483688,2147483773,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,137,56,57,2147483785,137,21,21,21,21,21,2147483785,137,2147483701,2147483700,2147483785,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,6,6,6,6,6,3221225488,33,33,33,3221225489,6,6,6,6,6,3221225476,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,3221225477,6,6,6,6,6,6,6,6,6,6,6,6,6,5,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,2147483653,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,1073741829,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,2147483679,2147483679,29,29,29,29,29,29,29,29,29,29,2147483679,2147483679,7,0,0,0,0,0,0,0,0,0,7,21,21,21,7,0,0,0,0,0,0,0,0,0,2147483655,31,31,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,31,31,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,7,0,0,0,0,0,0,0,0,0,7,21,21,21,7,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,7,0,0,0,0,0,0,0,0,0,7,21,21,21,7,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,3221225478,1073741830,1073741830,1073741830,1073741830,1073741830,5,21,21,21,7,0,0,0,0,0,0,0,0,0,7,21,21,21,7,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,2147483653,3221225478,3221225478,3221225478,3221225478,3221225478,1073741830,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,2147483664,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,21,21,21,7,0,0,0,0,0,0,0,0,0,7,21,21,21,7,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,21,21,21,7,0,0,0,0,0,0,0,0,0,7,21,21,21,7,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,21,21,21,7,0,0,0,0,0,0,0,0,0,7,21,21,21,7,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,3221225488,0,0,0,1073741831,21,21,21,7,0,0,0,4,6,6,6,6,6,17,21,21,21,16,6,6,6,6,6,3221225488,0,0,0,2147483655,2147483669,2147483669,2147483669,3221225479,0,0,0,1073741840,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483652,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,31,31,29,29,29,31,29,29,29,31,29,29,29,31,31,3221225479,0,0,0,1073741831,21,21,21,7,0,0,0,7,31,31,29,29,29,31,33,33,33,31,29,29,29,31,31,3221225479,0,0,0,2147483655,2147483669,2147483669,2147483669,3221225479,0,0,0,1073741831,2147483679,2147483679,2147483677,2147483677,2147483677,2147483679,29,29,29,2147483679,2147483677,2147483677,2147483677,2147483679,2147483679,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,125,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483773,3221225479,0,0,0,1073741831,21,21,21,7,0,0,0,7,125,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483773,3221225479,0,0,0,2147483655,2147483669,2147483669,2147483669,3221225479,0,0,0,1073741831,125,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483773,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,137,94,95,96,21,21,21,21,21,21,21,94,95,96,2147483785,3221225479,0,0,0,1073741831,21,21,21,7,0,0,0,7,137,94,95,96,21,21,21,21,21,21,21,94,95,96,2147483785,3221225479,0,0,0,2147483655,2147483669,2147483669,2147483669,3221225479,0,0,0,1073741831,137,2147483744,2147483743,2147483742,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483744,2147483743,2147483742,2147483785,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,106,107,108,21,21,21,21,21,21,21,106,107,108,21,3221225479,0,0,0,1073741831,21,21,21,7,0,0,0,7,21,106,107,108,21,21,21,21,21,21,21,106,107,108,21,3221225479,0,0,0,2147483655,2147483669,2147483669,2147483669,3221225479,0,0,0,1073741831,2147483669,2147483756,2147483755,2147483754,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483756,2147483755,2147483754,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,118,119,120,21,21,21,21,21,21,21,118,119,120,21,3221225477,2147483654,6,6,17,21,21,21,3221225477,2147483654,6,6,17,21,118,119,120,21,21,21,21,21,21,21,118,119,120,21,3221225477,2147483654,6,6,17,2147483669,2147483669,2147483669,3221225477,2147483654,6,6,17,2147483669,2147483768,2147483767,2147483766,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483768,2147483767,2147483766,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,31,29,29,29,31,21,1073741845,21,31,29,29,29,31,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,31,29,29,29,31,2147483669,3221225493,2147483669,31,29,29,29,31,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1610612769,21,21,21,1610612769,21,21,21,1610612769,21,21,21,1610612769,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1610612769,21,21,21,1610612769,2147483669,2147483669,2147483669,1610612769,21,21,21,1610612769,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1610612769,21,21,21,1610612769,21,21,21,1610612769,21,21,21,1610612769,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1610612769,21,21,21,1610612769,2147483669,2147483669,2147483669,1610612769,21,21,21,1610612769,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1610612769,21,21,21,1610612769,1073741845,1073741845,1073741845,1610612769,21,21,21,1610612769,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1610612769,21,21,21,1610612769,3221225493,3221225493,3221225493,1610612769,21,21,21,1610612769,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483653,3221225478,1073741830,1073741830,5,1073741845,1073741845,1073741845,2147483653,3221225478,1073741830,1073741830,5,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483653,3221225478,1073741830,1073741830,5,3221225493,3221225493,3221225493,2147483653,3221225478,1073741830,1073741830,5,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,94,95,96,21,21,21,21,21,21,21,94,95,96,21,3221225479,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,7,21,94,95,96,21,21,21,21,21,21,21,94,95,96,21,3221225479,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741831,2147483669,2147483744,2147483743,2147483742,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483744,2147483743,2147483742,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,106,107,108,21,21,21,21,21,21,21,106,107,108,21,3221225479,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,7,21,106,107,108,21,21,21,21,21,21,21,106,107,108,21,3221225479,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741831,2147483669,2147483756,2147483755,2147483754,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483756,2147483755,2147483754,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,125,118,119,120,21,21,21,21,21,21,21,118,119,120,2147483773,3221225479,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,7,125,118,119,120,21,21,21,21,21,21,21,118,119,120,2147483773,3221225479,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741831,125,2147483768,2147483767,2147483766,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483768,2147483767,2147483766,2147483773,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,137,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483785,3221225479,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,7,137,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483785,3221225479,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741831,137,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483785,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,16,6,6,6,6,6,1073741830,1073741830,1073741830,1073741830,1073741830,6,6,6,6,6,3221225476,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,16,6,6,6,6,6,3221225488,33,33,33,3221225489,6,6,6,6,6,3221225476,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741828,2147483654,2147483654,2147483654,2147483654,2147483654,3221225478,3221225478,3221225478,3221225478,3221225478,2147483654,2147483654,2147483654,2147483654,2147483654,2147483664,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2147483653,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741829,1073741845,1073741845,1073741845,1073741831,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225477,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,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,7,2147483679,2147483679,29,29,29,29,29,29,29,29,29,29,2147483679,2147483679,1073741845,1073741845,1073741845,1073741831,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,31,31,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,31,31,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741831,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741831,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,2147483653,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741829,0,0,0,0,0,0,0,0,0,7,21,21,21,7,0,0,0,0,0,0,0,0,0,3221225477,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,5,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,1073741831,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,6,6,6,6,6,17,21,21,21,16,6,6,6,6,6,3221225488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3221225479,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,1073741831,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,31,31,29,29,29,31,33,33,33,31,29,29,29,31,31,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3221225479,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,1073741831,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,125,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483773,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3221225479,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,2147483655,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,137,94,95,96,21,21,21,21,21,21,21,94,95,96,2147483785,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,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,6,6,6,6,6,17,21,21,21,16,6,6,6,6,6,3221225488,0,0,0,0,0,0,0,0,0,0,0,7,21,106,107,108,21,21,21,21,21,21,21,106,107,108,21,2147483655,0,0,0,0,0,0,0,0,0,0,0,1073741840,2147483654,2147483654,2147483654,2147483654,2147483654,2147483664,2147483669,2147483669,2147483669,2147483665,2147483654,2147483654,2147483654,2147483654,2147483654,2147483652,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,31,31,29,29,29,31,33,33,33,31,29,29,29,31,31,3221225479,0,0,0,0,0,0,0,0,0,0,0,7,21,118,119,120,21,21,21,21,21,21,21,118,119,120,21,2147483655,0,0,0,0,0,0,0,0,0,0,0,1073741831,2147483679,2147483679,2147483677,2147483677,2147483677,2147483679,2147483681,2147483681,2147483681,2147483679,2147483677,2147483677,2147483677,2147483679,2147483679,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,125,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483773,3221225479,0,0,0,2147483653,6,6,6,6,6,2147483654,1073741830,17,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483665,3221225478,6,2147483654,2147483654,2147483654,2147483654,2147483654,5,0,0,0,1073741831,125,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483773,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,137,94,95,96,21,21,21,21,21,21,21,94,95,96,2147483785,3221225479,0,0,0,1073741831,31,29,29,29,29,29,29,31,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483679,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483679,3221225479,0,0,0,1073741831,137,2147483744,2147483743,2147483742,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483744,2147483743,2147483742,2147483785,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,106,107,108,21,21,21,21,21,21,21,106,107,108,21,3221225479,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1610612769,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3758096417,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741831,2147483669,2147483756,2147483755,2147483754,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483756,2147483755,2147483754,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,118,119,120,21,21,21,21,21,21,21,118,119,120,21,3221225479,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1610612769,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3758096417,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741831,2147483669,2147483768,2147483767,2147483766,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483768,2147483767,2147483766,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3221225477,2147483654,2147483654,2147483654,1073741829,1073741845,1073741845,1073741845,2147483653,1073741830,1073741830,1073741830,3221225488,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1073741840,3221225478,3221225478,3221225478,5,3221225493,3221225493,3221225493,3221225477,6,6,6,1073741829,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,31,29,29,29,31,1073741845,1073741845,1073741845,1073741831,0,0,0,7,21,94,95,96,21,21,21,21,21,21,21,94,95,96,21,2147483655,0,0,0,3221225479,3221225493,3221225493,3221225493,2147483679,2147483677,2147483677,2147483677,2147483679,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,2684354593,2147483669,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741831,0,0,0,7,21,106,107,108,21,21,21,21,21,21,21,106,107,108,21,2147483655,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,21,536870945,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1610612769,21,21,21,21,21,21,1073741845,1073741831,0,0,0,7,125,118,119,120,21,21,21,21,21,21,21,118,119,120,2147483773,2147483655,0,0,0,3221225479,3221225493,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,3758096417,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3221225489,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,3221225476,0,0,0,7,137,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483785,2147483655,0,0,0,1073741828,6,6,6,6,6,6,6,1073741841,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3221225479,0,0,0,0,0,0,0,0,0,0,0,16,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,2147483664,0,0,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,94,95,96,21,21,21,21,21,21,21,94,95,96,21,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,2147483669,2147483744,2147483743,2147483742,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483744,2147483743,2147483742,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,21,106,107,108,21,21,21,21,21,21,21,106,107,108,21,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,2147483669,2147483756,2147483755,2147483754,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483756,2147483755,2147483754,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,125,118,119,120,21,21,21,21,21,21,21,118,119,120,2147483773,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,125,2147483768,2147483767,2147483766,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483768,2147483767,2147483766,2147483773,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,7,137,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483785,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,137,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483785,2147483655,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,16,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,1073741829,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3221225477,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483664,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,3221225488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741840,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483652,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,31,31,34,23,36,31,9,9,9,31,36,23,29,31,31,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,2147483679,2147483679,2147483677,2147483671,2147483684,2147483679,2147483657,2147483657,2147483657,2147483679,2147483684,2147483682,2147483671,2147483679,2147483679,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,21,21,21,21,21,21,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,91,92,93,3221225505,91,92,93,3221225505,21,21,121,124,125,21,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,2147483669,2147483773,2147483772,2147483769,2147483669,2147483669,1073741857,2147483735,2147483734,2147483733,1073741857,85,86,87,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,103,104,105,3221225505,103,104,105,3221225505,21,21,133,136,137,21,2147483655,0,0,0,0,0,0,0,0,0,0,0,1073741840,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,3221225488,0,0,0,0,0,0,0,0,0,0,0,7,2147483669,2147483785,2147483784,2147483781,2147483669,2147483669,1073741857,2147483747,2147483746,2147483745,1073741857,97,98,99,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,115,116,117,3221225505,115,116,117,3221225505,21,21,21,21,21,21,2147483655,0,0,0,0,0,0,0,0,0,0,0,1073741831,31,31,29,29,29,31,9,10,10,31,29,29,29,31,31,3221225479,0,0,0,0,0,0,0,0,0,0,0,7,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,2147483759,2147483758,2147483757,1073741857,109,110,111,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,21,21,123,124,125,21,2147483665,3221225478,6,2147483654,2147483654,2147483654,2147483654,2147483654,5,0,0,0,1073741831,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3221225479,0,0,0,2147483653,6,6,6,6,6,2147483654,1073741830,17,2147483669,2147483773,2147483772,2147483771,2147483669,2147483669,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,91,92,93,3221225505,91,92,93,3221225505,21,21,135,136,137,21,2147483679,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483679,3221225479,0,0,0,1073741831,21,65,21,21,65,21,21,21,21,21,65,21,21,65,21,3221225479,0,0,0,1073741831,31,29,29,29,29,29,29,31,2147483669,2147483785,2147483784,2147483783,2147483669,2147483669,1073741857,2147483735,2147483734,2147483733,1073741857,94,95,96,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,103,104,105,3221225505,103,104,105,3221225505,21,21,21,21,21,21,3758096417,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741831,21,77,21,21,77,21,21,21,21,21,77,21,21,77,21,3221225479,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1610612769,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,2147483747,2147483746,2147483745,1073741857,106,107,108,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,115,116,117,3221225505,115,116,117,3221225505,21,21,21,21,21,21,3758096417,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741831,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3221225479,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1610612769,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,2147483759,2147483758,2147483757,1073741857,118,119,120,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,3221225505,21,21,21,21,21,21,1073741840,3221225478,3221225478,3221225478,5,3221225493,3221225493,3221225493,3221225477,6,6,6,1073741829,21,65,21,21,65,21,21,21,21,21,65,21,21,65,21,3221225477,2147483654,2147483654,2147483654,1073741829,1073741845,1073741845,1073741845,2147483653,1073741830,1073741830,1073741830,3221225488,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,94,95,96,3221225505,21,21,21,21,21,21,21,21,21,2147483773,2147483655,0,0,0,3221225479,3221225493,3221225493,3221225493,2147483679,2147483677,2147483677,2147483677,2147483679,21,77,21,21,77,21,21,21,21,21,77,21,21,77,21,31,29,29,29,31,1073741845,1073741845,1073741845,1073741831,0,0,0,7,125,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,85,86,87,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,106,107,108,3221225505,21,21,21,21,21,21,21,21,21,2147483785,2147483655,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,21,536870945,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,2684354593,2147483669,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741831,0,0,0,7,137,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,97,98,99,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,118,119,120,3221225505,21,21,21,21,21,21,21,21,21,2147483773,2147483655,0,0,0,3221225479,3221225493,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,3758096417,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1610612769,21,21,21,21,21,21,1073741845,1073741831,0,0,0,7,125,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,109,110,111,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,3221225505,3221225505,3221225505,3221225505,3221225505,21,21,21,21,21,21,21,21,21,2147483785,2147483655,0,0,0,1073741828,6,6,6,6,6,6,6,1073741841,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3221225489,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,3221225476,0,0,0,7,137,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,1073741857,1073741857,1073741857,1073741857,1073741857,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,16,6,6,6,6,6,3221225488,33,33,33,3221225489,6,6,6,6,6,2147483664,0,0,0,0,0,0,0,0,0,0,0,1073741831,125,44,45,2147483773,125,21,21,21,21,21,2147483773,125,2147483689,2147483688,2147483773,3221225479,0,0,0,0,0,0,0,0,0,0,0,16,2147483654,2147483654,2147483654,2147483654,2147483654,1073741841,2147483681,2147483681,2147483681,1073741840,2147483654,2147483654,2147483654,2147483654,2147483654,2147483664,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3221225479,21,21,21,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,137,56,57,2147483785,137,21,21,21,21,21,2147483785,137,2147483701,2147483700,2147483785,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,125,44,45,2147483773,125,21,21,21,21,21,2147483773,125,2147483689,2147483688,2147483773,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,137,56,57,2147483785,137,21,21,21,21,21,2147483785,137,2147483701,2147483700,2147483785,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,6,6,6,6,6,3221225488,33,33,33,3221225489,6,6,6,6,6,3221225476,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,3221225477,6,6,6,6,6,6,6,6,6,6,6,6,6,5,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,2147483653,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,1073741829,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,2147483679,2147483679,29,29,29,29,29,29,29,29,29,29,2147483679,2147483679,7,0,0,0,0,0,0,0,0,0,7,21,21,21,7,0,0,0,0,0,0,0,0,0,2147483655,31,31,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,31,31,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,7,0,0,0,0,0,0,0,0,0,7,21,21,21,7,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,7,0,0,0,0,0,0,0,0,0,7,21,21,21,7,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,3221225478,1073741830,1073741830,1073741830,1073741830,1073741830,5,21,21,21,7,0,0,0,0,0,0,0,0,0,7,21,21,21,7,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,2147483653,3221225478,3221225478,3221225478,3221225478,3221225478,1073741830,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,2147483664,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,21,21,21,7,0,0,0,0,0,0,0,0,0,7,21,21,21,7,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,21,21,21,7,0,0,0,0,0,0,0,0,0,7,21,21,21,7,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,21,21,21,7,0,0,0,0,0,0,0,0,0,7,21,21,21,7,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,3221225488,0,0,0,1073741831,21,21,21,7,0,0,0,4,6,6,6,6,6,17,21,21,21,16,6,6,6,6,6,3221225488,0,0,0,2147483655,2147483669,2147483669,2147483669,3221225479,0,0,0,1073741840,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483652,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,31,31,29,29,29,31,29,29,29,31,29,29,29,31,31,3221225479,0,0,0,1073741831,21,21,21,7,0,0,0,7,31,31,29,29,29,31,33,33,33,31,29,29,29,31,31,3221225479,0,0,0,2147483655,2147483669,2147483669,2147483669,3221225479,0,0,0,1073741831,2147483679,2147483679,2147483677,2147483677,2147483677,2147483679,29,29,29,2147483679,2147483677,2147483677,2147483677,2147483679,2147483679,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,125,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483773,3221225479,0,0,0,1073741831,21,21,21,7,0,0,0,7,125,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483773,3221225479,0,0,0,2147483655,2147483669,2147483669,2147483669,3221225479,0,0,0,1073741831,125,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483773,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,137,94,95,96,21,21,21,21,21,21,21,94,95,96,2147483785,3221225479,0,0,0,1073741831,21,21,21,7,0,0,0,7,137,94,95,96,21,21,21,21,21,21,21,94,95,96,2147483785,3221225479,0,0,0,2147483655,2147483669,2147483669,2147483669,3221225479,0,0,0,1073741831,137,2147483744,2147483743,2147483742,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483744,2147483743,2147483742,2147483785,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,106,107,108,21,21,21,21,21,21,21,106,107,108,21,3221225479,0,0,0,1073741831,21,21,21,7,0,0,0,7,21,106,107,108,21,21,21,21,21,21,21,106,107,108,21,3221225479,0,0,0,2147483655,2147483669,2147483669,2147483669,3221225479,0,0,0,1073741831,2147483669,2147483756,2147483755,2147483754,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483756,2147483755,2147483754,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,118,119,120,21,21,21,21,21,21,21,118,119,120,21,3221225477,2147483654,6,6,17,21,21,21,3221225477,2147483654,6,6,17,21,118,119,120,21,21,21,21,21,21,21,118,119,120,21,3221225477,2147483654,6,6,17,2147483669,2147483669,2147483669,3221225477,2147483654,6,6,17,2147483669,2147483768,2147483767,2147483766,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483768,2147483767,2147483766,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,31,29,29,29,31,21,1073741845,21,31,29,29,29,31,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,31,29,29,29,31,2147483669,3221225493,2147483669,31,29,29,29,31,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1610612769,21,21,21,1610612769,21,21,21,1610612769,21,21,21,1610612769,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1610612769,21,21,21,1610612769,2147483669,2147483669,2147483669,1610612769,21,21,21,1610612769,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1610612769,21,21,21,1610612769,21,21,21,1610612769,21,21,21,1610612769,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1610612769,21,21,21,1610612769,2147483669,2147483669,2147483669,1610612769,21,21,21,1610612769,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1610612769,21,21,21,1610612769,1073741845,1073741845,1073741845,1610612769,21,21,21,1610612769,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1610612769,21,21,21,1610612769,3221225493,3221225493,3221225493,1610612769,21,21,21,1610612769,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483653,3221225478,1073741830,1073741830,5,1073741845,1073741845,1073741845,2147483653,3221225478,1073741830,1073741830,5,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483653,3221225478,1073741830,1073741830,5,3221225493,3221225493,3221225493,2147483653,3221225478,1073741830,1073741830,5,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,94,95,96,21,21,21,21,21,21,21,94,95,96,21,3221225479,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,7,21,94,95,96,21,21,21,21,21,21,21,94,95,96,21,3221225479,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741831,2147483669,2147483744,2147483743,2147483742,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483744,2147483743,2147483742,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,106,107,108,21,21,21,21,21,21,21,106,107,108,21,3221225479,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,7,21,106,107,108,21,21,21,21,21,21,21,106,107,108,21,3221225479,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741831,2147483669,2147483756,2147483755,2147483754,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483756,2147483755,2147483754,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,125,118,119,120,21,21,21,21,21,21,21,118,119,120,2147483773,3221225479,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,7,125,118,119,120,21,21,21,21,21,21,21,118,119,120,2147483773,3221225479,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741831,125,2147483768,2147483767,2147483766,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483768,2147483767,2147483766,2147483773,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,137,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483785,3221225479,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,7,137,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483785,3221225479,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741831,137,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483785,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,16,6,6,6,6,6,1073741830,1073741830,1073741830,1073741830,1073741830,6,6,6,6,6,3221225476,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,16,6,6,6,6,6,3221225488,33,33,33,3221225489,6,6,6,6,6,3221225476,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741828,2147483654,2147483654,2147483654,2147483654,2147483654,3221225478,3221225478,3221225478,3221225478,3221225478,2147483654,2147483654,2147483654,2147483654,2147483654,2147483664,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741831,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2147483653,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741829,1073741845,1073741845,1073741845,1073741831,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225477,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,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,7,2147483679,2147483679,29,29,29,29,29,29,29,29,29,29,2147483679,2147483679,1073741845,1073741845,1073741845,1073741831,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,31,31,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,31,31,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741831,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741831,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225479,0,0,0,0,0,0,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,2147483653,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741830,1073741829,0,0,0,0,0,0,0,0,0,7,21,21,21,7,0,0,0,0,0,0,0,0,0,3221225477,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,3221225478,5,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,1073741831,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,6,6,6,6,6,17,21,21,21,16,6,6,6,6,6,3221225488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3221225479,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,1073741831,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,31,31,29,29,29,31,33,33,33,31,29,29,29,31,31,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3221225479,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,1073741831,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,125,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483773,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3221225479,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0,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,21,21,21,2147483655,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,137,94,95,96,21,21,21,21,21,21,21,94,95,96,2147483785,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,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,6,6,6,6,6,17,21,21,21,16,6,6,6,6,6,3221225488,0,0,0,0,0,0,0,0,0,0,0,7,21,106,107,108,21,21,21,21,21,21,21,106,107,108,21,2147483655,0,0,0,0,0,0,0,0,0,0,0,1073741840,2147483654,2147483654,2147483654,2147483654,2147483654,2147483664,2147483669,2147483669,2147483669,2147483665,2147483654,2147483654,2147483654,2147483654,2147483654,2147483652,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,31,31,29,29,29,31,33,33,33,31,29,29,29,31,31,3221225479,0,0,0,0,0,0,0,0,0,0,0,7,21,118,119,120,21,21,21,21,21,21,21,118,119,120,21,2147483655,0,0,0,0,0,0,0,0,0,0,0,1073741831,2147483679,2147483679,2147483677,2147483677,2147483677,2147483679,2147483681,2147483681,2147483681,2147483679,2147483677,2147483677,2147483677,2147483679,2147483679,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,125,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483773,3221225479,0,0,0,2147483653,6,6,6,6,6,2147483654,1073741830,17,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483665,3221225478,6,2147483654,2147483654,2147483654,2147483654,2147483654,5,0,0,0,1073741831,125,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483773,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,137,94,95,96,21,21,21,21,21,21,21,94,95,96,2147483785,3221225479,0,0,0,1073741831,31,29,29,29,29,29,29,31,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483679,2147483677,2147483677,2147483677,2147483677,2147483677,2147483677,2147483679,3221225479,0,0,0,1073741831,137,2147483744,2147483743,2147483742,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483744,2147483743,2147483742,2147483785,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,106,107,108,21,21,21,21,21,21,21,106,107,108,21,3221225479,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1610612769,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3758096417,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741831,2147483669,2147483756,2147483755,2147483754,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483756,2147483755,2147483754,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,118,119,120,21,21,21,21,21,21,21,118,119,120,21,3221225479,0,0,0,1073741831,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1610612769,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3758096417,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,3221225479,0,0,0,1073741831,2147483669,2147483768,2147483767,2147483766,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483768,2147483767,2147483766,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3221225477,2147483654,2147483654,2147483654,1073741829,1073741845,1073741845,1073741845,2147483653,1073741830,1073741830,1073741830,3221225488,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1073741840,3221225478,3221225478,3221225478,5,3221225493,3221225493,3221225493,3221225477,6,6,6,1073741829,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,31,29,29,29,31,1073741845,1073741845,1073741845,1073741831,0,0,0,7,21,94,95,96,21,21,21,21,21,21,21,94,95,96,21,2147483655,0,0,0,3221225479,3221225493,3221225493,3221225493,2147483679,2147483677,2147483677,2147483677,2147483679,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,2684354593,2147483669,1073741845,1073741845,1073741845,1073741845,1073741845,1073741845,1073741831,0,0,0,7,21,106,107,108,21,21,21,21,21,21,21,106,107,108,21,2147483655,0,0,0,3221225479,3221225493,3221225493,3221225493,3221225493,3221225493,3221225493,21,536870945,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,1610612769,21,21,21,21,21,21,1073741845,1073741831,0,0,0,7,125,118,119,120,21,21,21,21,21,21,21,118,119,120,2147483773,2147483655,0,0,0,3221225479,3221225493,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,3758096417,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3221225489,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,3221225476,0,0,0,7,137,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483785,2147483655,0,0,0,1073741828,6,6,6,6,6,6,6,1073741841,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3221225479,0,0,0,0,0,0,0,0,0,0,0,16,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,2147483664,0,0,0,0,0,0,0,0,0,0,0,2147483655,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,94,95,96,21,21,21,21,21,21,21,94,95,96,21,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,2147483669,2147483744,2147483743,2147483742,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483744,2147483743,2147483742,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,21,106,107,108,21,21,21,21,21,21,21,106,107,108,21,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,2147483669,2147483756,2147483755,2147483754,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483756,2147483755,2147483754,2147483669,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,125,118,119,120,21,21,21,21,21,21,21,118,119,120,2147483773,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,125,2147483768,2147483767,2147483766,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483768,2147483767,2147483766,2147483773,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,137,21,21,21,21,21,21,21,21,21,21,21,21,21,2147483785,3221225479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741831,137,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483669,2147483785,2147483655,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,16,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,1073741829,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3221225477,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483654,2147483664,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SpaceGameFolder/gradle/wrapper/gradle-wrapper.properties b/SpaceGameFolder/gradle/wrapper/gradle-wrapper.properties index f4d7b2b..bc1c717 100644 --- a/SpaceGameFolder/gradle/wrapper/gradle-wrapper.properties +++ b/SpaceGameFolder/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-bin.zip +distributionUrl=https://services.gradle.org/distributions/gradle-6.4.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists