From 9075d2a9091a7fac1e0a034ea5e011ed66e680b8 Mon Sep 17 00:00:00 2001 From: Calum Date: Thu, 28 Sep 2017 03:17:33 +1300 Subject: [PATCH 01/26] Added a minimap to the race view. #implement #story[1273] --- .../java/seng302/visualiser/GameView3D.java | 9 +- .../java/seng302/visualiser/MapPreview.java | 2 +- src/main/java/seng302/visualiser/MiniMap.java | 82 ++++ .../controllers/RaceViewController.java | 397 ++---------------- .../fxObjects/MarkArrowFactory.java | 10 +- .../fxObjects/assets_3D/BoatModel.java | 4 +- .../fxObjects/assets_3D/ModelFactory.java | 17 +- src/main/resources/views/RaceView.fxml | 254 +++++------ 8 files changed, 236 insertions(+), 539 deletions(-) create mode 100644 src/main/java/seng302/visualiser/MiniMap.java diff --git a/src/main/java/seng302/visualiser/GameView3D.java b/src/main/java/seng302/visualiser/GameView3D.java index 275a3d37..fbc473d8 100644 --- a/src/main/java/seng302/visualiser/GameView3D.java +++ b/src/main/java/seng302/visualiser/GameView3D.java @@ -2,7 +2,6 @@ package seng302.visualiser; import java.util.ArrayList; import java.util.Arrays; -import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -24,7 +23,11 @@ import javafx.scene.transform.Scale; import javafx.scene.transform.Translate; import org.fxyz3d.scene.Skybox; import seng302.gameServer.messages.RoundingSide; -import seng302.model.*; +import seng302.model.ClientYacht; +import seng302.model.GameKeyBind; +import seng302.model.KeyAction; +import seng302.model.Limit; +import seng302.model.ScaledPoint; import seng302.model.mark.CompoundMark; import seng302.model.mark.Corner; import seng302.model.mark.Mark; @@ -47,7 +50,7 @@ import seng302.visualiser.fxObjects.assets_3D.ModelType; * Collection of animated3D assets that displays a race. */ -public class GameView3D extends GameView{ +public class GameView3D extends GameView { private final double FOV = 60; private final double DEFAULT_CAMERA_X = 0; diff --git a/src/main/java/seng302/visualiser/MapPreview.java b/src/main/java/seng302/visualiser/MapPreview.java index a733967a..4c2c3a38 100644 --- a/src/main/java/seng302/visualiser/MapPreview.java +++ b/src/main/java/seng302/visualiser/MapPreview.java @@ -29,7 +29,7 @@ import seng302.visualiser.fxObjects.assets_2D.Marker2D; public class MapPreview extends GameView { private Polygon raceBorder = new CourseBoundary(); - private Map markerObjects; + protected Map markerObjects; public MapPreview(List marks, List course, List border) { this.compoundMarks = marks; diff --git a/src/main/java/seng302/visualiser/MiniMap.java b/src/main/java/seng302/visualiser/MiniMap.java new file mode 100644 index 00000000..5776f867 --- /dev/null +++ b/src/main/java/seng302/visualiser/MiniMap.java @@ -0,0 +1,82 @@ +package seng302.visualiser; + +import java.util.HashMap; +import java.util.List; +import javafx.application.Platform; +import javafx.geometry.Point2D; +import javafx.scene.paint.Color; +import javafx.scene.shape.Circle; +import javafx.scene.shape.Polygon; +import seng302.model.ClientYacht; +import seng302.model.Limit; +import seng302.model.mark.CompoundMark; +import seng302.model.mark.Corner; +import seng302.model.mark.Mark; +import seng302.utilities.Sounds; + +/** + * Created by cir27 on 28/09/17. + */ +public class MiniMap extends MapPreview { + + private HashMap boatIcons = new HashMap<>(); + private Polygon playerBoat; + private double playerRotation; + private List boats; + private ClientYacht player; + + public MiniMap (List marks, List course, List border, List boats, ClientYacht player) { + super(marks, course, border); + this.boats = boats; + this.player = player; + setBoats(boats); +// player.addMarkRoundingListener(this::updateMarkArrows); + } + + public void setBoats(List yachts) { + for (ClientYacht yacht : yachts) { + Circle boatIcon = new Circle(0, 0, 4); + boatIcon.setStroke(Color.BLACK); + boatIcon.setFill(Color.GRAY); + boatIcon.setFill(yacht.getColour()); + boatIcon.setFill(yacht.getColour()); + boatIcons.put(yacht, boatIcon); + yacht.addLocationListener((boat, lat, lon, heading, sailIn, velocity) -> { + Circle bi = boatIcons.get(boat); + Point2D p2d = scaledPoint.findScaledXY(lat, lon); + bi.setCenterX(p2d.getX()); + bi.setCenterY(p2d.getY()); + }); + } + Platform.runLater(() -> { + gameObjects.getChildren().addAll(boatIcons.values()); + }); + } + + private void updateMarkArrows (ClientYacht yacht, int legNumber) { + CompoundMark compoundMark; + if (legNumber - 1 >= 0) { + Sounds.playMarkRoundingSound(); + compoundMark = course.get(legNumber-1); + for (Mark mark : compoundMark.getMarks()) { + markerObjects.get(mark).showNextExitArrow(); + } + } + CompoundMark nextMark = null; + if (legNumber < course.size() - 1) { + Sounds.playMarkRoundingSound(); + nextMark = course.get(legNumber); + for (Mark mark : nextMark.getMarks()) { + markerObjects.get(mark).showNextEnterArrow(); + } + } + if (legNumber - 2 >= 0) { + CompoundMark lastMark = course.get(Math.max(0, legNumber - 2)); + if (lastMark != nextMark) { + for (Mark mark : lastMark.getMarks()) { + markerObjects.get(mark).hideAllArrows(); + } + } + } + } +} diff --git a/src/main/java/seng302/visualiser/controllers/RaceViewController.java b/src/main/java/seng302/visualiser/controllers/RaceViewController.java index ea778aa9..12ea48d0 100644 --- a/src/main/java/seng302/visualiser/controllers/RaceViewController.java +++ b/src/main/java/seng302/visualiser/controllers/RaceViewController.java @@ -4,67 +4,38 @@ import com.jfoenix.controls.JFXButton; import com.jfoenix.controls.JFXDialog; import java.io.IOException; import java.util.ArrayList; -import java.util.List; import java.util.Map; import java.util.Timer; import java.util.TimerTask; -import java.util.concurrent.TimeUnit; import javafx.animation.RotateTransition; -import javafx.animation.Timeline; import javafx.application.Platform; import javafx.beans.property.ReadOnlyBooleanProperty; -import javafx.collections.FXCollections; -import javafx.collections.ListChangeListener; -import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; -import javafx.geometry.Point2D; -import javafx.scene.Scene; import javafx.scene.SubScene; -import javafx.scene.chart.LineChart; -import javafx.scene.chart.NumberAxis; -import javafx.scene.chart.XYChart.Series; -import javafx.scene.control.Button; -import javafx.scene.control.CheckBox; -import javafx.scene.control.ComboBox; import javafx.scene.control.Label; -import javafx.scene.control.Slider; import javafx.scene.control.TextField; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; -import javafx.scene.layout.GridPane; import javafx.scene.layout.Pane; import javafx.scene.layout.StackPane; -import javafx.scene.layout.VBox; -import javafx.scene.paint.Color; import javafx.scene.paint.Paint; -import javafx.scene.shape.Line; -import javafx.scene.shape.Polyline; -import javafx.scene.text.Text; -import javafx.stage.Stage; -import javafx.stage.StageStyle; import javafx.util.Duration; import seng302.model.ClientYacht; import seng302.model.RaceState; -import seng302.model.mark.CompoundMark; -import seng302.model.mark.Mark; import seng302.model.stream.xml.parser.RaceXMLData; import seng302.model.token.TokenType; import seng302.utilities.Sounds; import seng302.visualiser.GameView3D; -import seng302.visualiser.controllers.annotations.ImportantAnnotationController; -import seng302.visualiser.controllers.annotations.ImportantAnnotationDelegate; -import seng302.visualiser.controllers.annotations.ImportantAnnotationsState; +import seng302.visualiser.MiniMap; import seng302.visualiser.controllers.dialogs.FinishDialogController; import seng302.visualiser.fxObjects.ChatHistory; -import seng302.visualiser.fxObjects.assets_2D.WindArrow; -import seng302.visualiser.fxObjects.assets_3D.BoatObject; /** * Controller class that manages the display of a race */ -public class RaceViewController extends Thread implements ImportantAnnotationDelegate { +public class RaceViewController extends Thread { private final int CHAT_LIMIT = 128; private static final Double ICON_BLINK_TIMEOUT_RATIO = 0.6; @@ -75,39 +46,17 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel @FXML private ImageView loadingScreen; @FXML - private Pane basePane; - @FXML private JFXButton chatSend; @FXML private Pane chatHistoryHolder; @FXML private TextField chatInput; @FXML - private LineChart raceSparkLine; - @FXML - private NumberAxis sparklineYAxis; - @FXML - private VBox positionVbox; - @FXML - private CheckBox toggleFps; - @FXML private Label timerLabel; @FXML private StackPane contentStackPane; - - private GridPane contentGridPane; @FXML - private AnchorPane rvAnchorPane; - @FXML - private AnchorPane windArrowHolder; - @FXML - private Slider annotationSlider; - @FXML - private Button selectAnnotationBtn; - @FXML - private ComboBox yachtSelectionComboBox; - @FXML - private Text fpsDisplay; + private Pane miniMapPane; @FXML private ImageView windImageView; @FXML @@ -118,33 +67,24 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel private Label positionLabel, boatSpeedLabel, boatHeadingLabel; @FXML private ImageView velocityIcon, handlingIcon, windWalkerIcon, bumperIcon, badRandomIcon; + @FXML + private JFXButton miniMapButton; - //Race Data - private Map participants; - private Map markers; - private RaceXMLData courseData; private GameView3D gameView; private RaceState raceState; - private ChatHistory chatHistory; - - private Timeline timerTimeline; - private Timer timer = new Timer(); - private List> sparkLineData = new ArrayList<>(); - private ImportantAnnotationsState importantAnnotations; - private Polyline windArrow = new WindArrow(Color.LIGHTGRAY); - private ObservableList selectionComboBoxList = FXCollections.observableArrayList(); + private Timer timer = new Timer(); private ClientYacht player; private JFXDialog finishScreenDialog; private FinishDialogController finishDialogController; - - //Icon stuff private Timer blinkingTimer = new Timer(); private ImageView iconToDisplay; - private Double lastWindDirection; + private MiniMap miniMap; public void initialize() { + miniMapPane.setVisible(false); + miniMapButton.setVisible(false); contentStackPane.setVisible(false); Image loadingImage = new Image("PP.png"); loadingScreen.setImage(loadingImage); @@ -204,7 +144,8 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel public void showView(){ loadingScreenPane.setVisible(false); contentStackPane.setVisible(true); - + miniMapPane.setVisible(true); + miniMapButton.setVisible(true); Platform.runLater(new Runnable() { @Override public void run() { @@ -238,31 +179,35 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel Map participants, RaceXMLData raceData, RaceState raceState, ClientYacht player) { - this.participants = participants; - this.courseData = raceData; - this.markers = raceData.getCompoundMarks(); this.raceState = raceState; this.player = player; - raceState.getPlayerPositions().addListener((ListChangeListener) c -> { - while (c.next()) { - if (c.wasPermutated()) { - updateOrder(raceState.getPlayerPositions()); - } - } - }); - player.addPowerUpListener(this::displayPowerUpIcon); player.addPowerDownListener(this::removeIcon); - updateOrder(raceState.getPlayerPositions()); gameView = new GameView3D(); + miniMap = new MiniMap( + new ArrayList<>(raceData.getCompoundMarks().values()), + raceData.getMarkSequence(), raceData.getCourseLimit(), + new ArrayList<>(participants.values()), player + ); + miniMapButton.setOnMouseClicked((event) -> { + if (miniMapPane.visibleProperty().get()) { + miniMapPane.setVisible(false); + miniMapButton.setText("✕"); + } else { + miniMapPane.setVisible(true); + miniMapButton.setText("✓"); + } + }); + Platform.runLater(() -> { contentStackPane.getChildren().add(0, gameView.getAssets()); ((SubScene) gameView.getAssets()).widthProperty() .bind(ViewManager.getInstance().getStage().widthProperty()); ((SubScene) gameView.getAssets()).heightProperty() .bind(ViewManager.getInstance().getStage().heightProperty()); + miniMapPane.getChildren().add(miniMap.getAssets()); }); gameView.setBoats(new ArrayList<>(participants.values())); gameView.updateBorder(raceData.getCourseLimit()); @@ -350,45 +295,6 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel } } - - /** - * The important annotations have been changed, update this view - * - * @param importantAnnotationsState The current state of the selected annotations - */ - public void importantAnnotationsChanged(ImportantAnnotationsState importantAnnotationsState) { - this.importantAnnotations = importantAnnotationsState; - setAnnotations((int) annotationSlider.getValue()); // Refresh the displayed annotations - } - - - /** - * Loads the "select annotations" view in a new window - */ - private void loadSelectAnnotationView() { - try { - FXMLLoader fxmlLoader = new FXMLLoader(); - Stage stage = new Stage(); - // Set controller - ImportantAnnotationController controller = new ImportantAnnotationController( - this, stage - ); - fxmlLoader.setController(controller); - // Load FXML and set CSS - fxmlLoader.setLocation( - getClass().getResource("/views/importantAnnotationSelectView.fxml") - ); - Scene scene = new Scene(fxmlLoader.load(), 469, 298); - scene.getStylesheets().add(getClass().getResource("/css/master.css").toString()); - stage.initStyle(StageStyle.UNDECORATED); - stage.setScene(scene); - stage.show(); - controller.loadState(importantAnnotations); - } catch (IOException e) { - e.printStackTrace(); - } - } - /** * Initialises a timer which updates elements of the RaceView such as wind direction, yacht * orderings etc.. which are dependent on the info from the stream parser constantly. @@ -406,35 +312,6 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel }, 0, 1000); } - /** - * Iterates over all corners until ones SeqID matches with the yachts current leg number. - * Then it gets the compoundMarkID of that corner and uses it to fetch the appropriate mark - * Returns null if no next mark found. - * @param bg The BoatGroup to find the next mark of - * @return The next Mark or null if none found - */ - private Mark getNextMark(BoatObject bg) { - // TODO: 1/08/17 Move to GameView -// -// Integer legNumber = bg.getClientYacht().getLegNumber(); -// List markSequence = courseData.getMarkSequence(); -// -// if (legNumber == 0) { -// return null; -// } else if (legNumber == markSequence.size() - 1) { -// return null; -// } -// -// for (Corner corner : markSequence) { -// if (legNumber + 2 == corner.getSeqID()) { -// return courseData.getCompoundMarks().get(corner.getCompoundMarkID()); -// } -// } -// return null; - return null; - } - - /** * Updates the wind direction arrow and text as from info from the StreamParser * @param direction the from north angle of the wind. @@ -516,226 +393,6 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel boatHeadingLabel.setText(String.format("Boat Heading:\n%.1f°", player.getHeading())); } - /** - * Updates the order of the yachts as from the StreamParser and sets them in the yacht order - * section - */ - private void updateOrder(ObservableList yachts) { -// List vboxEntries = new ArrayList<>(); -// -// for (int i = 0; i < yachts.size(); i++) { -//// System.out.println("yacht == null " + String.valueOf(yacht == null)); -// if (yachts.get(i).getBoatStatus() == BoatStatus.FINISHED -// .getCode()) { // 3 is finish status -// Text textToAdd = new Text(i + 1 + ". " + -// yachts.get(i).getShortName() + " (Finished)"); -// textToAdd.setFill(Paint.valueOf("#d3d3d3")); -// vboxEntries.add(textToAdd); -// -// } else { -// Text textToAdd = new Text(i + 1 + ". " + -// yachts.get(i).getShortName() + " "); -// textToAdd.setFill(Paint.valueOf("#d3d3d3")); -// textToAdd.setStyle(""); -// vboxEntries.add(textToAdd); -// } -// } -// Platform.runLater(() -> -// positionVbox.getChildren().setAll(vboxEntries) -// ); - } - - - private void updateLaylines(BoatObject bg) { - // TODO: 1/08/17 move to GameView -// -// Mark nextMark = getNextMark(bg); -// Boolean isUpwind = null; -// // Can only calc leg direction if there is a next mark and it is a gate mark -// if (nextMark != null) { -// if (nextMark instanceof GateMark) { -// if (bg.isUpwindLeg(gameViewController, nextMark)) { -// isUpwind = true; -// } else { -// isUpwind = false; -// } -// -// for(MarkObject mg : gameViewController.getMarkGroups()) { -// -// mg.removeLaylines(); -// -// if (mg.getMainMark().getId() == nextMark.getId()) { -// -// SingleMark singleMark1 = ((GateMark) nextMark).getSingleMark1(); -// SingleMark singleMark2 = ((GateMark) nextMark).getSingleMark2(); -// Point2D markPoint1 = gameViewController -// .findScaledXY(singleMark1.getLatitude(), singleMark1.getLongitude()); -// Point2D markPoint2 = gameViewController -// .findScaledXY(singleMark2.getLatitude(), singleMark2.getLongitude()); -// HashMap angleAndSpeed; -// if (isUpwind) { -// angleAndSpeed = PolarTable.getOptimalUpwindVMG(StreamParser.getWindSpeed()); -// } else { -// angleAndSpeed = PolarTable.getOptimalDownwindVMG(StreamParser.getWindSpeed()); -// } -// -// Double resultingAngle = angleAndSpeed.keySet().iterator().next(); -// -// -// Point2D yachtCurrentPos = new Point2D(bg.getBoatLayoutX(), bg.getBoatLayoutY()); -// Point2D gateMidPoint = markPoint1.midpoint(markPoint2); -// Integer lineFuncResult = GeoUtility.lineFunction(yachtCurrentPos, gateMidPoint, markPoint2); -// Line rightLayline = new Line(); -// Line leftLayline = new Line(); -// if (lineFuncResult == 1) { -// rightLayline = makeRightLayline(markPoint2, 180 - resultingAngle, StreamParser.getWindDirection()); -// leftLayline = makeLeftLayline(markPoint1, 180 - resultingAngle, StreamParser.getWindDirection()); -// } else if (lineFuncResult == -1) { -// rightLayline = makeRightLayline(markPoint1, 180 - resultingAngle, StreamParser.getWindDirection()); -// leftLayline = makeLeftLayline(markPoint2, 180 - resultingAngle, StreamParser.getWindDirection()); -// } -// -// leftLayline.setStrokeWidth(0.5); -// leftLayline.setStroke(bg.getBoat().getColour()); -// -// rightLayline.setStrokeWidth(0.5); -// rightLayline.setStroke(bg.getBoat().getColour()); -// -// bg.setLaylines(leftLayline, rightLayline); -// mg.addLaylines(leftLayline, rightLayline); -// -// } -// } -// } -// } - } - - - private Point2D getPointRotation(Point2D ref, Double distance, Double angle) { - Double newX = ref.getX() + (ref.getX() + distance - ref.getX()) * Math.cos(angle) - - (ref.getY() + distance - ref.getY()) * Math.sin(angle); - Double newY = ref.getY() + (ref.getX() + distance - ref.getX()) * Math.sin(angle) - + (ref.getY() + distance - ref.getY()) * Math.cos(angle); - - return new Point2D(newX, newY); - } - - - public Line makeLeftLayline(Point2D startPoint, Double layLineAngle, Double baseAngle) { - Point2D ep = getPointRotation(startPoint, 50.0, baseAngle + layLineAngle); - Line line = new Line(startPoint.getX(), startPoint.getY(), ep.getX(), ep.getY()); - return line; - - } - - - public Line makeRightLayline(Point2D startPoint, Double layLineAngle, Double baseAngle) { - - Point2D ep = getPointRotation(startPoint, 50.0, baseAngle - layLineAngle); - Line line = new Line(startPoint.getX(), startPoint.getY(), ep.getX(), ep.getY()); - return line; - - } - - - /** - * Initialised the combo box with any yachts currently in the race and adds the required listener - * for the combobox to take action upon selection - */ - private void initialiseBoatSelectionComboBox() { -// yachtSelectionComboBox.setItems( -// FXCollections.observableArrayList(participants.values()) -// ); -// //Null check is if the listener is fired but nothing selected -// yachtSelectionComboBox.valueProperty().addListener((obs, lastSelection, selectedBoat) -> { -// if (selectedBoat != null) { -// gameView.selectBoat(selectedBoat); -// } -// }); - - //TODO uncomment out -// selectionComboBoxList.setAll(participants.values()); -// yachtSelectionComboBox.setItems(selectionComboBoxList); -// yachtSelectionComboBox.valueProperty().addListener((obs, lastSelection, selectedBoat) -> { -// if (selectedBoat != null) { -// gameView.selectBoat(selectedBoat); -// } -// }); - } - - /** - * Display the list of yachts in the order they finished the race - */ - private void loadRaceResultView() { - FXMLLoader loader = new FXMLLoader(getClass().getResource("/views/FinishView.fxml")); - - try { - contentGridPane.getChildren().removeAll(); - contentGridPane.getChildren().clear(); - contentGridPane.getChildren().addAll((Pane) loader.load()); - - } catch (javafx.fxml.LoadException e) { - System.err.println(e.getCause().toString()); - } catch (IOException e) { - System.err.println(e.toString()); - } - } - - private String getMillisToFormattedTime(long milliseconds) { - return String.format("%02d:%02d:%02d", - TimeUnit.MILLISECONDS.toHours(milliseconds), - TimeUnit.MILLISECONDS.toMinutes(milliseconds) % 60, //Modulus 60 minutes per hour - TimeUnit.MILLISECONDS.toSeconds(milliseconds) % 60 //Modulus 60 seconds per minute - ); - } - - private void setAnnotations(Integer annotationLevel) { -// switch (annotationLevel) { -// // No Annotations -// case 0: -// gameView.setAnnotationVisibilities( -// false, false, false, false, false, false -// ); -// break; -// // Important Annotations -// case 1: -// gameView.setAnnotationVisibilities( -// importantAnnotations.getAnnotationState(Annotation.NAME), -// importantAnnotations.getAnnotationState(Annotation.SPEED), -// importantAnnotations.getAnnotationState(Annotation.ESTTIMETONEXTMARK), -// importantAnnotations.getAnnotationState(Annotation.LEGTIME), -// importantAnnotations.getAnnotationState(Annotation.TRACK), -// importantAnnotations.getAnnotationState(Annotation.WAKE) -// ); -// break; -// // All Annotations -// case 2: -// gameView.setAnnotationVisibilities( -// true, true, true, true, true, true -// ); -// break; -// } - } - - - /** - * Sets all the annotations of the selected yacht to be visible and all others to be hidden - * - * @param yacht The yacht for which we want to view all annotations - */ - private void setSelectedBoat(ClientYacht yacht) { -// for (BoatObject bg : gameViewController.getBoatGroups()) { -// //We need to iterate over all race groups to get the matching yacht group belonging to this yacht if we -// //are to toggle its annotations, there is no other backwards knowledge of a yacht to its yachtgroup. -// if (bg.getBoat().getHullID().equals(yacht.getHullID())) { -//// updateLaylines(bg); -// bg.setIsSelected(true); -//// selectedBoat = yacht; -// } else { -// bg.setIsSelected(false); -// } -// } - } public void updateTokens(RaceXMLData raceData) { gameView.updateTokens(raceData.getTokens()); diff --git a/src/main/java/seng302/visualiser/fxObjects/MarkArrowFactory.java b/src/main/java/seng302/visualiser/fxObjects/MarkArrowFactory.java index ccc307eb..4f871801 100644 --- a/src/main/java/seng302/visualiser/fxObjects/MarkArrowFactory.java +++ b/src/main/java/seng302/visualiser/fxObjects/MarkArrowFactory.java @@ -29,11 +29,11 @@ public class MarkArrowFactory { STARBOARD, } - public static final double MARK_ARROW_SEPARATION = 15; - public static final double ARROW_LENGTH = 75; - public static final double ARROW_HEAD_DEPTH = 10; - public static final double ARROW_HEAD_WIDTH = 6; - public static final double STROKE_WIDTH = 3; + public static final double MARK_ARROW_SEPARATION = 8; + public static final double ARROW_LENGTH = 20; + public static final double ARROW_HEAD_DEPTH = 5; + public static final double ARROW_HEAD_WIDTH = 3; + public static final double STROKE_WIDTH = 1; public static Model constructEntryArrow3D ( RoundingSide roundingSide, double angle, ModelType type) { diff --git a/src/main/java/seng302/visualiser/fxObjects/assets_3D/BoatModel.java b/src/main/java/seng302/visualiser/fxObjects/assets_3D/BoatModel.java index e056b14d..27cc923d 100644 --- a/src/main/java/seng302/visualiser/fxObjects/assets_3D/BoatModel.java +++ b/src/main/java/seng302/visualiser/fxObjects/assets_3D/BoatModel.java @@ -60,7 +60,9 @@ public class BoatModel extends Model { */ public void changeColour(Color newColour) { changeColourChild(HULL_INDEX, newColour); - changeColourChild(MAST_INDEX, newColour); + if (meshType != BoatMeshType.PARROT) { + changeColourChild(MAST_INDEX, newColour); + } } private void changeColourChild(int index, Color newColour) { diff --git a/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java b/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java index 8ca060c6..70a2897d 100644 --- a/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java +++ b/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java @@ -117,12 +117,7 @@ public class ModelFactory { Group boatAssets = new Group(); MeshView hull = importSTL(boatType.hullFile); hull.setMaterial(new PhongMaterial(primaryColour)); - MeshView sail = importSTL(boatType.sailFile); - sail.setMaterial( - new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.BLACK : Color.WHITE) - ); - - boatAssets.getChildren().addAll(hull, sail); + boatAssets.getChildren().addAll(hull); if (boatType.mastFile != null) { MeshView mast = importSTL(boatType.mastFile); @@ -130,10 +125,16 @@ public class ModelFactory { boatAssets.getChildren().add(mast); } + MeshView sail = importSTL(boatType.sailFile); + sail.setMaterial( + new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.DARKGRAY : Color.WHITE) + ); + boatAssets.getChildren().addAll(sail); + if (boatType.jibFile != null) { MeshView jib = importSTL(boatType.jibFile); - sail.setMaterial( - new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.DARKGRAY : Color.WHITE) + jib.setMaterial( + new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.BLACK : Color.WHITE) ); boatAssets.getChildren().add(jib); } diff --git a/src/main/resources/views/RaceView.fxml b/src/main/resources/views/RaceView.fxml index 56ca5ad5..a11b1fd0 100644 --- a/src/main/resources/views/RaceView.fxml +++ b/src/main/resources/views/RaceView.fxml @@ -1,7 +1,5 @@ - - @@ -25,284 +23,238 @@ - - - + + + - - - + + + + - - - + + + - - + + - + - + - + - + - + - + - - - + + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + - + - - - - - + + + + + - - + + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + - - - - - - + + + + + + + + - - + + From 0b8e2499a70e297e70966f04d0c56c298a9190c9 Mon Sep 17 00:00:00 2001 From: Calum Date: Thu, 28 Sep 2017 03:35:28 +1300 Subject: [PATCH 02/26] Fixed some internal stl faces on parrot #fix --- .../meshes/boatSTLs/parrot_features.stl | Bin 104884 -> 132834 bytes .../resources/meshes/boatSTLs/parrot_sail.stl | Bin 14384 -> 132834 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/meshes/boatSTLs/parrot_features.stl b/src/main/resources/meshes/boatSTLs/parrot_features.stl index 89072cfafc5bdf0223bc6fe0b6aa9ef5893e18e1..efe88eee0408fe8df634fd6fc14941bb4307ebb2 100644 GIT binary patch literal 132834 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 literal 104884 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 z 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

-F z66A?ZLv&d1U38se&*QslF)y)B?6yNzUkFv@gF8~Ko zh-GxB_z8qs%wO$q*bZ4o;;qFK7yRwVn&OG-eab``vWkLui@z}lgj&pB?YFWWvX109 z9oS{;rQgI@b{QI-m5DNh6^QDGm&aZMp%&W#*qqxASx0i5UhFdR(>>xS`x1@L%0wA* z69?kYC$eMju`f}J?EuVoZHKHQInEXAGLAeyBes%VhDK*)q72ar%iYPuwt`TL?EuV= zZHKHQIZj>nC0DlI5bMmoM5D7ZQHG9liG9g$AmZ#x)M7h;w!EpfL)MYVf&6hq;%7S1 zY+#q6QCOKMLr%Qbj7Y>+4UX*rp%#nh)(6W@3Unm8V6e-mN)Mh_*kx#RRwl~Oaoz?o z2EYHpU)fm!a#RGEs(P(1F>}1rU>!XguugkaEpY(Pr$+w!$pn9c! z=}msMOVUocsrdnM5k!r$%fj#4l*Q!?x&BpMlI1x=){)pJmY(i6E8E|_lW#ShLG?=e z(hEBtbIMI#c-iUxL=bDP>KlI7rY!ayWu05?3|U8_n+M-&6W*HS9^&gxXHc0aL&w<% zVl0SRAk=b+Gvw7PIw$Q6Sw|wD`lV`#-W6-Ro%vSNnNlXokQ1-Ft0i`otLX%h z**n;VGh`i!n>fDJKBV{A-F&O*3@Q_4NJSNhyXpFt7lc}_;S9Ovw9erfvW`S2bv&UXAE=CkZ1q1#2xYHgjhz$=*gXO*Jt7$=j$fH5<0RKd#!Mw z-lt5IAsN`5++7ReQBLmEvX?Vtn-4of){!g&A~X25a&7m*sd?d^Iu)Juy^B6a9S~zc z6z8l@Ep|p`er0FK(H+1H&f(7EB`JmM zIozjoWNY*Om~c;>+F2+QWk{zD5bu}i?{?v=Pc3#vX77rfA#0qczLs;iGQ73Fa1N)@ zS(zw9`dWf`gdT34L8!&f$lhi(u-i8siC!t3!xg0G?X5$`GA95L-c9dHcEW z3^~Q!&d8RGpJtKm&}o34LT()bA;M(5F_Z~x*UXB z?53gjl1@p>%g~X?li~iO1$~jX_T3boI;Un(z0&SN?B72ka|9I+5TDRnwi^hw*iA#j zMO~7Xml5@n+T3Q8s&v9F%x#9wtuj%DXv%`Jnk6WIca$rIuiNR+*G%tXYo#Ms&xjHi8AE= zkFoc})M7;jMm(dkgY1Y|bq&L;cus@^Vvs zkQuy%yKRlm%0wBG=>+1MiYMFw+-`vICkL9Q7NPM1iQ=LHv z`-c`E^EEmv6J)W^eq*Pk<=p8=?8sKs4KA)Z8vA75UE!&7YX718 z61yKZhPgR+Pp@0!_S|_imbor^x2@dunRq|AseTMrUAU>%bx@foL;50vs19N^2({?? zs3W1}%}w<~%*Wn~tHK+_)XqY89MR|a7DO3(-q+@CTP?ai>WYfa9T`H;%*o?*C8tPd zP`%Rfiz>28ST;6qZCBU-@zXrs4LKQMHdV@E**g{oE!SB`B3YfBqU?AX?;CQ8bOzNc zEx)MW><&rG#^!qv#C#A-K&a&+xz67g?2xovXB~-s`-v8@W9Qbp*OMWnGo?(FAz71o zTE;5>wcc$HLM@g@WakW)>#QU3H^~0H+^nqk9r>aaV@4D&KlKB~TJIhV#TH`n>}v21s3>yqw+S4Q(imAgKZ z3tZG3ohn3s`? z+v=6k=dgUybIiy51DnHK=hPEkB-h#e%5t66k2$j>`}4MjWxW5+%O8o(%0wBWmjPlf zew98yf1sA7F+J0`74L`UM3 zlkCqqj~4ODJ%2Duqq8zmhUE2;VVVhI$?$_&YWa;E(NYIGC9RG{MR5Cna#G3u{C8w=&#zW85}lQaGUV(P#Ap1C z#x+X%YRRUK#eOTRW6?NIHtzZb{t%vg0ok9r4k{C6NPatrp&%xJP>ZgdIuf_xWPg6m z4Bkt=sIG&`L>ZE~3}QNn3Lw;?>!XfD9x^A}zt=47-RfqzI)mz!ma}hPGFIV8|Bt&G z1_f)E_Fe&@mWk94+8)m82X!RJ`K!t{f5wc4-fZ&pbq3WdEocA9^X~9AG z#rHrhuTVdDIjuv|>IZcsGMA~SI?}F&mqSIB&Y&_;hU7D}s~gO1U&AW_LM;`jAGA5Q z`avDZabDUx$6wtj-P=P&mCm3tQHJP#P_^|ch$A4>@;&u~_BX74P)9=lii)c9Ag-eZ zOJ`7-C`0mhL7V_lDc`JwTIx|hXup-!59&yKc~OIP8&AH0iYoO!WugrEj%w83ZwKOU z5Nfe%C!2GtAJmapuX>jW9%csL%%~BG&dNj?Qr!>YT@Vg6SZc9qC-V%eA5=f)x1t7X zX|2-UbZW3PIx7=p$Xaq$koX?NXCTyK)lTN&R(Y)>p$SMuRlXM*dpA*orO{cLC`0xo zAdU@d?A-=JEv2cvZqu}VSb41@(MceFF4nJ3j=P2$ERDj-L>Y49e*3vtv6?yVZ7aHj z)n_U0R=Z?(6IL6pBcUiqMU|gu;$3~$tVncLCd!aHFAy_9Sk;zV?z&;AH}2Z@$#&F+ zYn-PS#OX>wt0kV>XHdPcjwKbHbzfq2OvW&`HvBPfr#o!1=T4~`t-(_6`b@l0xiwf` zKt+{CXJw)cIoSrWl;>y$B4Wu{8_tK-hU-YE8&grWs&Irpy)D@LZ%2ZSxz)P+!amd$oFv3I_a^4PN6Nux~U^!yZ^-)KnUlEn8 z2P${BVEzU?jjV6bVMBVmVWrN2ScW`GGaKrk+)C{Wc znl`|G80KnnOuzb|d*9LyZnt+jM{+-uyFL>)icJ#!)~Ve*WMCsRs7#b0)lQ8PeodaE zI0&_LM3ckj!!$Y67dY#?`OaV(zi!5T|3;#-`fKz#s-lE&8pJ4+5Y%D{0(ORMnjGrK zs6gE{+b@NeR7cl9y-%4$7&_h1H7EpP<@r^`cbgjC3USC8!j1IoiqF65r!%bXF$Hkgth$ulN}t z_M>Z{magb6S&TBhB^`jGtIrMZ!X6)Ix7=p$f*Gc)bYI|+b_q|VhRHG{b71b zIudzHJ6rnR<_xbhDg_#ym5DOs{AyQAzYvI_Ak<D5qq5Lz#-^%osbR@_5FDeDQc=AHaZ;nJ~Wugon4#N*7J_k_- zgj!5Npbv9ydP^GT@scb4_3JT%*L|}vq3fVBQHCh?qHE9!#6vql2zOl{btG;~YK%-@ zk0;jXSSu2pm5DMWbNS~H=}&@q4}@BD<ZH!EvCw4znkfU=}6>qq7_zv8SHg! zhxCZ|iB~E^)Gt7sz)QYET}&;9Q3y59FojSZiR^^)1>BZtO}rsfN=KrzGEs(n75!Pj zom;et*Bh-cwU{c`8tzj2pb)Bl%-00UUp-?_d5887OK5afCd!agwW06(Q$SQjD@-k8 z&@io6HY3z9)seUj|8k0Zre#s@@YfAPy`|L7LYXK-ItgS?akqoG2tqBUv1OTHrePY5 z=cjX(zr2Dde`$19Cdv?RA28Nmw|TJl%)@zowaor@t+!}T+fc()M?wY4y(P$Zf2P}@ zMdMI!DYgI5eaSX7OpRf#hUx#b!rcF>6{g(vnK;EkE6iAZ+p}pTIx7=p$e#M0uKo`o zih@u}4>U||K1{<@<2<(+Gtz>?EsA=xx)ky>I_r)j`W#h1NDKBcA32W|^3-CgTy{rq z8m2lDIYm!a_xs`{L(vM;bx@foL*6J5Q$bW*F~(Pmu8%qr-GLv-AM`5L#H)|;m#%}# zL>Y3s)H;8#iTC465NgqtQ%533P2T9<*QA7Z?$+v|&Rxp;)GJLn(lRbg-J1HS@f+R$ zHZ9@ZhW@TvOt;o@icC8?I_GWC->p4qxOcqY$}F8h^~z?bTboy!x-~Z@hrdmr((LW+ zy)sKJtI&>KKdEh~9jzld&ha*dg3gryQX1l40E-kPuI=oUAtwdTY7a= ze^quxvqrY36 zU-vQecXbBUE2GcR{K-rHzl}?HUC`fE%j>A_+pL-DzK%o(F!Xm(g7#`pxiu1DIn+Om$!V*l}L_ZnOXV`4-;j+YUvdvocYJRA=tq?3X^*!YhLQ zu3Aj#*6!7;FM#?nxgQS|j>YbM)@z>LGZLMZi87?R=DxzQ#vmGjP|H600@yi&^##y4 zPqs+f4FCMJ9^Rv+KXf%ZD-&f%)(iT(<3W@Lp%zoRwL2E;3!o!$6E`y%JJe;6w*fU> zjn2wM8KV0!FB$s^#GfG4VoJC6H>@v!jzpFP`nz9)D0Q@ztI=7RC_~~o`n!LF_!Pxn zwM?Kdfc;k17eGfsVf;vCcM(ti4Qjd?ot23)B%A7JWp_4+bs*GYO1C!W))zoWV$a|< z^KAw{OytDQjpL6%j%-y-OGj~qv4C^00Frr)60^J9OhZU&Vw_Cri z-3FE_U%E=w0>uUm?p&a3aq<7_zYghz_%^(-?3I0)Rw`p{t9Po`QqPy&TcpoEm()T4zYMFcbD9MB$x9tbB1L^|{5QOtb8kET28ZE1t#}{EUDs3Gzds?B0`^?PvTD zC=(j)^Mp1tTB3DMpYD8HHaMEkao zw2D-}ExV=*^*+9^Qimb`t`@D5wO-(XKdJgN0iA3VLdz9Oij#g@sD_hrvtL%rqO z?Kjwy5Eq6ATJzr*G5;>E$@1&($X5S`dON?}Z*V*Aulrl(dS-ZM*zIUKyNKM;b);wf zfLgA;Vl+Qbi2aQMQy9i5pl!_OaY%d87pd+&wp#F!^^%42Q) zIRr%%uB)}|NeFA%LH*;5PBK%}bk{S+KFMf|U){*N3uyKv zME$>0TN%T@wFdpZ%G}m3gYo)FV{cgJxdyj``%Q>K9}3IH?F{Ry8ijQJ6{GoiLcCsH zMh51pXnlUA>1<){>`91B0fl6mMkTFDqYmn+&lE8}kGo`*{WQ?1`6a*6bHhRFOz;Hb zdW*tFmXuemWZEE%V7Z(fWUFrRX4chn^c{2Z80A}gt@9&)bN!0ZLi`DhB*pm?RGZe8J z{$Abcn`@{UQ~evGUU)t4lu>;R?yItI(itmPHuC<6u@NGCQW5#*ty)&^e0enf6{Goi zLVVLAK#FEHt#?qQp&+F;;iY`d+u zX*L^|m!~pb&Wg5DYMa68aEGR{qF;6^UBP4;BRGFBS_rYUu#EUvQnvMr(R*gjZ-fU_ z^+t4U;OZY{D@6K}f%1L-;xcXdeL7oypIpFb*Rquf3Aw16?CPM~*Ln&Jj~5~5SXVpi1B z5>~BL(dL`;`HU*{i+P(=D`s$CF+(A)O%AlWRt>V+&WJYI!fj$tLKqVQufIL zey-ex@t2>s=l*Xn9wV|BwQdc3q^C-sSF(lM!JdRj*|nIg+c1Ny**ukGzx*p^E5zs_ z0diWtjI!0O)RHY#zshG6y6NZ56Z4J1o`gvJqnNe)T6*inuvFIYxp|D2v;Dm_SLZai zub80_UoQ@@9%aaAO*oR;Vhgv4Jqd9yxR@;d?w*ctR?F{#tsVX)Tzz#sLlL9;&U@DU{F?td!4#4fZ6&PvZ(&Vr(6G@$_2H_)JBN*Gq3&-u=M__Z2e~;_>SM%Tpjk z#)U8Nu!Y;io-m94UQF)4P(zj;666|l{uMI>qF$g(mt2#3a|W4g;WjZtA?o@ET9-RZ zYx(kzuD;s!sfclW>}{*-l?KN2F@=rv2{)|H#~WZg+IA{t{r#P8wVUu>V+*&#-B;(c zg4K=?E5p2^8vEs6F`n}@1_suYfr|q?Y~ePsCn4TX3Y3$+lCsx_x2`eg zUok@=TAnT@Q$5mT_1^D2Y~eOBLm^VU47562Fs%5mLR@`S=vfit>xDP0wDme09|jaQ zrl>uuhH)(b&T6aQD^GrvY-$+7QccNE40y@~@b!5GQg4$}^)v ztnq&|(b&?kXMoW(^IukYvCam25@PnK0BdT>nzG~1O+6Q%7cowbxM~$n*V*8{VunJj z-xOfA`a48!6HPsA;Wn`+Axd;8CZ7y8WF0NUHRk*)W++5~D#hei3k}&YXNZR_+$Lry z#D-dd)}n$TR!7fhS6}fLUG&w0Mvak|tdSoFVmw}c3bcNnU|6~S9j>v3+u`o3rP%}I zq{5nY@nm(K{qnDvE!K&N0rFvsVC!+Q8ai9}`;$Eh(L1uJwRo^52PM=n=d>zpl=^($ z+PZI`!F|OHg*b!vqv@_-c|fmWvW45ko{-fx2g~HLskkBk z>imm`E!-w%D8#Ln#pJ)OgXPk60VaPVGn$_#gx}2o8BwE>b)xK4oe|fvAUa>wY8I5*L`$n2=_t)fIl(lMsK^8YW+Lo25+>;X427 z(9cQ;>etB`sntZ{z9a^kGCrc9Q_s5m^@8s0S0=()w; zSkrxnbuGhx+Yxdnz&zM-xLiA?fQMT+xm6nDV(Q&ibnQrkJqhvZQ-G|qI#@2>T}fxZ z{3~WCM5><)%b*id`u|fwXA8H9Jqb}mmatOyEM=8X9cgk4`73_H`s7CG-=eJz!Rkv` z`=ztI+OMj%W9BoRf5m8iwh(`2{7No3THAW_V!n$Ne{HiTA?lP3l20C#lV^UIsB>%i zo1D=?+__Rj*4|cCHs~@|XA3i7PndTH<+Sn)|4!DppGD^u9{c=C)+u<@64(jJ{Wei< zD}ThAS$hv!-tbT{*?w3$`6VW`WG4J8-c7(h+_tQ;Y|83Z=TApWw(!n2@0|$oxp@&Q z!^pC7_4$oD?|Jhxm?8G`>(7oklkr>mv}Zoa7T%R-PeOE)rR4b&i}aV5f+YLpUok_l zN?T9{PTr#Dyjoteh1~|97g@PFMj5w8+>_q1bFK0+ z+Q`-DfsEff*ZPQkUm^B&|EQO$lUr8sD`2rD()&=R%)Qt;FfqztPZ+_C5n7GeBV`+F zyS96VC2tQNXO-x7z^FTIx7?L#y!EBiAtPOd7xW%M?Q^dydsPB{yyT)w(|^#`P;k3(*6JqCn*Rsj`PH6W5%Rzg3)I zZLRGw*b{cVYShzv)c;A=_%p$Cqy0tMy~`vk@14D_Uol#U1zJ75DG-~y2_CkLX?#_F zzB$Jqgk7age!oQ8&5dmoxg!i7REJ)W2Dw)lL}4`!1EsB4%1w3!E~{%q!%C z*qPShS*I`_7w-m{=YjYF1Y6eJS}l|J{mn{!^n}5luzUV?q@K`WpiJ|ii8+1#b^94< zXYF<|VTMBVd_Pi;0%G;UCMH|HPq<+}+HU&@*v*D zgc)LH*y#1#1ER#zr8-;6Zr>z7p|7gWJZ7*bWak`_`T?|DFR0-hR zg&3JLQr`nas{G4Mw#;dM*Y43Cxpo=sNr;SXvwGTN1ou?yuCKhZ)sCz1kT@3;W++7E z@3MN@0Wq+8cbzRiR*#m`5m#0JjWgJj5JN7->+KR7%6A3toBVDw6J{vHl`HXj1t7u- z+&9_6?>u`F;+HP{gL5O=Q_ahx^SjMVn4u6)JM|AP0z}2Rd33h$JI|hkXmsnXmMJ=1 z*7U4%A-ET^{IX3J)23Ma${$DUR=WLG`wEC6K(HlE|2@**oM^>wKWgx^h3MBLwXES^ zN6t^T&*au}FRZwJUzXfH%ldc1E<8gtO)by))sZWKV9W4~kL2-o^Q^;{{yU3y?NLr& zr45p!caGP&wakPW3UR%6IXxVRYe2B&>y2J}%+o(Q{GVCWSne;Ig!;)gow8UwJ9C?u zp%5>Y_{$=V{p4*R*ivrQBbl$?V(ZT4D1$u-k#}K7ePw)vtkSct&a)`Di5Uu!WkE-M zFA%$X)YaLdU5m3L|Hi9>27AKX-hYC=6^KeLQtCX5@~;?;lLjEx0$~BcmN#2Z+kMsP zh1XzDLL42kM4yS?-FkPp#x?Gq`{uBlUnD5emP4onZ4#256_9rgc+iD>z&Yh0#P#LjE60SO5CxZ@n*vw zgFWF~Eq$2wBM^`NJmZ=ZnF%u#;!E~0Z2%BGfnW>I5JUg>RV@u`vw`7yy zzggX4_Z#d9`-yArYKMn4klCVhN*+OuN@gg;w)J0U{XBxqgc%A^6o^wmWRE<)pDpzY-Ip!#jPFbAHP{o*an6M5 zrQ%!4*zjbMqmP*|Lu7;Vp?XFj76ZYS`|qOcz8V#G++a`mg3O&$zEOR3@{@<7kC`w- z?0x_-8HiRVK6%*kcezLQm}h;m%V1AJd}uvc&x#TJ5^~LzqnHUZ6e3rv$$CE^_5i__ zN=;+z*sa()-r#H}#JGkJ=%1oG{5C?OVmKzqPlMxNRm~44G__56TX0es#Oq9W%gxFi#qd!^LNp_5%=gNc3 zgc%Bvt&T^32!sHFEk@=O_WJtE+E{}#D)wG`p3~m~5jD1t&T|z1iqTjh1Ce@BCpiEJ zw(#7=o^WEaq_LSDE$=q9sqFb|q21bmYiA6eiFoc3qI{VUnW9pDxk0vc^%akQJMD?w zP62WBo1=2Z3PAoNjUUH_o(*aR&D~zJ#mPk`JpS=;z+wHhG+x z2{RO;IuLg%CFo23y=}6^EcHZg*|5Yq|02p@PuP>GolKta)RA9RJ>(h>X2J|{q6oyF zK;#F4En{L%+h2M&>l`w8WN~8BDx+Kv#K6+4Tsew=#c0$s0I>&%OF*z?aPP}@U)`;K zz~G3%EZQm2vkWco64k+#qc~z}tX?EHp%-4gS6QuRkwi}=^ltL#4w5YeE3S|x#yrbv zcZ^|=?2f<8HKMlsI@uVVa}+aShNv94>o3n@%tryimivWo*pV@*oMo^le5)0;wA~f+ z%O)A>xpEXoJ2S+3_k*cj1mY?XY?<(OjUC}d_nkI4+X*qSPeFNSMTnf&qP)&IikUD& zAxZ+_9~mNZv@EZ)W#gK=c2?V1FUDX`I3KJVuGeW@US9a4lq*Lu6J{vHpgQ6DA|U1f z!Iqnww#YeO|851>JY{gU6QWf}NqN6kuw0#TmBu-WnJ_~kS_5$hh~q%8Wm?Qb`x$Q+ z?lssGc0aDK(-VOhHaUmn9K}qSA?izRtkY)!Q3D9Jv`M?$?yEx$P8jS-h%K$E$QNk& z&nrrJc#dKw%n&nN>ngGb5RZXi3(sBb2`8f^Pw3xc1Z%ZRDS3`!Cd?3(HKk7Ien7Mb zf-O9Eu_w%MHFbIFVLo|q-6)-Vmm{Xx^IP`!j<(*yJ9q+!fk5N{f-NhHKd@IB-J@a* z_9R5|xJ~-YcG=|60n*jG95F>!ualQI&9@3BSMPb^!A<%HAleR;k}aD~ZL{Bxt4mKA zJWfLB4eQIeF}dW)a(Q*`U1q`zg-8=xUmhKuORfWgEp2W*wx2QY&0d2&39X3P7>Pvuqg=z%G_4fcdHmVPPZZj9jOZ8;=I1~XxXLQD%wAxk{UCr<;x zmf~X%*pYF#(=mfRVPEuqYk7Zda`}FPzbmUT6J{txZ6MCAOD-?0_cz(nx#}}{{+C78 z&M7+$&W}Pgua`}h3n?fwZA>jWt1%O1n1m<+L^dGUlDyq9d#`V0RGh({aOPFIg)EhL zNVo3Ao1BrE2{RO84iIVH9?}zmV9TP|C-U9IrB?2A(FS|MuJhh}a!36_^2m;-uFT0y zn4u7BfM^Uv*{G*FTjKvbCzoJHc;Jyk2IpWQrXMRV`vakGIOfV~{3}KaaTADaK(q#e zEq6Lzv-|4(-U9~bMX3fS?BmL6oT+mLFSdK3diJw;&j)4-^|V9pW&wgN zncGF$W4`+08H4j9T3)Q8yk``YQd{TBYRrTg3NaRlAdLCd;B`7%c<$oaPKZBx=z4WT zV%R?|U0IEpFhe0`wb%6qK->g^Ej)MeY$wF1hFxT@oU`?=A9kA@85}WnzkV*W^;u#~ z+p22l7XtAq$85bi5NwIA_*4!Yzs$OuJKA7RLWKTZNiGUX(Eq%iO7aMD#LS*?!agg? zlICrTz%VYO^uA`-9{A$OSZhM zveNF+5g*SOJWhz+zy`AAsuy~vtVdi~jhQe*A>x3@y!wTn76`VKO?KDbDJ+}ZYjBKV z_hayQ{dv#REv36CNtr^0C_v`&;eBty2c)N1SuEXfNw7y{AXjYOQltVU(FKSjeUEzB z!gCjU!d_q9;<6*&!N*_wOP-^c2{XhVa=qfx4~XA^U<=P(>o(XqYDR0d7QF&Q`j@}z0tmL0=@?~ynO@6q+Td6a;@7cZa$@&s`n#V->pX%S zl}kz`?E!f!dhm?XK)mWYO`i$`Tds#cv-bezb=haIC)B-e^OJjl7+j~8YXq4IGZbRt zRzFz{tkTr2CE3zoMvT2bbG7P8gJS_Z6U7Hh4J}_%BvIoLWG2iI-{(M7Lhp_$l&G;K z{`qseN6X&YZLlZQOhgrz2g7FR%UYFljUY2&hN%9GE-u&fouvyP*z)|^A^Xg0biy%% zV*&Rj+7FZC3y16ZmyY*v^f41=h&@XnIu#7p>jS}-t&5-ASw=s+(_l|HE6Q6f1fPxH2cN2C5}2wtHbtIkjeJ*14<}99T)81q55#SS#%@FO}`A z!8urnQ=i+&S{On9hSy!0lbJ9>tN?&`IBT|kzrl5#EjjDovtu{0s@LEgj8lLD%k;5@ z!u7mq`?@kGGhv28+%33F-vh+yG<{LQ^MBlV?&8@F=O2^0%4>L|P8W=FWlm@S zv8yc9Z9AP>)r(+2*ON^-^FPqp^7F2H_A>@I@ESZ$LUgIH zQ7<$#QcKaNzbmUT6K05(SKX*r84;<~>fK+mrNxsC_A|D0Ib(2)Vcs3lSC;7=s~N{V zuB^sPm?6$_fcU3ZtTq$~w!E78*nUR0Iv#^#47+M?g}i$&THExott+cB6K05$xI`g~ zKaSSU0Kt|G(NXp@Qsg>qaDK!dnH(&m-kaLV%TsjDYRrTgs!G7Y^3_LEOLt|8&X(4( z&+KQI1NIs034IloSAPH2)b2*qcV#tZ!VJ-lzIkOJSk)d}U$SN8%NY9^qrN?9aDK!p ze8g}$94)`UJG0JNjhQe*tVMy?^dwq)1O!`3lzU-6qw&+-27AI+>bi1r8pgcf=E|GLv8l3TOOx*o+t2u%;<&;2QHZXOM#`-}M{12T)$(vwVPG^N1xlzcyMB;!Jcq3iqoZ=-yYFQ=Lv9SHDeUnJtcJFLMV-w(#7= zvmM^34+G@b4G~(V&{Za9WM;w)h3E{#+Q7NbLD2+9ME&Jc7)G8R9kv5Nn@A zd(Q63Y`?V*cNHaz{{F*KYf<)u(^o`d{@$^kRES+3L1w}Xg)o8W(IeKA0SLCJD2aHt z+EQy#_Jq?6L}HIok)HSrwLCn6%!C=D1`>#uVkp? zkvOl(5l>UZE=M0TVTP!gC>J8TG&vvS%AOEch{OhaBRtm{t};3L zmfU`3*VTL#b0OIk&IL{EQ zGT5S4084tTvD8|WJ^gRZ;8AM^&Yb)!Mq@V$YleIC<2}Y*E=+jk#KjvM21~V9hYK@e$8btQk0S zG81Nqd-PZ{l>YvRCm3r6wy5l^Vppw2*%NN1RN1IolOsJHuma%B$xN6b)`>uz93JUu z1q54Ec2;q$zOdO7ZYW>{@H5`QSgZhej$$Uv5ZM`se7#~l&yRWR)sn-V=Pvey+p<_Q zEO-#@IfxYi&r!^T847V5YX%E*$zdSa!gCjU!W)GzmSy zrS?VH6LvrFjWelGxS0~)INZC;gc%AETxgkozHqp?9p5-?QQtK&kJnggUz9zesuElViXX$fnbZ;#W}lVou&3g*%MBxu~Rg+`!ut}&!b&gjhQe*A&vp@PuFQ?6!w@Bqmn`O?zP7!A{X2J}S z4S)y(qB9U|QM))QcGbQpd%|8Hc8bCZhMSF+jJMaKPDW-X%n(1{7PX6` z-a&QR!}(E&<=81IF?+T-0y{;V)tCu0M3ew=0q@{WAlUM|I_<$+qE36*6QTq=MYW4p zGW-9t!Cs3x8JU?dL)6v+aS(G!_Lm#%^C*YA+D}rwpw6Q>wGT`{+1 zT(7Z3?Vj)1yWT#dXHU3kfgSpHfltj6*rDeUWG2iIXGK8lDfZN?3SL@_*aY;VlfbHf#`~JPPV8MMHN@7Dv0wV?zrPbaS|d?ohWj~;a@Qt`Qu4* zc@2mbm6qA3uZ~}J+Na(@Ra3;C5Le?a>U;1GmI)7aWgO0;g;7(a-mavYqB_4`)c*y- z#Hl4)csAf!0`ECa6i;AgIFB<(ez%zkGla$#5X+X`Gk*YrE&R^2C+u>f$|7z3Le^AN zS#a<2XpTmeX5EfEEmft7Qve|P08tVMwx|k-nIEDpRcFbb(7ULBm~9lazDCUi_dEZJ z(a?u0UQrGJqA?I`QFRjSPefU&29iA`RfT>3FrU?7{U}$<`B#j_?S9meodzNu5Nz3i z`b7Qic54Ib6S)s@CLFs-ANON6>o3%i@u=}=swxXL@2Uz)oZ}qYq{p?(W)(*r8Cz7v z)~BXh?fOLagp*O!k?k0h%j$=!Fdj8#!VGaHj5@NqqjOoq%I4MCqAIr3GgN&dd%|5y zRE2#6q6g~8c&271%n)jbuWsrFSPce(EvjNm^_8kmWKUS{qAIKy`bwgXjAv?Q!VEDp zJZvie2I9fQyTNQ}i>hnYqpIqfJ>mNURbl%vf_~d`xMpf*!VEDppz>@w5RbRzuq)^s z?y6!-#g(eM<~bixf~v4_>yld!P)EjdI5S~}*!=+F@!I58#f|s=`LUJ!H0j z5O3G}I9Z07FhiW(m1!aSy*^|fxgBp;&^g>y?U>rjQgz{+uTbNKs<5h<8Frv5jOPz# z!VHDD0fZkAHGp6X&nxT+dzPq49UmEDr9y=%_X&^lJ=|%j`8e8AcUrJ+M@?!2AU?NE zDcPdxPFN7S|spz5Ak@vj(-xI$(BiQ%=aHbAgNRm9Jmy2nzt zIoK0+2T^rzRY@?1eYkDc^*KGtV{ikv2h`V#x^E&xlNMRECb+}T~M|}l&orA-ZhKzuNaLRpg{BjA`R->*`g}R zRrIObXFMNc)mJ}UAJn?MH38M?Jd1K>P_^!A#i8!U;XDfU?FE7OdQ~aAvfr_&N^&)K zsoQ7l2^FTOR)1P6*y^8RmBzCuGhv3%HTY|tz6OZts6FSmi2d^OaJvSGe}HHT1Y7v+ zVo#|32zcuGtzS18*X)|fG0OMzIi_)caL{=DZOH@X8&sb0nu>Q@IPc;vz`{8FdhOiu za_({#-!o@zi6#&3+voLzsz#xA|9EuPQvr$&$p-F2xZ@I79BKdmqg{uQHfD}G0W zrxFlLfM5%2ORy(AV_5%~g18mmW^NwW%)q~5G zoBTEZa-DS_Sj8cC>E-rKo7wBty!-q6k!B3E6J9@PqCY#e%D&ZBMUOZ5SB%CD(8Q7E z3n0b;!4_6nU{6AH(CV2=*I=!gpgkD2(Vi36{CdRTUojeU2@u}{vC&G<*ut6v>`90{ zQ~gcVSL+5>);KcwSB%C<0}%Ov2pd#cV+%(Nd%}&8z901th~4?w3s~==s?w-+CvR@3 zs@#UEN`*!3y%nIUk{hZjdv><>ezH|nszFs{DpXZ6Kvjh;E1{~=vU?}*L8z**Cw$S@ zNM!{dAEJ-m*;Ed0FyDSg_1-SDrv4rAnce-tEvxDF(Hb zt@!_~ptb_7;ze<0KeVHGZk*djF0@-)cms3qdHt4Xh zC)_22s!D6b)z45>xd|PXiRoK=^FfD&f5m9*y#k@~`Ba|{i{p1JbXc0zZSBnu9TxTk zC4@I4_0M=e=0fpA&72>v{oqXpjTHVBqfy@u#BCsg9yc-B(i|Eo=QFqQ9`I?TIG#`) z4KejYMgE6wcnxJKU#V;{1xyLgawr$z>pR0>PHK&@ahRqn)>>Prt2s2lLR9ZogUU&I z=mx1sYy;h(de9S6ktjN=@7iW}-fGFAgwWQLq!i*H)Qx^M9@U`rk`+oJJ>RzW?zfdf z76EY;Y714(bvj$rt=}8FTX~Q9ltLU&xWNOZkay7i$ewm>>4cfmuVaM$?To8SUdwT6K04CI%tb%K#c8}#bQf&D23da z(aC!kN+Ik?2+#bE`oZ`JSsA(?O1ZV=$lSS2s9}M& z$O^DJ(lVvaa|ySJ8KR;we1d)mh%Z2}Mcr{$ZR!j)6840uNpqe#6v{2NPlrgJ2YG&U zw`1smdFJmx{Cp}zvPIpBR&li(IwR}}Rrk;@nT#koeJe@vL@`nGATwcxsEq<*BoHa? zCn=sd+{;1nM8#N5pW=z*3Ay%D2D2j+PyC>GqVz=kF@GF^q7*Y>hNx(KnZZoN8&!CI zl17TdT`4-Kx9CToMvCJJ)oqbcx>5xC@!bzGJSXz(%nY%=3ssflc+ZbM`XPobO3^{h z29eN6VNcKzE*u-P0xBM>eHtlhu1y2YD{d1r#Fy|lu`xG+sNvH{akwi*hkmQucx(7H zQXEfMg+uYA6Vyl+XlFb;?=ll+2%RDzIsmapCTXNN+?Aq(dPX8NQrMFa!?T2G3gPu> zq&V}S(nxWbFhiW5rw-G?f!ONPNO8FH{KzvZ*1N|Z>r2q`70^iGd61bfL)^UgX{1c? zX{0#Zd46P1LUerfP~Q)=g`c2!!XwD>+63R9s(l%4jg+O(NO=pyR8LWzEgjSsB*uIb zz988X)(iooW70!s;-5B28Y#{Qa=fY=*>k3L@UFHsQht6lDy9Swmw{l5`Uade;74z` zPb0ZRX$15|$4Yxn;YW~nj@%S`S9PaAd@bkj9-i1Dm6vq?(t_&1U{(|C3 z@wg<76lVmvP0SEuUN3`e1^tqx8;|d2OMPghsAn|yX{0!w@FjdMRL=~A3B?nRK8{yr zh@GNKp?Z2CI`}kF9PaAAv+AqS*iT|lQ22x5$x-yx7AT%@^l`j0L;NM0TsdW7^wq{w zpFC{20gV*ZZ%QMDJwYKBiYMP<1n>GZQk?9}Oqe0`UZJWI3PeGlMvBAT-kCz|R`O}2 zIG%8J2gQ>nP&`>RYNpBAnVB#{yipB{%C?BzS3s~u=}gQ;gzv~QreyCpiYJ_%c`d>W zh1gijqnCkxNq!*MqO>d~;5$LAi#6C2v=h?YHM8$%qaU8%-j$tsU7}Pf6vII1n&9UB zj6(7W5Dhcyu5}4>=Qg409;zxOz-q{tBpntfJ2Mkz`2Xs#INW)D!Yq|hB%L^R!erR zkf1+%ciUu(+MzE|y0iBJcIep?;tD&$^PrJZ!Kd8fj36^%hC-|WqBjuRup`VCb#GgJ z58m=Aw>X}lxLEa^St3g6{?)qL+B?n&a_p)b*^1$7TU90d%MvnEwA43-S9QfMbLTeU zlni^wkzln8d&nGp9Iwpqf4k07?K-n%2u>~4c-+IOC40i(CG$)4^sktpr`(yO4&&r) zj#qa(p4Cb8T&SF&PlTQfThzVnD8yA(pE``=Nr>FgdNC0t^RTnc*_oLzL)=ls&h{H1 zf|HNY*`oHTRrF29$tZggVl(amv_iD&8I#muob1eR6f=Zwl)t6T1Y(^}9me6V_Nmpo z65vyZaXjIB5PRXBp!+cy>M)$0nF%w*R}l~!fvArCcD8K7>8r}Sn{fKdp77;WD_q|L z{gSmlbr|(4wX)!~2s1<_M}u(vNvrbmkWU@P;jVVJ^WACZb<|-TPpE;!?)e4iuxFxl+r$i!opGu^0Eo;u)n|*kx2^hWEGo~~6EY4? z^8#trq z$Y3VSP>7j8gaUC12)3y6a}^m!PitaIG15oxp9vDFEu0ih|W;)Gcx59zum z7TQJbg91&Xx4TWYs7lF7^bwcsNCd?4}B|tQR%1w2j%8kQa)pDx6-g3Cj!Jber8Zlm<0^N`6s2t$v<9KC;(7+x# zUcUleoCQFzMb#ZB?kjvMH~+T+c=x2adri3J*_qqK457<8{-RzP$}O3IV2i3MRo}J$_*8Dx+pN|o z*r7+gXs%`V^tUyWRBoK?%uJXe?o9wO9||;$QDMp!RaL5mhMUEzN6X=6F?$l?E$$Vag33)+pURChf*h61 z5VZzSxsiQl>7#urHx74o=SQ8_Ix07gCuk1fUeQFT+$1a>@8RfUCd^QXK!pel*DK&A z5?i+6X0gg85;u$46I2RtuV~fG*?P;UB$XQ{Z*#mdL%dNyWS>1-Z|qaKak#5HKdMfq zvQOp4@q{%T?iIxbRMH#cUJ++uX2J|{#sb6$sN58Ly}@LQx_y*-RTu9NpURE1MnQD~ z?iHmQKSv*idqtd``Hf6~32JM~Wsgsm+ob1d@ zm?7$9fM^9Joq;|j9f!NR&#A^^nomi`@q~Pyr>s^BN;>OtXOy!uuSMMLDEezztt`f) z9}sL&_c>KBl=dm2tpOTKlUESwYG4|G{ zq@&&swMN0oD0FfBiiGPIac7k0L2eT>L`8i5WqNYFQ6+INl`T9!vL{3$?u_1mlFn}2 z8RdD9+r$ioC=Ns&%nV^bu!ZMG_5|g6b;o^ioc0B`;(2U2Dvv`+M^%emv6XZ-0`UYY zH}`>H%Wf#?s9&Y?Dd{+|fL(*HwwOg%9td8)slRIkId;|Ub%h>btK39Q(&V_`4g~-E zKFAfj9IqLmQlSv-p;CeSgSbaub$*;?;vPMZEw_mo;`atSq=q%n-^gK+Jm-tu6AY^*G$s zZF}|al(~}BdK^zUKZkzF?RTbD%BR-jtStDAVusL@0bnldWPjw>v24x zVhf5V3!&B%3;hz#+q~jnhEU}KqAb*U44+z$!(C~MsDF?4sr5K{9=FM%U-AMiUk}9- z&d$8zV204310pBXdg6g#OAyq0)H9kut%p6~6nT9)8I2L_3hf=v+uSB*h`xg2$)2!S ztu7Q#*rK#W)HA;L)OwsekCi_3OVS_`pF(?wvokYchR_NFV#K&ettb>v*rK#W)H5DJ zt%p6~><;=RO=Rs~0GsJEb&LA_lJfby+MhaVaeq>L$cL)8FiR&V?e9$l9 zS&f-6Lm~PAQQ=^OHUS8>@I1(#Pp2B| zAGW9{Ib6BBy{2YQ&{jtzHiKGENuOGe6MY=7DvlLet@?4d4~S!lrl$=MY*A67n5Z>1 z#{zPcio}1SJ!cS!Jc7)G874)0y~oj>B|xx6-J>rU*Ues2vnQN}BX$o#d#5R4mq(D9 zFhk5fh}{n1v7T_mE?ZQTWWLbdUQ@Ft%+!d)yyGK1=MlR+g3N>&Vpk1_{Uahh&od^e z^*G#Bl-&Kco4uxHPeOb_B>vv?h$lHBk)w~9FhkTDAlk#49r0ZCsr5MARlF|#+}&PN zvnT8hA`-`~jqqG(u*&4H* z7sq+pLwkp_Gc#d^SoHx>5^6n@u`XeYS^@l#v4_2;W>2_-g>^~Zl?P&$V_m{|o7W{O zw=0H8YwFpPHFeY&0;zXUtt_}r?sjy-x@6G$2#;Equtlu^)YzysHRpN671kvk zq3@Fy`aYbunF%vQKF7Kw261&RZ;~RA!(FWaRE()LHG9Ht6jm9{pzpH=s|?QD%!C<2 z2?4r;t?_>NL3fZXY6YO)6}20|p73`8u*&!eia^J(%HVmBnJ_~kvIDUfia>|4l3@$a zkL(F`uUKVNfg;ckK1Cok9%^O5Oqd}~^`QvV=3%ra!KVo1aOe4vXH@LTeAsTTc{jsT zs9m^g1UYuqHPIz^*_V2k?ln$xnoy-&@aa2k%UyF;^Pn_u}_GH@;z>>**rL9? zcK_JR{s!b&Kj^cZe$CjBeL+ni83-S^We*wW3^$l3QQ4f2cnmu7B6<>Fy zpeNG}Uw0gR%!C=@t%b5`5D?7^C8-WM+|@T=yDL5IeQNfEd&1BVYW?z8^BMN~IQp0g zGsI0K?Db*)>VK+34tKSyrUmx&D%BzOgc>jG+!cksPZ#Xmadu`V%n&!KfJlUfkV3FU z?W(C~sC{bogfkZG+|7Zq(Rl3Kadu`V%rHrHC@&B@e5ykZceSgg`bzCnvnRYC*trWq zUp0k>5a(@X!VIxO2BI8Phsr|(n=MK^x&p>r?NhTSC}v@=ZvsZJwNG`($KD)Cd?3Vg}uIZcn6#MREHeyYFACoCF+EaJqfWNJ9pUv zDw*q`Xw9=4Ghv3f9|c6lph{-3mmBOeNQXPmgX{?!DcHFS!wmPrr#j@UESL#1#NSW= zB6Qpw(*%MoJah7limxJQ2-SsBNL^?M@d$Ffs`Hk(e|q^&etdsPz*K)pfGtWpq2sIG zcI^jyLY+QNOb$W6Bm^fWJc1mR>bylgLsh3>6%NE;ApXp>USo?o&DgfHr(OHOo^XE< zCng7=I;2iacx;&oGsNG*&Y4U0F8or6VBCe#&Qc9LfiTs zwfCu=5o9LJ5LHM(yu)4O+~G$(Y*E??YVK0CAMPlrh7*%WXx99L6B8amX2J|{Mi0am z=oIbqsSY{Zm3G3_;(fiU_Jchk+8aQnIoE8n2{eQ_`j`nbM2-sWBD?s_Hisl8sSY{Z z)w#1;Kd9Od_9R3eoQ7wBzRzi&>X4J2nF%w*y!%%r83+xbtv=Nuhr3d7IN7wXUHidt zjMJq*_nNzoKl1E4(ASlnd0mnNwI7OMQtih-JF3VZypKHd@3_y;nLD=$xfZA4H_(or zI6vp?%uJXeb|8VM3&ig}Wg~~X(yUQ!QnerK38#J9ni~J+#(ahIbI#7Z;&8VkqUo9% z19HqZyW{+vE$XCNjg6}PU{8n=oQD5^xH{!iPja#|Ghv3<62lgCKVQA)s%p-?0w{^o@O98z zS^|Y8&d$6RVTMpc1mXw0=YxS@i_*nW@4Tw(V^7#G!D;xA30KT1&|BhpkeM(;)Qdu) z=|`xf6%9{PXmYso{K%e?&d(+Emb&5moaaGi!VGafi1YIaOYfQU@mFHl!t*10!bt_tmkW6K#qX2J~dwT-`=bp~oZ zB@2SCu4|T6J`iy3Lq{4(HJ$UY*Bw3@MU~o zulh@v91BoFKuu~MXd#{VDNQ+fo0%{}A$&Edma0i*i>m%SJEo6a>&$ViZt&EX`=IHR z4!ThseawUzqQVpi4Ty{t^4fo^(c!MDKh-l-tuuQQHaEI zKBXxqJ2Mkzh+FYMG=w%)WmK`UMOA;QI9B&q+$(@-s4#tlH%k5eLC)LEgc%}sf$#t^ z00_1y4Iwp`sCz8z2^!eYjhgf3kh$n?yj|DltSp!bGZdm8YEr$JOGZMQiY=;^Q_VQ) z9*aAlKSG6RY0Pk!@fQnu9%LrW5HkZ1y@6QmQ<`$P^Zdx3pmmR$)L)wBHGf7;D$j$w zF5#IEcgemfFN-$IYmWQFU6ab(xlPbkPpZ?mGNbCAN06gZ)$FV2Q8yfMUJJwsC;}y$ zU&6jW=vY*3zIwaV{XzDG-6-f^-CGf2ZT2ZhzY2P1oxU1Vv>f2e} zA7oEBOT~?r>@&Mv$2>L;Njl+}e5tL@V6EVvEweT9&WBeSgp$B?EB>>u99} zb1MFNHjflDVTRaY!5yrU6%xz?K(IyKT~cQg>i!^mf-*O5RBeF%)kWN>;^<>0%n*NZ z3J9f`HN&UM<#1QGoqD(FZ{HtePyf4vWvV+^9HSh&>K>C~m~?;eNJ0rzcuVu`f9_y0 zcW#pq?QsW7v1;d2{&H3p%!C;VQ3QxBK;$m7%Kp3I4tJ&9rP`!!UUQzuyjv;JV^vHr zJK^tbbKd4Qx!X~?N}{Ji)daIQ?qIP+-F8xOrEXrcC!8+fMpbcWg^ht$7-wf@!VGa6 z5Qqnet1`H?#g-19Yxeu0?uN4`e4pb+)zu35t?Iag#o3veFhiW(WwNv>ct1|#4i;O~ zZ721vsJr3p3A=;1QS~d{+MKP*yRtJgVTNc25bc5Z3U{#BqV&PkY@ig(+$(_L--heB zSM)yxGiPPNOqd~Vnc{DHX9mL0r(ouASGS$i+@)@Cah}IF4sKM9fV$ZCX;x`G4>A*G zh#FxamI9F*cd*#PGbek(-%G`fsx3e)^J$(r*_oLzL#ST>(GiFM+}dIb&yPH#;#NE~ z2i663w7OVDUA@Z@^BRgC7Y7Wm6+N&bgXX|LK=c8EE$VjvSDX9WdKo-UxWQ9&bWGQk zm8|(~E86;SPVaKWsN1sY>rN?p;PzR8(J`TaRI;{0bAT=CcE4KHD7_5#2wqLn9I!T= z+T!Y6X2J}iA}GG-@=-f0^4u1UE$Vi^${$KEgU1QCouE08`KJcfA}9!O?=ll+h#Lyf z97qAgc_7%LZuhGUr}Q$|6V6zmAmA6@(i#KJ0geo2!VGcm4hRj1v!jpiXN$Vsub!dw zGT4(4hcATcCyutXoI-99ICG81Nqzjg!7feq-ZQ5QaW*s|jKeS6H6(vUklKY`{zJ&fQvCzDAY*DxSRqQG)B=!W&ng&JXY(!$)F*9A6lbJ9>L_1UpN+a4+Ky!dC!=Z(w zB3x-9aSn!VEffUa;Enq6-ELdY(#f36gc;&{5QsxSJOF|%>UO_+QGOU+jC^PS$58%|}X?V2cJVqOn!^r-kXP z_D~Sud5~8F?sgns(bzn7aSGujW8o^NeEw`d7oRn_*rN2W)M>BM z9b`}V{(veMbiAxnQ03wgWG2iIUtU0L1w!NIky9IlnZp~nb-b86w+ZVKsB#?!tEVkey0SAfVTM?dLHTPb z5cON7v=z)8?vJ5{sK!I7A#xm}mJ>Q&%^LbyL1#i-*_or#-Hrp$@#@;h&pLK8#8xnK zTBsDWR9q=FM2=(p6(y*0jYE`_xHsIDotX(Uga!l;Xa19&nF%w*dtN>^X5f)_ z)-&jMv1K(Bv(y)oQUT*UFGQLoRW7Sq-7~K2%uJY}5aWU9lBJiGAIe{B`5vl{>KRJa zk@Gy>+H_&sL?9|bm5Z}8Ghv3P7ReB%{RBi$AlRa`yHsB(HAMD=zXu5&ugz%rt$}S_ z*_oLzL;Q{0qmT7BKr9~8)?^FMk36H|iyn%Le__lEL2;4iL1w}Xu`apwR{IFVR?j+} zEj&N6C!B`IPBiNzHnh4=P3Iaxj>_MlRI1Lxlu{{HeFr9*$=)`!mQ6_~*`joE)w$8t z0;g={Hz$s9Hv`(A&FlYUrGWM)k03{-QVvy_S}B!c-LBWun*x#7O0YFd9g9*^R^QP| zYm_|+vExyY`RAf;R>NQ1Bgj$7428J-Ajmup#7H36qO^F`=|X6=69&fu-obYx^+O#7 zTFD+Yag87|VTL%bO&qCb>NwD9d%uaT1nqEFdZy|bO3##I0a#YXq4I zGsFzH+Ut1?#Mq@vZ5?5U`*iO*yRWJ~h&MPEaDVWdNWD8+J`ozG9DU4$8A4;rKT>}T zgwjc6i_$PvW3Dt)*%SU^NYkvI1{lGPHM+a9Gc#d^*i{S7>Innl$7p@wSvokYchNugN7V8rreulCtTa=orig2Yo%${(%)TMuL?!@6% zs(E=_*_oLzLquZx{=sE{NCqudwkSPhl@pczD(88excC03|5iJ<)$Hp6w!WydvS236 z5Pzo{3d+UnuguHE5Ds&-?ER=IqQ&m?8G`q0(#sak1yFV74eFa5WxEnVCJ|403iH z>Y{R6XP~*v^B}K9-0gS>mF5T_ngPKUo*&s0)ZU=dToh3<5}M0A4>A*GXzOh2If1A# zyt0QaJae)q>>)#$Tg7g-;gww@$WeJ8I^t?oqjbcvA_F295U++-*4Q!*8u5FvhFk5^ zhlKZ5Q(d%|DzY?#IBbaIH9 z{OxzH5#-oC-hQ6VaCS`Y?%XE)MYb&w9_WQzn>^cHBgjmc zA-=q}MR=+JaTMzKY*AYGYCM#-KF0!PxGo>f^%#$|ninlCXP3%)KO z+0y*Xe0$W|Xr~R1VmO49QSvSH^f~&N2{Tl?wf$pC0MTVm9+NFfbzenaUi@Vb z_JqpJOY!DK%+zuD@4K=yGhv2!&w&^T#E63Tb+%lMUu3VTpKm>BaGuBMQp2oTFJzoe z)w;W~Gc#d^s4r=nRjUQWgBnSHmBit$_d9E^6Z2NzYq(bcDRV@ce<5@Jk$<@>J2Mkz zh;xH)BFzy%tOtTEx$yS})OvRg{@#Fl1+aXrS9^&SK#`?OUD=tLFhhY2MXz=ph|55* zB~H6yKcjK7-3I4*WSqAn&5uA-yWhl>otX(UM5Pn{zQH{pmOpHwv*juNI)YkLtG|xG zc^>Gpg=1IL||!GPs^O2qU;` zUxNMD3Y?V%Ghv3Ph?n)uGC-t_P0-lF^CQowsDV5*QQwM495W@ID?2k2W{4`*BNO!y zAjSj17M>q@MuiUj-M60WSn2zl>s%wq@!DhSVS6`nYR>(buO{Ak>$w9&3Lx0hVbw`{ z?{)F~JqE{u{l#MXzF1r%$WeK+<^p?HwRNqNc*e0~k4>l>TR%p$)!EYU&0>2Gxnut0 z2FC(U0WySnO5)3F-vRdsG81Mf#DI)po~1w>^qw)<@*(9#`x&{1?lL$QaF3BO{#dlZu>e)B$S5-zzUa3;`XQL3kC`w-ytON%O!Wns z?)?wJY|(11wIjpt%wdB);d}6T2E8_R?o!Xs@5;{1gc;(V@cRsUf9!tr0)j2|Uficc3jPPdCFi< z_&)Dd&g_RM>9uRT{g;89?95Dwja1{?DmREgmV3%Ddm+v`_fAcT#KW zn1zk?Z*d9`1_WEul)q~dWMV1_86QWp&Xejr_}@}qXRE|a%DAU!VHC| zpF5}Z2B)t%j(^hF67cT=yPhHWiem=nM`#G02{q^8gjf70t1%O1h;z;hp{9jXz=XDX{p^;38{`6 z>3Za=Nk_Ghv3fwe`ncPat}CH4tp+Ug4@e<_~&A8=N1ZS|`4kT`_{< z{1#VMV^yT{(*V^7HJPiC|yNgvAz~C3s$eu3GCVmf5Pjb#Pt@ zjr)qnKiloucJ1hli6`(zmHZ29P*jW5osz@VavsgEbHv%BIdkN0AjIG6%s+wXF*%3D zmgxge+qJd1Chau150N?Rhnv+=S+n(zQm%IJuNaLx)%C*7Qb3#nf-R2%FWcP9W{ozu zN3f>OW_hNe3MnQ-J=ZMCzhbly%TigMxu|s7k+Gh|mPSwhwrf)B7L78vr%`25D^a_G zimkL!9W0(L`B#h0xDo(w-*z;6}^g`C~m*-vpc_?o!v8M&%WF~d=vM$y;&VkM~lt51h0Z1?fZ zc4tIz2_H4C3BP2$wmu;be!JA)dx*(varBrcH(@@0+j;f09P?%e*C%-7n{UKb9%6Ed z81z7WLEdWZ4xMX4u69&2$M1b=@Bgqo@G<9}xc}Kag&wd~&02GxsD1va-Th!62T$aB zd3%_xZ4zvj%`@L^H}Lix+j!!JEqli>2kS234@{ zDpkc8w0D%rYjGCby4_TEl-es1rvoe4*W*{FT@b+~Trbz8X_0e%Ogr}Kv|l;k{pDQk zST|4g>h5aE)x^sY_ELXtbTGMI-d^WQH`R?d5!+?2Chv-{Z;Bsmzwa7ha>;GKZio0L=ILH*@+Nbiy8KQn6GuQ(C$VYaPp zCr5ARdU<=8PYm3U@D^`rZjO{)+46?csN+OPY&c_{%`=rnOZ2MCu9eyWF?e#2Xi7h7DIvL=;EF zXv_g{iF`hn_k+p&m17$N<`pr6ws#b3G6=O#r2cX{c`J;*<~rR6RUMI-#(rNBjw zIRLJgw})TF--_@J!{6Fk+R0lzNA<>ED3F;=-a~E^M$w{&eC2Ng*6g3kJcjQh0u$w~h9D#v2(*b#d4y^0k)l2JmKz z-#JZ}2AM?rKKTBQ?W6b(kncD(?Rl##X4m6G#mskpz&YVu$#ujPH`HsM__b?wGcJXQSmc$7nSkY_x31_^JQ9z4-lhTn$Y?HlZ{v*dPg`|z|# z(08K+j>r03g&cknn%m@P$F84lruXxFV4QSuu$=!2H1{67JK@51qeRXe(BYHKAyV_$ z&gTmLwybAi^Lb9oc5Prihdl$|WjKyUY@h1py@>hZ>bSxVW6sw>zP4*xoHg0VjK7OK zb4GfHUvZTuw&?duxlQ z9{r}B16Q0~K36oY2)-X&hg`Yg`$0ZaxnABLzC})&EE*x=%JlRmm+%?PHR1UZ+c{(1 zf?}}eN^w)#(Jbu@(*@6`N%Zo;bIehA#!KeHXL(1O`S5)`uC>u1_BkGF5dS}l6|S<`wh)T`!l(K}ynZjG3*NSFWrXX*M@_ryNf zM&~l;1YGok25C}+Yu4Xzv`>QBV)Awey}UhqR(pC@gw?1EKVScJK=4|!-12*(SvmJc zYy;0gfc&rg;}ThR_uOx09~`YLKl*Z)S-s3$UDG(26L#)J1eZvgXq>qw{I>5< z7U&Y0(fl^108~Z2H@Em%_o^g1^n~{i^Sg)$MMMfBxMU-?F}AbKs+wlI&Nbmp&_mM0 z^O_m#{g1Z;-uHuD@4$!URjl+Q?D}RzR}U|1#YRg{JdHc0Z(gbGiF?}tmvEc7Cd_O% z&ICRE@)=ccw*;=2_k{NlGmzeyAkVG*#@*{JflGLMToaxtdK)Y1|L9>ZvClTRSIcr- zl#g}ko}XSTwygepNG0p?^hRjMsQ(bF5y2(0JmYswYw@k_|1&=>OlmJaJRJe&^g8xR zxeDo5JKi(b*7MW1?i=idgEYg% zf?~tr+lsPwkI2IM_zn-ue-`;TSj$<^w9;vZi&=Ji-`zy^y}v z_ocZ#u#|(foCS=#h{%G7<%r-CS$_HctvM&KjLtQoU(LKNf~NO?1*KvYR}?vU+~q82 zS~dNOxbeFSc*IOmentGa^eU%!U3JJT*l^naMC!H4xXzARxvRvQybfy=j|{c3hqhw5 zt^JX!(RVi?V)Cu}yYeA|OJq;nempg0Egm0npEzTw7`(p{)c#c5%+<|95Bi+e`lpJU zgSDIm%s?Vy#D54bse^6khtpZN2YBdQlcr^Go8=q)raRPq^U#p3Pd|?u>0>Q?hBioZ8uZ+}lG>-94A}piFQ+QRbav~bFFWrgSDImd@EC|ncXd9 zFu0eFQoc+4d~Abpx5zoOeTmTuO`32Q{=NxZb>5das!?8tm6NXqfIV#EQ^LAylYW(g zh(l@jB}O2EOSq45uf)?-X_t$(w~Coixw5$($Na$bQda$Ro(|S>7SIzB0f=aY2riLr zq|Q^+a;xd3b4~a>=v>fVYwHmBHEEWyw2-@gC;5_jAa1CGwVVaqA!R@B+w^e|6yEp3 z;1bDbnT~hN8PoddTobbUq$zZGao1ieBB#UZ%sqp94BlLih$+wR+M6PROE_)wMi7eBK%r)Vg(bKiz#N5lmYvE6|*3$aQBaTEJ_c}yjK$K?EJ)B&~7%iu>cWQ5fOk0 zE|KMLgKwEd)=yV$kS0w_d*+AOm$$3w(|DlT0nn;1N04?)CZdb{>t+3N>4SuY;g{ZF5QYdYk>#v= zZ7>COol~F&F&2)y!-aGQh?oHQxY(e9r+kF4>Y1^hR+NtX-vM z>0A?@HvH-%@|7F}%eIbF-cGB&w1ceWEZ`j}h$w-Gu880g3+*V|gqN~|G+`9I zn;UMq)rEU&$B6%3)yP`T0)CsZAup5<)ZvlO4CPnE&!R=O^ks%8ar=H#s zy1O6T71c5g$iCBDPLp8WE!q z!6mYMa&$H;$-ji+iuMoqrJmN!rWY9ug~l)XYgHp_IScqpX4j%^(@qS7x-SMR-z9$1 zzSQ;IK{rj`Z@qQCKH~oBU`MFiZDrzzTh0zUOTMbvv4@9^0@l6>(y#mx(J|l;f=jrM zaj(SRX=pl6%*k8AOf%ivX6S$)4GDrHQ~NJ;=4Wm zb~kVt{X+Q_t@_+r&H{SkHqCHO+Zi_O_-Sy7Wc2aq6!U)XK;>7Y3Evy+>;&x^CfQR8 zr*haWanIl$gQq_cajZd-{X8PLg!9IkMy{r;5!=FBoB!T=>F~78t>rApUz}PaHXy=4 z1eeHiyjv+tu7iC4fZtkP{A6pNYZQdO%BQ%Z^;OPuvX--er#}(V1rg6)=2Lz}{K#6g zB1<%B!c$@Wn!}#62ZWjFk&qHv^<|l2mqb$}!d@Zb1|l{ff=gtXR%EUT-=D)_(XvsX zdGFK=#TBiu+*-~8-kFJrCWzRF2riLjT9Nrmjc>_BTgcnwxi}1qRj+8(=e^3ku#Nt* z^hYya$^LRZx3z`Vi15@G3oeo6)1Gh4l8yT45>1-$7ulv(1}$4vbKvs&Y6n28KJQgd zL>HWt*YdC01lu@(i0fIanzL8bw{wXsPrC1JovqnTmuS+2Gs-7O)ayS27DSd)I{;es zWlw0gBzu^#>^HMi<679pm6}1KDIy9^C}-yqS)Q=+n|UgWud;(Qp(j>J1xpuqhP^3m z)DD1FHEu0u0l$euL=+;@KW$^<5?Q{Zzcz;->8{!!O?XcKP(zq~Cck;ueU6PsYHlrO z0ne%-q7NeC^Ukqx$(a%U`uSz<*0-nqbgl`H4!#K%0VM{2-?FiWj6SsLOFPI~&Vr`Z zcpEH25%DB?tidI+JzL#h<~iRgI@g4`SDO!%>s%BxzoFuPS2ePhvw+`PJ}U?xT^c~$ zdJ7d-#E+~s^1(|p&DbtF*Mw(MOXKrq7O^|;l4OS&CAp$~g6!dt3K^`}4Fhq^MHe(vA z>1{8?740AJ)`*a1;#%kcu+N>Wq7SWV+*;0prj@z?upl%I9IJdz%|YU)XYi7R1{q2pPDOC+PKTf8<;4Q#9P^$~ZLo%%pC(Km7Fv_pdX z5?|FM3!&AsS^fJ;zlui0`X+r7Zy$HEsTwn3~wjM#F zARvE!#TBjkG8&MzoCUmL91-0SF$ob|BFohee=skfY^b;*P52c=f$q>LPn2jB6sO`9 zt@=FTNHj$v%vmC$eeNh>Lj;$|GOfrGO`0@q*zNqVyrXW;8PH#GMXNryma~924<2W z{K#6gB1<%B(zJf*l7(~DK2V@$F||6=ip&wW76j;zJyTh~M%BSNxCs$Xhp-hoxF{l<-2QD78{k7uIPDY~pRQzR@7j3W&iKvN)W~R-?C9>>& z?xz`2td(km)-L?^^;TQ>os!;c6SvUDqo`z;b}}~*{b_h6%fC(wY@;e7+@Gd56Sgh1 zamlrU0s6wunJf?gwmR2@k=o_CcxH8iG@-rJ2-1qot>rA>N!j$z#aTq84(VlZiEJ+@ zb!w}~IHAiPk|uoHSF#MmOtV1|&smBqT5)6>WG!a_&v+ribGi+B6`!TJB7S78`}$9F zYmw%PE7GKCwu|9vb++Y-ckp)E6N;j;hqj+-tsQsTAy+<#n9=IQZeK)jiEJZP$5g78 z?BV~%Gl zf%;LG#kPaH#s982WG!a_-_ft0CLZ?g4EC^_YCMP^S!>PQU*?N*O?9pbGZWQ9Ar~pPfKMTURYmoMQazHTwdM_vb2~ec6E(b@rqVt z9&sd^A`za;Kt#5d6Ge@HXu&12+^n!>xnF6k+8|AM)6`ZUNMEjmxo~fD#TBi{+*-~8 z{*DPE>LDT+5nLk6Yf>^=3w||FbC5LQ*{EJlP}|-N0%H~^u4qM;c96B41@v~GU1H<5 zzVL12V-?$pA6bi5WQitC_@??pH_*LKiGV{B6<4&r%35SCX93TozV8O>DxMN)5y2(0 zOe?ZPlO~L!(e>eb@xo^8$?_^|KN?y6GihO}`>GE|KN8cT-y}PB+%2O|(AZ zDenUK+kji0&6N95w*QUP)GLYp_A8y$pm<|!qe{V!P-cs>`So#>YJ((~DhBJRKc=(p z)^DnFP5Az!a(TFecRE)N(v_FcsxNy&yCvC%ZKsnJ{-_?d@vvffXw%snhIY{nE|KNy zpPj6GPwMKDH`0XB=WSi6d$|Zqt2tyo^DU*i+G0_C3`}VTB1+wNn_o`RTML+h|uuwJR-P6mbWK5saleS z|DUxvN3{iy%O}M=Z$oj#S2eO$qKO53i;Rebizh`KBDh4Bmt1hRYJRVyxFSt>@+|I( z2-?&f4sAH2q7SY5vL|G%L=y{mXXef;V%>)3kZao+)dopqEi1K?HKoxXu1FJp`4S%r zxxO35)(9aaKNQ2cXK;_fUEj`7=>Fa?GL931OWtA|2|?(6Ynm!MNE6;=(J~nRIpSk9 zeRoB1MXSDSkF4b^;0aSi>^tpaw10a=*+KlsTE7;ivCQUw{E9T;cN5w~@jJU8{JSQz z+5yn2FS#OXISY6*-tP$la`-_oBDh4B%Z55x*Y-71enpz_OzQD)m{7KT;_s45h=}F5Wn?=%C_?B(j!YSX!%C_IheONE5!{t(gWcXZMFP+5hYS_^L+Mau)D3 z72e8~5fRsN`l~jGA6cvI8YipLsfLOx(xhphC-sMxE63TJHjPz&Mf^xR$TPUdAiId@ zzJ8qjBqF$k^TwIRJ2N{q2bXK9&7t1&6<4(C%UWbDXF=1xBjWSb)aIDV^OYUMkE}JO zX*%oThWd&t(uDb|)UMDqT^mSUJdK)zd{rZBISZP02NB&75mGRXYJ>QZwHBXpvJ#C3 ziYwBDD`!d{NM1Kmc;#F0*Q!PlN1`bb;r;DT`@p(IBgGz%1%gXt`CKz6D`jv~)duY! z@N4p=jbU7VH`BRz4aF6$`jRWMR-%aoyk{E`=@9XWSDRD)`c9O_i$2L2u@sMcJgzq`^ zo^aw}f*4V3km8EgS6Pd!m1trC&#)lkSl0od2Tbb zM{%_Sp!HR9Mb=6*v7l*votnYzWx36bA;s-nBFnVyN;GN0_aE1?!@hr7LXY@tcG)_u zuiRRRCKfR6Ud;|QBU-}gBiU3NB$2gfMdq6DcN80R0?SBk_HMq&#v?WFRqNh8^q`l{ zmRG-q7_SQCE)CajRfj^Q>!~rP)r+^`h`2jJht{b|flrpvY6SU;Lo2l-VraHMYi+lD zd;aoWiiwVhUisU=)H`RygLDT}ulQ;}J#<8Do^(tkjcEl*W6moCt$orC>Y*dz)a6ic zTWuKm%h?>F59iGhvG_|cT(oK!Lsnc;ZSc5DJ#<949qT8S1U80Vv$CiaheuKBp(CPQ zwQ%Tlxl`gN@7;h}iGnM7`nd0skokk5|+~ zM}$|F{_tY#1pA7kTOC$49t(<)RQg zGEfg45uHx;hQSBMigINZ3pvhwo>Sy>M9lxz6xQX*W{NIVR2wv(C7OEZh{#dvk%+Vf z!-iHjmACUbNIi5!Or6mk)^0o?axELFdPNb3_s|hBJyi>6eBaI7)VGM5=M+CAf_mtP zaK7LQxgNBIVY6~71VsahpdLCRMlJINx5H&&#E6p04w|VFK|ORtTv>5dysq5Fd|~Vs zIo3?|4%(VvB^95h=k}f9U8#m?-MlwW|JMJISdx98ReI|j8h~N@g_Kn+R zb(uR==bAL_P^$GJ=3HfHU!@2w!5&%d+S73PCR`eZ5-PEIseGYGZq;@}_H% z>)6I`M65ME#gk6{xCLltnE|fe(}FURzuZY{q#12 zd&bWxxC}NFp00mI^y;YTfL9G-8@Uj14-rcc!6mX>d(|B9svE9zO?VFA$5QbyI-}XU zas#+of4p~&b#Yd(&s+yz8{e~U7Gr%&LWx)9 zfb&!KRprX1I}R~NEKN~%q+G>YeRn-TJF+8U1|sqzLiU{`vJK*mYr;2i9$UrM?)_kq zEv?aHXqR}`Ur|t_OnnDyISZP$2oakRVMhd)$nxdHNicdrL!E2F(>noY#mxL2%v^C> z#Cp$>-UDZEvWC1}?O-iu0W)`qn1Bd>L~w~LFYUO_`c!k3&NX4y;Ol;|EAYLTp3($3 zKRbGdRz5Ivxw-TCOXXL+=dUt<9Z5m1wjyE*BIY1M>Lm&1jcdXkS^sUKS^b{S`p7in zT8Y~6jRGdZv3eyPtmQ2HLHHq}7b3Vsws-S&2t?*7qjOF8e7^Fm*xRt1x$V^i@nY-% z?_3+#TG^fVI9SVBz&lb9k%)*$L~x00ujSqqRzlEDoom9k02>~P5t{(u@x--3jKBw&z?=LC)tkuC~6<5==o!0no<&mojh!}+kr=R%@*#=2ud1$TOmh+=V zI@hFWsTOS)W1e&at!j+1G%9!e_?^vQQM~40twa+Gc=IqKMk3;Sl^E3qNo1{yGb+I1 zMrn1f37@D zMIP+sTtwIqaSjoZACky2jSbg?CuPsC^*NZ=1Ny`?hHjUm;sdvyf;uDOfiudP#*^fT zID&{UL~w~L`@h@=&Q+2eG|9Urr`mE{c_-HI=?0w9iY1!wyy-JjcUgAPRyoH`QK{5a z{bsG40#DZDEicA@$qY#+ngf^cG2oi;%gG*B#jT5Z&B|NL!KV>*y%b^y z8V9uJRdECn-iY85Rqiw1N<4o<=bCT?Z`~8~PE<38UrlfFF}RL#J{!jQm_BLLc(lW) z9d^PM$72E_f)Q~Q5t1L0$TE!$*Mz@a^RvADeWxqp=Fbq|{G9kvb!WRtBlLG;wu$s} z6U6&fgY=7V8oBz`Yl>~G&pT1(VK?9s&KuW++4I0F;?uWR#<&sANX|(q>|5)qW zhtJA;8fDmESw~VKSKg_vh$D!|jR?sPNjPs@6Z&pWPh)1t0ddGD3^+ec9;MppTBxFa z_)K%vThEup^(o~CW0tR+tB-wE?h9h~>re*?=Z$N^J;U)!;_R{rBiE(?So`){RjfR~6eY{wI;`{WEQi zmFt5EToax>pIFlfco`?24(|<|pBNW2J}0EsUHqr3HrfWhgOQJxVjBYy(FPGIh>(3J ziEM)y<(hEMF#fo>RpYU(PNy(P-oLYQ$pN3tV{6|zSj$ayv+58^jyegtzsqnU#>bZf)&gUKX4DK(z6*M#RRixm?~ zx|I>{(v5(MDW7-P(|E$s4$=D6O)Ga?%y~nIRm)UNOuuo1cv>nN=ec{4V&XC)(z%RK zc92B&I`xwT=ob@5PX94qDmJEVR`2K-w z!u{3P8KP>cFqk`Vx#0XvyitG0$_0}}^0!#U)vDL!#r4yhkgE}hD36G-h>(3Ji7XRu zToazGsh2GN%{O1X8Pg5;9+!KDWQ05h<1Qk$A>t(>xJ0%=dta^zf5&9|Ly@q!oB1xb zvQg{Qbnh&y4XdeVfWuBtqG<<+D-I%J5ix8_WwkFMiLBLa{9db6ziv9$gkLrK%ogx+hwu%a=0~ItN1~1e)!X` zMAK6--VTF^?}&JU2rl8gaZPv*ASy=a@4A7r({{n1m$|i46S1Ia=l(-vK?Ik`Hs}eP zYr5q>AYVFYEbs1`@#4FZVxiij{oaEUC>otFXT4vJE<_W!-4!5Yk8 zE$nPQ?crkM@qPNSw36+P|=7H=9MG4u%rzN&ndk4z*YU>g4(`sRQq$+7}i7Y#dZB|l;Ak_wGl3)Gq z6WYekaH;Sv#TD_xyhD@9 zu4o>}TI3lLO&)`%MGCDHB@odR5nLkMTUDR|WGg>U*+H7{2IVf9;pBRM^UQ=BDl$+s zkZq8)oCVBAA>s%kI*q%L$R)CT{NOh0O~C(V?)q)SjL@Mb@G;+uzoIC`581{D8e#o?0jX7lG8mh~N@gerK$)@_m}6xFSvX^;z%@vAbm<2uLiU+8}>))|O)LET4!ehRbkD&3d#=Bq-h_kIKhVd zt<1%FhpTx`Sx0FHS<6|_@UXKJL?NQI`*1Y}i67a=-WgX?16Qi7ITn7R==SIbv#v! zhzLaVLIjt{GK~!%O}yD?#7&i-vu^EI97^+{MJRS3JVfQmZh3!jfM_PG)TvYReG~qXK z8#BVq{AJ8KZ8ejRfhOC=5OEw4gAlpeG6-MhL9=CkHwPlhBH|VzxPYZV4g3ms!?*nNRdP z@l7n>+151dg9Mj+i1LBlv!g8$a#)QlX~LXki=jrzwcEttfsWZ)X%l7DWDiGvxeU%< zc48YH5#fo5L5ScI&M0RZpK%uc7VRouvkfcRS#d>KN6s5(0lyWE`YnziA`}r^BHIWr z^}#Gr{*mH}G-1Bv(Mz%WNjH2;cHbuT5T@0kb@LFR;%Bpa7--nb@w z$CBk^qSy8;a4_Ld29o%ZwJ55|9#XW!r8X&z(KVwJgm>zo{E8&9Jz`X%NfX|9l39bi z75Ceg4d|>!ik<;wEwYxg@CVVp!hYLIL~w~L(^I1y57LC+#8q;IMX6hx8QyrQ^@HY} ztVN!|JqFK4g}K0oBdyIFwW}IjBJH4=Dtkzp@Ev5pdD}nbJk2bv#a|JQ5Sd4Afo)$F zS?)$^InTSDwi7fAG7Hy3l6 zLv(CvUA&r&z6&S%iPG7xiR$UQ0ha`f-2?&8D(l|)g@Y#i=I3a6$T^{j(dAtw2T$ZP zI1~2p^dUcMa-VZ($6iEy7~jNbj|eW2b}VR8#G31UMcF}f9-q}BGr;wHP0gWCM+?p_ z_r%p>7l2dhMON+IGG2}Qod)6>wKgxDX)m~BOSxIF#V?mL9r z&fX3Yj(ei)?b&h1AoOx9wlSpoR#9^PeG%5vU)ezt&KqYM&pOwy0M8EZve}@zgD1*1 z$Xd<WY{P3{)vk^_i0T#7;{k6soL8d9e&)#`H^kV+?MFHgBM%+ zI6yn>d0b(iOMP=|-A#f^IB#4NX6WDS6~iWc5+31rlNsuznJRliGgxX0{5cqE|9cAC zNY$f;xO>wQDRV=W9VFq5a!nZFLMlM>3rlSe{`tcd%~WnJX94F2BDx~tB_g;)mZyC@ zXI8&-L2*TzG_CSj4;b^ko*8|)hT8SfyyKq1JqEvI%{f+t5AS4pcYSPdiEM*rsrxC9?eCv9GAtZI+rJ zqzP{xE|&xDRNX8>%YYgW%J0ZFs1`@#&Jq##5zz|~Tq4Wgo^BSks?1PrkS6qYzZ`J2 zOH1>^4^LmImwbuu^t%^c1gqm0S(>I*!ryUsJ0L>6dz)XHzqWIUY=gXyYr@r_-81py zpLQ^Q+C0Jek!8wwNwoj;Oos2frN~t!MEpiXBqF#(mWffW2{Xdi%E1ZOUc#JLNzFle zewBVjo*~iXG5CcWBAz4SA|kj%mPc&fYI?sttNe;I;q&0e{bGU@W}eb~lwVOsQ1*nL z?j-u)x3yNGFdgmKh=_j>kvWx*!6mYsFJ-+oXKQOU9;6B1jBfZSt{lT}Gv;nmToFIg z4$2`)^#0b##^!3c+aPNtnpnVlAQ3SW z5ifteO5_q*9uU023Y|GXaYdT&9ZQpRFucAmw99i%JwXybk}Jx1N%XeloMz7^`;n`i zhzLbQZA5U1EEA)gX^e^8oMA)eCXl>og=&K`g0dD_E78OP#zaKyM#OnUaEUA*ODqmw zT8&j)ktR(mAL|MqkJU3zO^H!sP8mVT6@}sBNSJp z37>>(ehL<2-{i7XSNoN3(e=DH!O z-s%bGHxE_WLCOfqT4b$66ASn?2O?@9VkaWFM3(b+_JZDByD6?n6TZQEl>=sd#l6t> z(kdoWMo`*8)=D(7fIDPFgdpM&BDh4B_u&4jf73~dE7FAQp7em|;~Ak*-|VUl;z!y+ zIYha_{TMpeEVJ|^a+M7cc0{y91eeG*h*8cop35k>Q_O4J7do#pnW4yT#+VxK5w1|8a?+j54KsY{E9MOvL|G%L=y{`bw)&O zMC?Qam&o$g$S7;lf%%Fn(uCQ;5hWoiAz7Rn;h0I4c2MM$Xo{$~3rEBSL>xf`mvG)V z)0*~d`9kqAtQUN(H&by%89`O+Ki;G!Vgc7$M7%|WTm6}eE0V}sL0i9xgV{?cu1FKU zeXaaMluvA9b{jlO&2!2KO0LLSi6$0se}#w|h&V84l;VmcvR2DobFH^U)~Ys06TX${ zZHk#M!py1(Mb!F1YldutvQZKpnrV#{3#HMo<{@GlBEBGkOJtc=8HpxMn)dJ1DZ=$t zPnd6PQEgC0P;y1qN;I*6V~&U{h?s#0E|KL*AC`(Ui_@wxCry|mJHCBe`xaePc98EA zcs6Q7v47!G^DbzE{JVT0u+pB+W4FtEBA4*}1J{I4saksIW2E&)U9;6BPC2w|$oL@rCjd!{zu4oJ-qm+%3=)|=v ztrFecja!~K9f;Ih^k_!#hv*X#9b!KXrVy=a!Rm`{vIX$N7&(!s{p zCv9B9$A)XdZ`@lJ1$|d)^Xj}D$_~m1%AOFTvWLVpp3*}^O+?&91eeHpzN7g7YxvD% zH6El1f8#J`0}=SJq1kkEE|ZUeEYs7k)I?9k_$4bMsv}|sBDh4BY1FtT%=<)~5$-u$ z;ln3ihfFHZc=4xVylwiL3$(wR8BPx^0$jp*<4mKECwoGiXRDl%XEdDyf+FPrUYJ)UkKJj!T@avlcHedcT zYx#^KYdH&;N$p(^PDOga={vOzF4;8VDKuVG)$otVui79@_&bVmHR37;4BswKdGn~o zXH-I^V=#SiPP9S(ExQjpzW05tq9~Va!8XoSooLBAToXpP`R$-^;h#p+EuGbP&|H&T z5u==Gyq~&6N4PNbjS<(OkKhtncF)|`y0&72vV$~f+L@(Y;6%r-#;*}C)p*bt$Tnz3 zT|%@i(^Sj#x2KM8M!R%{HwC{LZb312F5zRtM-#sptu@Vem752wUENqk28wF37BR}1 z#uM?C`a{n=1;mKq%MC86d@>n|^h{+uEqUHS6TW>7>kB0!O%Zu2Z2}(yK5JhczY5vb zXVwdLFN?X1Xr}?t)oYdTaQbZL5Za3DZJ0ke3m39!LoN0V-Fuwx? z{M=)tZ=I~hgT_GC+FjA#(yGPlTodk)z1qXlpc}^PscZjQaVQR+9r6^`XP9JNujzr~ zQ8=J0O#bl1IMcPM!6kfb_-Nv7q5h*FOZxI+PtYcZ)qqF4(8L7jF!ei(?bIE)`cmzH zn2=Bh8APZU=a)ws2s1j1VZQ;aqrpD3<~A6aYY z)~eQ==Lw1{(uB87w{8KccO)B6LT)Rrh#zS!WpM`hK7`i&$6M(RWI?Xlo^Av2ai@)X zKBmDXoHvOkO*qeeJ3#(RZic9tT6r90HhHAxJ;dK7+us2`mCbByxt$8QM2^Say}7MY zr7SfENfVwnT-zAp>*p|sey=TfHi~ENY-7(tzBS{msxTMFW9h|8knLPmGc-*NJC{uQ z_afxDJ>HsF=?-vB^5*(h@Ow>n@#1?Lhm0^EO+NlOg3sH)vh7oC^JZsImQ$Wm@cNO<-;9dg&N<|FWgC=RipBUi zdfWtSN~#iQc`($48%Y^VE!P&oC7cD$8?Lp!B_L;!g`(Ew$__DObkJKk`Dr4w96ik; z@2hEId21+_YM|{yoh%ALIV9OD>N~ed(|&sSgKL{bw(MUsDa*-PS*yX;%O;dGl;xxe zZz(wH0j29_FeC5hFr{AdS3YWdH1Te#fgR!Nrq9M}(ZJvm?#Emceq&;65r|`VSEVrZ-vaEVvd$1v_jX2WH2q-ujS;Td|5 za!}xQRrBHO>S~^oXYkdMuc9~yhqiz*W8KUZ)mHm*3HKP;L(-&av309KlbW7zqhwFD z))GIm7G>3zcYXw$%et8FA{HQ51uhkV$`{eM=3Ee5!g=FNYgz}_R*Xprz+g2i1=_XZ&SyPHYNZ(n4OE_;5O`7m~HE&PY;ckix8~`1#wBDh4Bjb+oV`^QG8Hb@iB^NY2i@Ul;$#?afU4dO?(L0L7)$f9D?%+OiODucFPr*A!PI;k-#SX~N&4TjvLJbLNAd$t7%3LisjXCTlqh_zhOp#_({N z2lV@%-Nq%doO;b^Tc@l+$_~r|9uZgsl*ZAYRqzP}7OH&_wQ|^izDNhww#E;yUP@YomK9-8L=E1Dbb_}=iqsNXyWc{dUk28?4ajNS&OXYENJ+1X>B3=>~G`BmJr1i@xz}#C7Lwh zeKI?mLci5Z#oKgFe`RYaa!M8`qT+3#dzwO*EXzf{`l(giB?)JgGp%V!8M{OLiWI|t zcMlaAC>qGVQxrYs?y8&Z`dJSObe8kHQg?7pmtu_a`sBkUvb?xZKdWYeFkPZa6P~PT zSO?~x&j~Y=W;jGq?(Jjk8T8)Hb4|DL^1WKO!FAyHwES>yRztxhyS-iY8*9d!6TRo_ zJg(q5%X)2KjLjLAkMmQJfueyNO^Tv!x~o3XIgNR~{U~hX#(*}^s-ZJ@6>lK8M3(R5 zeqp2y8K6rvY0|W#ZGvEO@*QKRkLO?BPS$c3H0^QgAV{fy*T}o0gy0fcP8!$CDt~jJ z;)>=Co)G${8GQ75C@vm9><~q{w@XI)&RuJcEU*gg2tq`kiVwx|BZn1NB;mYqrZw&D zyf!fXaYiVUGmVN26b-nwoCSQ-u%r$2yp<6OWOcG}$z*WV>+N}H#Qz(pxFSt>GhWWl z5DL>Zb#gI&pGHRloOA1wT)tf!~V9eRrT<4nb+l*cT(BjMkqxGSt4%sLk zKR65cTzfeHUS+&vY`WD^aEWAe`IXLA#$l6m9#=GN`_gvsy3B0RJk{S(l%j-Wq3PD6 z<|i-tYqTp6(W2aJ5wE>aT#|EmVG`)U(V0zQt*+=JjE&P6PT>yMM_1d^tE}cWBh+E59!21AR2EpiBw~Qr8p31L? zpP3b0^+LzmSpMO&bZH0W{c!i15DZJxJT|&kh;i6i@=Vblj6^GX^s+j+*F~=8BnQLc zACHU=UDw;WME0b>o<3HAv(1(7Qr-`ropZHu^o@{1F)p`IntHo~Ca8SEh&<2PC8PXY_0*XfTl?J?tMQ}y%SLx^?;ZyKmWB2C*`VOzGR@*{F^)Dieo^@vqt54$;SY_na&((WjP7M8meErBZ z03L;wH_nth_hb5lU-)Wq`IfW6C46kSCVbki*b^QkFE;$IuK6n)MT~N$@h*$2T_9lbS!3GF z`GQL#FdC#(scCs%T&2c?@>+PiaZFd3p5=-0v~3fEj{(m{WqO)Hul}N&72#PF$74mc zK$z3?vEjTvzriJZY`7-0qu(i!6tznvR%#ENAD;K&nGpOQr*|hXD$NtVkv9aFaNf8k z{0gEtr+_YdH&eZV3?!Jw_QV5Wyw?AXj&f6tnzGY*bv4Cj4C) zw-)fd?p>o&^dW~VC(nNDaY?JU%N1xP=FEm%wbeSqrujFG*J)-NT*7(dOk+;wMgSZs z;$*nad#%<%%GOCcs3*LK7)x#jKtus2W7XW(f=i@L*PCRvl51?%<#>=L{QkUE3pgs= zOqV8&?L3Ra^H;XMKjHk29@c(mnd=)7-UePZ%4FJiOiSbvpYlIo{G|}hbErUa5i;pHBf4uwiL30?G93#%(`Y5=BpMjM7T{;_y_aSfS0^6^rwatnC zt+?VDFS3@iplQR`cY!Hm(%N3F{H?~E_>t>iqv7w(4Kp?=u1FKM5f2b{IJ?=o`X<5o z;aQyb8(j4nJHxDjc-jM3&bhT9bEov?`KzYj63!dfgfX#D7cd%4vGv^h#}1xhp`P#_ zVx9pJ-8)UO71;Azt>@HtSu3RYO><*%jIx6?VP@NE360*knrq719J0=Q)c9!PJU`JD z(%$)K3@>rl&L!NBx##1}s^u5HS5(j_kEj$^JB)ZYS41d zBQe9(1-PVRoU7jCh^HCVY=X`;;q%}wPw*mv<0c zBKN-QXXG~@H6N?(_y-1B;vI_wDrMHQQQ;HJaX3;_lq`{&K-z$Y+2PC zM*EEsbH6MRT=Fc%U9Y!qfq5}7T<3EWSG6p?Vd5f7eE0jMo>GZjUW=nK*S9?g9&`#6 zN5`HMTq4WGbIvr6weG7sj$mj6{=UJylSapaIc$8U@)`Ujz(em}wSlE!2*q3eJBNbn zzRO0(5>tG+WW7f|J@IxOYh1aCz%}8j78DAXdd?IrV^;~z5BEgL$o6V$&367Hk*mBp zdc&aVyTpr=RTNhw;kI@a!LvAscny1PU+vSCUy(1# zT0=svoAI}2DZipQkGa14eWAz91S5CP`fAqFOyx89EZPzIqn35@Vl%Wuf7loDMJ5;> z2G+B4i7a>3>R5TFx7GQa$Me*EyF;$A7e&I&Dh?5j&tS=d=guwWm44%~jTsZWLzjW) zh3{~i;)*1kQO>k{RtteG@v}wAR2%-v6p@c{kHKFb>K_6R8_X51>((g0B41KIHf54| z@@ts#E1L6oA|<&Wj9R_d$av$R%BoQ&ja$oE(6nub`$5SidkwwMF&{3GW#?P9t;n@q z6<4GQ<5l}0SfBDl6sY~o#`%%afO2ngG@GB;W0rjpiCk5@+!MN&IVc*Zv`}MC63!^s zg!!x2VX$X;lDPd(cEuHC(s+d9EMVsDT^Ov|mn7QG&Gu&w{>P83_4?Xa^Z4#y#T9AN zv;5ZIU0#6v;AK%UQrTKZuAJyvbPD;HQmCWZAY@x89lE6<4GQ-Wi<{>{oA{=bZ2q>(&7>QO*f(*myb!g6kC)ZqFtvu81FLEk#br0!35} zQ>lZXz>^{(bJRq|6-hXwoN3Gsj_Uy)Uv7!I@%tSzMci7>0>0b+rza$Ixh#(S`_9fK z%?i8gjh{|2tDm&#Jm-YJ=jGWCx<+g>p3F$&kj0U6kgVk_;7&iZADoTcVyrmjqWp^Z zk+ob_RkoUBiqLsJ2=j0;eW85s1mmBt6C8GZJd0zyfap-&>Za90zd9A&7phE8FbXY; zv~!7UgH{>YL(0kFZ_%{~fd`wfi`|gH&NFG;TFwI6kv$aNXTBmPH7#rBlJ|aj^#RML znQdzp)ww40#5@1)*gh+xI#tZ~2|SB4>{Nbz{?q&hj`t4yelT=crS8r>;^aAGF5&wJ zt_gpwU_>~KYP7=WbFPd-7Kby+na1Co{1^@+(l0e)CRR}6L1Q3e`^9Tzt(_w$={z5V zXCPPhf+K}a8WWGFvGFnBS)BN+1@uOvZPtZMJ~$p-Yj5Y*^Z!h=?}#jg zZFs-v2S0!87LQJ6v2zI@8?Fh*qep)@TXmta!KmqwDdLQBrt$m1d4u7`j1I=_I<3^c zgvLP5^OaSLSS8JAI?p+2n$@#6ys+7gphGSO9|N8#S~JH(U)IsrI$)P)Aj7_eLDV+W zh^|)1;1WJIToazy+8F?4JN6S9W?mPZAD)xRv^%|?=3a`u1*mWJ16x2;>nWnRr!#N~ z=Z$N^-0R9A@GLsJk!9-ezp_!3f#fV;UNm+HY|oO-*u7!6iiyOJthK#dPHWa zVb-}-2y}2-Wn6!;z##+4pHleK3*PJeAQ;*?pR$LK3vX=jXbXMW;Im)jnuZ3S!l?s8@pKloc zyK*M-XF#5fDqA9}zPx-b%Wd{Dv}0yme;A&5k#V4|m*5iqY{)g?nIh+*&}Y*E-#ZOv zs&$Z_WqIz6_Yj{A_6>pGpJ(lRx^%X(gZeIO(bKP72T2otQ+>!EP98jI6upovc;ETc z7JmvuuJGO6s?|@7i;LC?F5xzDO_-TzHX4ehjj`XTm)qd8hgZe(eifhG1)NLl7G-9{3+@@*V-6N5rPu4W z+iYJu2FD}s#J=DZ6CoD8ohi5^!XMA7iz(U8|3YrmSo?JqB(*|qx{ z_AqTGt6g|+v;(@2h7v7f?Y=qP1eeIN^GEz$%g_CEM^9{R3kR=HU+vpGH# zm@NA~8m^~U_GSe?+qs1E#+kY7I)9=q^6FZ|WFOP{lg@u{i- zm&mgif&YC$&NbmT?sG>&>sgiT{;3N8<%u-AI1BhZh={8DD%t%I!6mX>Y_(?f-rHYs zMLvxuIerX*utjYQkEoi0&m!)Lr)?hkA@|Id*CaUyTfZ3y!J{)8UIB9jm+&`OToXP! zzv}}VPfs?QH=HK8XK;^cxV5nU*zc)%FnA5N;nF<}YE>C!pOWUR;F5V~E8;WSGjqn4 zD!?`2xusd7p)#^`{u;b}n+@inGf#;mQ6Hqv4us zyl;k^f4Jfq7P6MJfPRIDOSj{F6R!N>iujSWLI%AugZ=(+MVjz_pIn3B*rkv5+HDp% ztZLjdxX0jW^^ODJC+;xTg+&`&!sjEO!I%SBF&t`d$SdMj+8nZKa=%0QJ=sH#h!f@| zy%WZgOYy_OCx3p?Ia3Wa<|L7|4m>JoniT} z7DwYZ4G)IFq~jlK9<#ftHb}3mwWH}F^PJIMwL!TW+*v*v097V$Fv6<4`Ep<4yYOqD z%jrWWX0tT)7qdScO18jXe5tlEkxRIbaZUIg%a>s=rcbc&Df!UG`H^MH;>jN7^E_i7 zzSR}E%JO3v9592#}p2o8whn%|ZSINuD9mByx!?HwnyVwfAVIb4{AIWc@H$7THHUe0NcCMf^x>DT^o3-xpjk zSDL}t#<`eb@GgHJ5p(g9;)*1)7BR}1#=Xy%;V`vo0TEoa(qGvq@(hV4kHNE1X-7cJ zvV!8SRbFvL5?M<-XPE;$+x_v~|MFURKXvp-`2D?wG1H~H%G^=5j$13y!~#Bftr!U* z2U{4)QzrOui7a<%me0~}wNzY@COq%cWH_XH)kSRneqV7#{K&XVSv-ke-TkUr^j-*Z zHDuFpDB8G{IPmhr|J8No@j6xCA3sv2q@>9l$<$ydr0YJ1B8oE4WWLB;neM&0H_hoA zQfW|>dCV-``o|Y*cWkhP731Qvpvi;8AvT&se$4xxqQiqDMVA z+moe@It5x;-VgNbOS9a|Mx=SY+$llk&a!o?mDN_gO$E%aN@uwb&r0*2div?$9A?p@ zddAB8f5kfmT3IBJFmKFsZ{JrvHh)iv;QlauR4dEksrSRXzL8&Q>)dB%txWgQtuBdUqtN1G>xcO<>vCD_|ZNk|o)=j-l1?;9uyj7*3Uzt8yTN^pm+eTF6UM0&t`OD_?KN?jE`juJqDASFV#+Uca z$GHQlKN@>>_xhA<6xWtjaGct2KIk?Y*fCbNeOHey-L_P1`p}j=az_UjB*|pn4?8Yy z%5-~w<$4X8%?z}%Op)G$R$Ep9Yv*kk+pDQ1Z~*SMCg<4jS{$m!pDrU_dq2ZIJcL70y#}{%T&Io0|Gv*NYSURj=@L{gOMr3i643 z4vx!_uMxE(LMHXp{qAQ|(mnUV z$uaI3yk6#YG14IS^!xbu-%iDskn*}^Tz zk+44BpXEOD#syx7hyG62F~e5ztSBpuuOKeUcAr^$D!y~D6O2CA26~jO`#BQwqVG&{ zi>}%cUyysN5a$anq%Fgb6-pEU+P(p?>m0a zlHb3?TY85lxGz2SSA5Wa+N8Xh$*V1ng#GlF40q3eW1hDmuYJl|jpOp#2fsLbMz|HH zKjGDA_h^hQyn;+!4}MsrpWC|9Q(pDIx5v1)d=z`*>w%`-T<_wp@ygwbxoqKn#gVXs zK=->q)m;^9c4r}%^R1ly;B2Jhoc~cT_q*H&Vn3`q7-I`(9XS%#&Kt+O)hFi0J}tB} zpGO=%ioNlEN#F7AtIZ#YJz92sK3jNP;Ye7emc8HY==6*&UzC}W7d_hWvZmK&OqPcl z{MY5y#P{bddb?L%u|8J3e^=tKC5x67~w)2AHyjiNHdvTd7+%5-)q|}3t;yU3yfOjXj&rhoxJ6!(Sl(B^S64wd)Q`a8n zj!Azkw!YY!I9vGIQ^%6o`yX=4T$GhpV_{*B=M0>)iu)$*IZuJWebmR zspn{OO^#c({`2wSXDX)TMfoT`w@w>!-P(WO{jywGNIqS^BEb76zEXx5V&e5-Lo#-59 zQ4h;HYuSFU5+3@m{;@^N{0nEZ4?Ql|-O}^6sOA<+J?tng+pIR>q5tZiTDTs3g%(MV z%XQyhuz$UIu)3_9MM`++zxt==uw0Lpxiu}49+&HGzUBL<9=zJ-EQMvl5+3@m{+)Xc zi_7)X<8s}V&lQQ#th2)obD$Ij294)HRD9#pg?&qy8&7Zlm0O=@W*RY@$b*g|9ue=5IjVBfsCB zzy8I_DeAJK8Y$TxTJux)#G?DdEP538e5+q#EYaHNpB`lvEpwghYVq7)Z;pHV;(=*d zV@t*LD6{aj>;K!i6Xz&+uw2x4`5fk*>hbC9ectJtI?HNMz?t^_>*y_>ab>h@JRa=a z0*@j$cb1{>U<>okI1;jh=PmH&fC7H^Io$A*h&w-|fNR-!GkC?M&;oA>JbJ@}EzG}W zavIKY$8zt7kOI!M?=y&NTp2CD8F9mF!{b|cOa?ccEzCRPNC5@hdpD$jGwoYdFs=;i zhMhuAzv>A*o&-0XEvyem!h4pNF7=)Q1^kNNQ@P=+!e2O_@n&#UrI&h-!=olV*uwm4 z)(y{{%dha3fC8R>4mVs?Fs=;i7Ldk0C5^uf54NyAsod~#eRg?D0q=4SH(XUPt_Ey#ddK?@DB#n7PUVKP3V-5!#^XW1g2!v{P|`SCn4QSFVSmxl zZ+Wdi0Uv%2H~ci>8drvO!&eaSxEmgw;lUQxCzTssYtAlDDd3~e;fDW)a~Si5b;GW} zp~oV4u!Z$W<%U;Xc+i^!3V0z!C4?m66WZ4YCX7G#6mV9QmDaNHc<_EZJQ~BJ_op{;Bv=AdNo;(l}d~f6bAQ z1IXCt?f9&$+^`~*8-7IFBjn0(+aO;uXrHH~@h0$K3%5ZkHyjjj&nV!mD7S%@jW>fQ zitv~TZun?$!`Z_8YmS6{4eom~o(&54^`L-rZCQoOr{{S|Zg`tBb<+2OG=2c2akeo3 znj;~T+HbFS9w^|ifCA36@BiZ3jVr^t;Z0e1{Qmdv-b8q?h4tY`$f_0E>un1u;9Of) zLCZ;+$Dht#?*n+$1UH;5%qiwbj#HsTTDnodxwfoAp)p%LK5pM`Bcs8vNNaM#r8fOcS zgDH`mw10MZ(?SY3Go4RBE2HSJZlHj}qX9gcfE&&h)`uhE4Y~zic)dUYFI&Ee$9ECm zUEIg;{#E{;-mM^wpKS1VoGsj!I1)IDRjYaLfdc;TIo$AnP!Hqqg4*L1jkw`&T~p0l z0FS@m!4~FUr*gxOmFweO4GQ>{qN&_){q->>E1%DCI#uZ76$we>Y~i@6-0VTGOdpqCa>z?pxo{mS^Y+{f@H2Ruf=VuAiDiofI) zz+*2w*uv{&*3EHtzqr^_ZulkVaKm-=V(VqrEg+41E_Ex7Q2c|(U1bJWiR4}ckSQZ>jjS!@L&tyQ5*@Y)JLB4oQL0!4FLt5TTs2Hh7@o< zAD*AX<2!J}?@MsQqbuRK90||7{yys|1^oEm(uBv4e4N9WKe9AUlHBlCa|_8+AdP2$ zG|m#nf&yNtP>o<@u<=8+GIouY zlhlQUHXY_w;^h$sNekj2Wk490}2m8g#l876A@$rq`$%Vb# zj}zSR$ijCN>xNZol{wy(pnx|81)O{PR>YkhQo!|m*2i=&i#c8;cr=3tTevTABz#2I zyOg{aQoyx_Hh!oI#;#%A9Onyod<2i3AdRzy_2Ec(jFm?^=hA%+jkpqvD@L&t;!;u_kOvWCsJ}BVVf&$L9Wqm*r zkf{+jd^kKBh1_tqsJCS{Ig;aK{PT_X3n<{LK>^nqTAor>=onJKSvSlw;PD$gUW5l* zSRamrS>K55-WgE9yMqF*HMBgXs$lFI)-527dpkqYI9pgBj)ePsz*pWnP{8}=S5L{- zvI;t481n~D+~Kh*B#pC$Gk2^T?x+*rdP_h7e;gEWt)b;9RfUBiyM}c`E*u_%)=omiKQ*ycoFQN&)BEvI<(Z zF&Mi*{d&Y}43CEJU<;4690~c|$G-D^1qD0~3b@`ymZww|>Vy<<)(y|2;PD$gHo=1} ztPe+mx(y1;tDt~?18%skCM-`G$2p8E!@6PC2aoyiSPKufus$3qpn!`}!1XAbbE>!f zW@y=XGkD@&vy?0aH~cG*#@V9Ymf7S;j??bj?>z?;@G+o(YYi<=siSsYNC9Wv9H#+1 zio;_dJlMkea3r)xR>7+DkOI!X`aByrczGL1a>GFyUty$iws2OBBVoU#-_MtN&$g0T zpn$82mZ#MAFs=-@4c4LA~3EC()< z+Ms|x2MRbV%1Spad5Dv8OW?s4)`uhEJ(+kBxegTYFF*n3+Oi5-PLfGM8W$yve-00}sJCS{ITGe@ ztJ34yAqAXk%PMTcIgBlgz3$(;GgcuajkAR_cN_^{fR-*I7lH!*H7MYmRr3+o7`dz) z_VR|uK9I)0fd^YyAC82b3P1SUn+FPb2T;JZ_gS9u@QZ0;6!6wJx0fV0ym6re-m@T$ z&je|lEvk=YHaQYlzwO4ws)rPCt}UzZ9_nQ5Tx6Z$Q9C4!r&uVn$&v6i;EVryn?L~{ z1qwK4)$~`?DB!Fcz9oZ4TX>9t2U}Pljs&*sbH92+V*TYXDBxUMRzZ7@tqrjs@}VQ% z+MoJL45V?k@EVXK;rsK=7sUF40zMoRaL!Y*3OqjIP1%c2G*Qy{CXmM2k}?jGZg}^j zlq2mx0iO>FIIrkbD_aAyZrIBL9yLK4R}Z$ZJ{$?p?uHfFX^*8uB7oxK^kWZUlm6R zDBxZtP{5mj0?zk#zuYBa6!6_u7f6yDzIxdTuRKWOqd*#G3-@-8g#6X}b>t6Fz`KJ2 z&ONatuH7gx7owb`_H2YlA&|zqz=JJ(&vPWl0R>!Ef&zXR6mV8|@eR+4QNUl%eO{8> z@S7gLP`(IB<80yH&XJJIxMhV`6BO_vpn!92S%r&HkK_)R&y;Q8DQUb6NaJkb-p-Mb z<-DV=90LWsIVj-V6ICnY%CK(u(gGge!NY|ITUZ~Cggo3;B}700e+d+Dt}Uyey(dXN z*|zvyuQ^EL)j=9(i}ocO4LB0k27?-VUxNbvD=6SxTUG(@j!K`18(#Y8+unm9jaLF` zoGpCMb0j=B7+hDHg9835DBxN{ySG&ZW2LZej&n6UM#JL(JlMkea3st!F3v;=7Cc81^a3EiaQm8h;t2akg+@;z-zI>(`QU3n<`S6Ws79bEhgC4k_ST&Z%bH zaDm4#c#KSN!y}8%^eyYCWy?ke6ma<|q=0i4N8|n(Qo#9q0cl(gg`{z|a9oZQP{2K< zfH!OR-#GUS?lFC<%#K><5cVVtLNl&b)QIZ!=u`=K3eV- zal>1{<0QD@k0iL^kwvfFvW{9d-Ee<=afAE}3ixhNz_mBn`c-?3u^_mQ;j3SG?1IO; z@L&t~C60tu>Y{hN$)JE20R>!ZXgNgH%D6IGHXaYMgYbA59v_1=&KC9N6{JPNSMdu^ zcwd78{$YX}9@Uoh(XtnD!w16SD|l>AaKj@DXVq9YjP34a@-isk&czLaUuVl9YTUsg z1zgM4$Iuhu@iaV6CAi^{h5M4;^A^c*il6zyQwsPoP{6gemP1q(j4Q*sAp9_!C@VG0%4Ua6GRb$;SBkOytnZih$b1UEdga8`|V3%KE) zQNXo^mP6FI?%FZUJdrj5N*`)`ufux9Jbd%UV#tJAneuwPk&2Qk3=KNZ56#?FG^d6!2A` zfNKpcho~wTMTd36J6`Z;0gw0L!4}qsBSEW)HDoC$;JZKp=i0IgJO<<2C3w6FkL~ba z3y-xN32(Q({(^TD6!4OufNKpchp7788&beoH^=!29>?Kv7Nl{uus$3Kd7qn3dksMW zuLN$muIMd?s4BD%Dd4P|;|M%%ghv;6u!Z&ENT6U06Hh7N|9}FnN7*lcdfRV?mW|aK zkj6bDjk86)E$hgU0t&cS3KZ~Z32u0ljZzhEJf5I{vu*)t+$#=`=M&uUNKw{D$9c;} z;>+Sq{Z{9P6mb64=h?vGYA;KY8(wqA$~qlF(l}c<Z#>>U7L+~gAkEP&- zvqjs$vX0y~pkVBL&szx!cp*^0RZ+_!Y8%)*n%f4WC_I*h9&F(@;7Irq;ODNAQLU)^ z4JhEOC@Xzz!8}QF!zZR!lp`RGpO|~T%NEY6aU?K!+Fv8hKmp$m3b?9hIYeFQ83kMw zv9`h21MpC8_?Pft3%3DB!j31GxAYo<0{$ORz*$jNTFbVMR*F(fuP;3Aga=#H+g9Ej z3Gb?XQA~P-6mYIBtHA4M5Os1s_O1eH{11@E*~05(j)WaBx7Ly+pn&Iq0?w;nUKO)$ z36GWV$b|=6SRamroe-McDXl>PUjYg@-_PLV$f1w|4z7?~8F9mF*J&;9fi%7Yq;a;W zH~-?;h>Bme7rV%1pn#wEZN-#3YWHtHiLq;rJbXx!-0=9bU1T#z<0U~FXN$HC|KcR? z+O;>`D?2~||GwbuxE^KWVE-9mj`K_E$VF}Cr84Y{li+w zCQ!gVP{8?)!ncpoIi!HIZg>W{^G@ji()cQn#@WJ3b0oZ9a=@*>Kcs-CjDt9bQNZK% zw@Z>6et1>mdN+bJj{8^G!gno4LJqll5Ai_({|FRtt)bm(+8)NP;kH39nbB2l1Zn(6 zkjB}f-qr>j38PQ%d*wG!z{`OGt`<|2mHq_hGp-Oacdz!AT_BAY&O8!li+bD0$&o6jmFq(aIJZqe8qYVD?CO9fC63`6mV9Ql|H&- zpCq~AAdQQX#y{R&B#$jTGH@ikBRr$KbOi;x1SsHq*Q(OS$KkfYynR~_SqRej9FWG@ z!fn8jFk9+#ujGOP{sk!DtSBq};n-g!$qff-TwV-G<7`oH8#y^rKmqqAZT4fsKmq64 zvI_U*=SkOy8xGRATmsVgA&|z|!s8=H3Mk-mOGp9N8d}~^RWJq*>lTp4Wqe2)XAA4Y zk?>~b&d#zM6!7|>fOBnGg;7loN|GC1q+>g|0HpB(kjB}f-j<=|NC5?0%HL4RTMP=g z&R#7S`YGyRd>pP*KpK}SAdR~qjkATXog-oQq|fTh6`+8>1PVB3qaJzrGcgKyTJA1M za>Gl`Yb_f=8XpYOI9oV7$dNFXJla7@&l?y!1a3IzLb(OGWx@H`(@}l_1^hiw!1a19 zv#B*N8&beog@80JFNCCVws37Z5_YX~o6C2gfS$C_XYLXlNOx+eT7NqfX zkjB}ft!BAUj)XN%lj>3w-0U5G1I?YVK2o!L=UdvNz zo$d@N;H&~N^sjf67EXdR&K9mMM?x>TzlRiC`j_`3DB#@txL0!fBY*XNd8q-?_*9U_ z*~0D2kua0FyOCso0)8bZ;5u4bo)VlN=@(MKLA#MBBW^fI<6d4!8fS}oTV|6Z1r%^u z2nzT_P{7q-w~B$8A#)WpJ=4q@aRf7E=LL|;F1Lj_`{%pb31eU zFQ(sJtnSL+AeBSXI9vGll_O!F)IC+DCMe+Ng95H+x7xA_pxwyw>x~-@(zqyTd@o4j zY*BB^Y;q(Jj*51WhHDzcz5@kZdxPaEwZ}XZQoy;7VT3EuK?;L3z73>tws2qKNO%(0 zzmGVefcFOlTx)1~N}XRB4T$Gj0cl*aK^i{>(l}ex+h%7R3DkwhZjl+FfDZu$oNLP} zfJQ5gB5wG~%D2jRkj6WJG|m?Fw#+6+!fK+zt#Ul1fUCvwZJ+_kwo(ZSIQKE^Xnk`n z@jx2i3(`1S)Z2O`M*^Aj`o2;O6!5m7fNKpcPpK*xzm|2w%(6xwQPTJTkjB}<`fwyX z?JJZnT|fap4hp!Q-D=A!fCeRnMjAK#@il3(7o_nSAdRy{y)CoJk+26{-d!>j6!4y) zfUCvwZK~C4AqAXubDY;k-X(8?G+rL0aki+pDb114=J~y)6DZ)XfdZ~Iv^=G%VEkIv z4Y_cywV90^}kz1UhN zg983MDBxN{%TuZfM(btW@J?#K+od^3jb8`SI9pgBj)YyHHry?( zLJBz7mQ~;}81Ip-zFVq*G=2)CaklVS%aJf=s6S9H0|opkP{8%7Z2Z_(u7qz49xWU5 zDIkr@J0Oh@0BM{p>dhmyMFI))!P{jIDBveS0q5}p#3BEikOGb!-~AC0H(XlXE>D9r zJ_V$4w(uRrk+3!x(^+bQ0{&OEmchti;|CZ#{-KZpuH`2qZuo%~onyQG@y5U#t zxz6&$k0sq2AdRzy_2Ec(nz5{x^aBO_S5UyUhBkg&eL)G|DB!FccHqCfm-GZ_yc|g5 zY+-#k64teXCwZWNzYYpG*Opb#^1z52UK}2GgEZa=q;ajmCyUg&!B*B0|lJN4^_b!Jggg@G~Cw* z34kBGrXY>8h4tY`c;olguF?<`@C~4Vb8T4#Ew_!h;cvl1N#mVB8fOcSD;x>4jO#l{ zWl+FNX8#oDY!nzg{-I$lHBmZc>`n> zNaI~V8fOb{&Ts9xWZn_|ivjw|I`bHY(NC5?0T7d$- z5fpG%l-mGA9lveF4WD-JXgS+%ery;><80xK7e{iOM*Dip5KzEh2L)VJwEW&fxVMeL z!)=31YP}5kZ0k#23y{Xy!fn8juoFU~eli^t@Z<9+``blm$NaLcU@%QRkx&n(m%I%M_-~+qb8T6Lb;XMKNpASb%i76T zAdMeMXy30zL~AaL(d1u5((90-iSFj3l|?Jvy|Ltssr>Xx%!_7S54zB&hpCTNw@t z_(!0CbC!$qe%zXPirlo3ECgx17D(f4;r8c90R>!gvx}tv2@1H@&@zJh3)ecNfU|CR z>ano5yz@no^qC-yvxW8HNXSe~ZziQd0grz z6mcYsiC6cQ7eE280SdUD-ST@{kD(z2oa==50N`;3r13!@jkATXog)Pla5*0o@F}2x zbMNC`$?cEK1imS16_Uo;!tKnFkV8I;Y!oQqlR*LJtQuIqe!GwY4&tpJi@4#B?soA> z@yXcfPkvOYZe-z%7e~VGt$o@{8BoA)1O=QkEIN~25>mkVeAt_6T`jp7r13={jkAU0 zawNw&FRhI<0tI|ODB#>`+?xEmi|<(OxLvLSY5WXG<80yISB?aa^J5~QfMNiW#w8BYct?=N*~05gj)XmaYu+UzKmi{L3b@YhZPm!D zN$z8qx1YU3T#&|xfi%t*?n@jAWVv}`0v#EvumA>mqLWha(0` zEs)0JAdRzy?|F{oIEzLPmVKarpP4r|B~ujim?Y&o>SF!yAC81)MW1KLI8eZE1_hjJ z%PMHgwvV{shr9Kc`5=wo3eq@Rw4E(m$B_aGxXc0tyaOoUT0_gdsS3wJ3OMVA?}Yz5 zR4$yoIaVd-(m<=0p`xr0M?z0*J4%Lt0{#jp;95h=y{QVu$6?*@{uMm#0%?3YNaJi_ zeK-*Opb#@&yq$9HenE(l}ex+p={W z3E%wG&5)*`fZqWMIA@B$$MH{x6mZrJ`wo`KklrATUklPWTUZ~C1X9!cBV`LH;2(ej zuC=w?o2p=Z9M;Wowqd-w7o_nwK^kWZ>%)4qIoCS{0Hz&C*c&Y2?cas0bO3OMVA?8n1{q$p^&w}CXy7S@L&;hVT2 zBk{~*xwjA$aL(eWRz`_o-SF(L)<_u!(s%(#<7{DlI1=6*m^DIf0tLJSDByaO<=)iW zelyZO#rYy`I7s7CZ&;q!5u|apaHfbO;Tx<=hsZHdz+VRioO5sB0{9Pv6mZrpAdSlb zkjCEvX`C&r4@YvGr-zJRofT5R`B$H31K?)(Z$#Yi3j1HK|DTXF&KAxTaU?wFJTXeP zf&xAf6mZVs=-6)D9d4U|G%n*n8XpJJI9s?4I1+kE_o3o}0zLy2a8{I+UUf+&KgkU* zGv_|Z18IB>NaJkbOc6&4DBv;_6!4RvfP*XIpJy(0L&OaSXVDd6BE`7I-EI7s7C0;KU9KpJNY_c4xyFGdDtiw_F;ZJ>a2 zF98L?CmxG$qy+5zH6U9q1!??KkjC{Wv#7U?a2yGg%73z@)h~X$At>NnTUH_UiAnqP zQL;KDjkAUCM~(!l?oD;%OHjZc0|lJl)7G~)?EP&Xi7+yBE+;!c8ZQmfI9qt^;z-!X zYkIc4{&xL%>jXDEy6;p4qQpeH1*CB?(l{&1`e@niV8`ij^nQ5^6!7an0q6UUpDuwV z<|nz~jZcr2B_NGo1=2WMxVLj8eAPH`sC;yDR{SYYz_~9yx2v9iMMwb$)y)4n;)d@k z7%oN{XAAc+j)eV7resU;jBE401O;4cX!o|Na4@8Rvu=2A>Dg?#V0rb81t5*Hh4tY` zSmSi>B#l4;Zx0GM*OpZPYt26val?;Q?4L7DOw zhTL$jIV*y%wi-{6&p;ag2&8eg@UudWf&_;CvVH-Nk(jPxY^OK+1l8B7Q4K<80x+#E~55 z^EDG>6e!?LK>-ie`bmzr|87VD*Q>1vV@(l}dm9%LCoj)eKu598(2 z500nT0|i_ymfutFwIKyu%XU7r;NJ0a(}{xgogj^~h2wH0yvgy-C}{%<_zY0Mxo2>X z0T0qoa>JJ#8Y8tq8t>HjvLJ%amVpx_WCs0oT=p<@eN^h&sOUk-&VZnJE)M8qWi1T#qsfukJV!R@;lm%iv1G zW79za=h~{b>7(T{5jXs`1>@xbkj8%kX`C(UZ5ct18C zksN1uqlt1gDBzVr0oNK@eowu}g%oftn{N235gygM^^EldX`C&r4@bh9vvig;1_gZb zQ%?t(JIn8>H&Lx3-7w3zG)t<2G`yhZ9@`EIIMP8$RV|rlf&1z6zvqwy3vd1UXVb0hjrpfd2#vIA^0k z8S_60Dd4Od-Xq&LPVNM0{7sO?*~0p8B*&TZbEa$r1^h=)z_qrP-_t83zFMRkw5pXQ z--9&%9Z2JPlqt&ka3p*iE?M#nDBx#60q5GX3R<=?I3SISk;d7g-ZpA;q<{i0Mgiw+ z6nJ-jPDlY~-5h6n^KsG#r19w>jkAUI;YgSPY|E4&&ea<$_8*ydOXTSBvHM)Z2a;z@_t(+;EV_Wfw@}w}Ldz z7S2X-B>WD}A1D8U0{#Xl;GEwBZPOnbQova^%wCsGl(#?{-wo0@TUZ~CgdB1scU8}j z8_xM8o&oU804(eZPp|GCGQB}e_Pd7cZm^gA%^@qCvtMX)cd=#G>@AWmyl2g@ddm}*s*WU@tI%*3NpEK$)m@_oVlD7`j z_R4@X&V7k{21mkIrWGg1dDpi0vOxjocINiyl{cQHp1NOJJ(KRGgEY<-USV@2v|y1O z`J~&tc$KmxXnl zbyQ`4yzBsJd@@MmY~fWrN5bwG7iG(_HK*bqg95H&hONm}XiKT942X}lLm z<80wJ;79=lTwVtSd>ts@Tw7LwuQni!i;~742WgxwTyu^TP{3s!DBwdt0p~lF*G{~q z!VIA1SXl|ucsG#7*~0H~awO!I_Kc9LKmo4<3OKLTcm>I8ALIa*443mj8lMl+I9vF9 z90~lvrro3iDBxv50cU-=jVJc?95*fzOAp`!|l4>p>d#KpJNY z$K^Ec_6mV8V-(ks+!yt`M2Wgxw9G4^E&9ikMd%uDL{sSoB9GCM+thD2diw%;o zAdU9}X`C&5K8_Snz~voKz)yk#&d;6rU2r}h@`(kP;N7SW?&lzlvxVbwB<#i7bFeG| z1^gRO!1?!%k794UYcOVvd=Jw2bdbi`!uoI|C$H~z2$6_l$0p}5buY|7c#@<*c8Y z&K`UepIg5L$QAn{K*x5=i)h)_vRY2A)sFs~BbU}+^3Khj&unCimTi^7b8WB(PUT3I zjIR0DOz)q^7M^AD)jH0=>`79g`r^C+wZ2W6U$IvFs|{M($sCzjbYT7)aX*hOJOj`x zv^is<=I-F^TeQR$E!#R;%eGETc<8_S#}+Ny3Q5bh0?^}frC!JPjlCSrcl9WqA=^AC zAP~#`Ce@Aa99{3Z=S!aBEZSpM=`9=Ws?4GuHow+#@*L;3xmolmo&i{XKT(g1@A!7D zox?2Z!I^E#+$KEqU;Wdg%%Ww>Cuupk#?h<#{q7&5nwv$BvQ?v&ldEm@ShBHv)PiQw zqj-I8c@4dmTv@kuWONSpu%p!5vPOyaP(S@s3)h3M&?4z^xiY_7+Xm*r>auPYDdD02 z>Ytv&`lyzQO&t&M_S&R#&-_)e2#>bFz&&|m*1Da^S0~r)MEED-;W## zZ&RJgksn&k$$M_hH-QI_4CbBcF&I7Zfq{>t%^9)r9k%e5XgOIA)v9c-LhG#NX3?We zA1$Y<8weF@WfnckT20Hz9P(7uihM^eC$nU#;WBP>(w=yXMvwduQdb fMLqZm?c9#@#y>f7q;R$T?K|`TmxmpddR6}eQIcSJ delta 2605 zcmZXVdr(wW9LJA|5N_Cr?{>sg2o-#RI@0dmbETDJH3ic&WlV^`2l*HsSaswAilw5# z+zDx5q!djI5pYmZ*mH3d#lz7!u|{@&VyHwC-aVa$oQa9JBiFrx?w+-1o!_^f+<~p|QV1>WyeX^+ zGUBesJp%1qNIF4GsU=Q+`5X}X7>HFsyaa;pKrLJA-6dWHp`1Nugq(Hj$X$<=3K~vo z&N3yhFx$y09|1z?K;#19G9aab@6b9d#-!|t`BtTw5<+W7cNzM-CgRl6DHRJP7?ST( zM^-GJJz1&&ifW z;N;BX7P52eU?;zP4hRi*5W|4rJH=omx3q(#B>9L;$w;LTdRZMOtnN<05C1GvoMmDBff~^a7gPlzYW5 zF`G;W^E*Ol9uOFa8$j@#BG`98v8&=zIZ))45Ze2FhT&#(G`Y7O*wD{uN`14(Fk^YHZcm@oq zKVedursCs3v*(U1|nQ3ZaYNx#Qx=Z&XyCU4l)J!33XC3cZ;Hs4xFLU8(Z5h(7^6 zbG^S(kV9|j>p;jkkU^}=E#Xp-7wLZGr)Cf#OjYu$on7$m5c(Pj1&9|w@EuxL?j5Iu zxQ$mcU`hz-3$Gfy$0lH}u?cDh@!PJF>Z+K zg&E@wBedK>cmct8Xw9A{N;4&dlAja^azNusT^H;-sbLGg66*HaCCyM{fxkFS(?&Fl zA|Qj(-FO|p8T}2MmNIMETnszu}7}ID#z~m|CgCWDrYQhCv|&6 zLCyrkJ|K?B-A!5zUFTrrQO(xKi06`^NnVeink5T=yKw7Ny@GokB!9CW^kx7t7>NBq z&`GRA>qpO?kn~7D{sxohwpeu^rDY2V=K}Do7d}qsm!HV<2+ej7MmfAytDzs(ao5QS ztyY~q?WAz|60tnk9r4;(V0YpNuphC?O|fm%!mbDGJ1JBH(JF7h->c`iH{`?jtz(U@ z2Zi|!-eg{2psL5t6P?S}Wwgy2*6*~g+;fQ;FI{5h{|9nso7Vj|&)fRB_9#42_OSQn z>^LxTpxvqq-l-Q3Wt*`WsZ~k#>1odFV9^BpmNk;JJ?mh{vmJy^4r=e!b1 Date: Thu, 28 Sep 2017 10:12:18 +1300 Subject: [PATCH 03/26] Made continous turning the default. Added triangles to minimap. Made mark areas bigger #fix #implement --- .../java/seng302/visualiser/GameClient.java | 7 +------ src/main/java/seng302/visualiser/MiniMap.java | 16 ++++++++------- .../controllers/RaceViewController.java | 4 ++-- src/main/resources/meshes/mark_area.dae | 20 +++++++++---------- src/main/resources/views/RaceView.fxml | 2 +- 5 files changed, 23 insertions(+), 26 deletions(-) diff --git a/src/main/java/seng302/visualiser/GameClient.java b/src/main/java/seng302/visualiser/GameClient.java index 39ea001c..53b5e322 100644 --- a/src/main/java/seng302/visualiser/GameClient.java +++ b/src/main/java/seng302/visualiser/GameClient.java @@ -49,12 +49,6 @@ import seng302.visualiser.controllers.RaceViewController; import seng302.visualiser.controllers.ViewManager; import seng302.visualiser.controllers.dialogs.PopupDialogController; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.time.ZoneId; -import java.time.ZoneOffset; -import java.util.*; - /** * This class is a client side instance of a yacht racing game in JavaFX. The game is instantiated * with a JavaFX Pane to insert itself into. @@ -287,6 +281,7 @@ public class GameClient { formatAndSendChatMessage(raceView.readChatInput()); } }); + gameKeyBind.toggleTurningMode(); sendToggleTurningModePacket(); // notify the server about player's steering mode } } diff --git a/src/main/java/seng302/visualiser/MiniMap.java b/src/main/java/seng302/visualiser/MiniMap.java index 5776f867..5cfa843b 100644 --- a/src/main/java/seng302/visualiser/MiniMap.java +++ b/src/main/java/seng302/visualiser/MiniMap.java @@ -5,8 +5,8 @@ import java.util.List; import javafx.application.Platform; import javafx.geometry.Point2D; import javafx.scene.paint.Color; -import javafx.scene.shape.Circle; import javafx.scene.shape.Polygon; +import javafx.scene.transform.Rotate; import seng302.model.ClientYacht; import seng302.model.Limit; import seng302.model.mark.CompoundMark; @@ -15,11 +15,11 @@ import seng302.model.mark.Mark; import seng302.utilities.Sounds; /** - * Created by cir27 on 28/09/17. + * Class converts a map preview to a minimap by adding boats. */ public class MiniMap extends MapPreview { - private HashMap boatIcons = new HashMap<>(); + private HashMap boatIcons = new HashMap<>(); private Polygon playerBoat; private double playerRotation; private List boats; @@ -35,17 +35,19 @@ public class MiniMap extends MapPreview { public void setBoats(List yachts) { for (ClientYacht yacht : yachts) { - Circle boatIcon = new Circle(0, 0, 4); + Polygon boatIcon = new Polygon(0, -3.5, 3.5, 3.5, -3.5, 3.5); boatIcon.setStroke(Color.BLACK); boatIcon.setFill(Color.GRAY); boatIcon.setFill(yacht.getColour()); boatIcon.setFill(yacht.getColour()); boatIcons.put(yacht, boatIcon); + boatIcon.getTransforms().add(new Rotate(0)); yacht.addLocationListener((boat, lat, lon, heading, sailIn, velocity) -> { - Circle bi = boatIcons.get(boat); + Polygon bi = boatIcons.get(boat); Point2D p2d = scaledPoint.findScaledXY(lat, lon); - bi.setCenterX(p2d.getX()); - bi.setCenterY(p2d.getY()); + bi.setLayoutX(p2d.getX()); + bi.setLayoutY(p2d.getY()); + ((Rotate) bi.getTransforms().get(0)).setAngle(heading); }); } Platform.runLater(() -> { diff --git a/src/main/java/seng302/visualiser/controllers/RaceViewController.java b/src/main/java/seng302/visualiser/controllers/RaceViewController.java index 12ea48d0..4852c220 100644 --- a/src/main/java/seng302/visualiser/controllers/RaceViewController.java +++ b/src/main/java/seng302/visualiser/controllers/RaceViewController.java @@ -194,10 +194,10 @@ public class RaceViewController extends Thread { miniMapButton.setOnMouseClicked((event) -> { if (miniMapPane.visibleProperty().get()) { miniMapPane.setVisible(false); - miniMapButton.setText("✕"); + miniMapButton.setText("✓"); } else { miniMapPane.setVisible(true); - miniMapButton.setText("✓"); + miniMapButton.setText("✕"); } }); diff --git a/src/main/resources/meshes/mark_area.dae b/src/main/resources/meshes/mark_area.dae index cdab9021..48f072a5 100644 --- a/src/main/resources/meshes/mark_area.dae +++ b/src/main/resources/meshes/mark_area.dae @@ -3,10 +3,10 @@ Blender User - Blender 2.78.0 commit date:2017-02-24, commit time:14:33, hash:e92f235283 + Blender 2.78.0 commit date:2016-09-26, commit time:12:42, hash:4bb1e22 - 2017-09-11T01:59:12 - 2017-09-11T01:59:12 + 2017-09-28T10:11:09 + 2017-09-28T10:11:09 Z_UP @@ -52,7 +52,7 @@ 0.64 0.1138082 0 1 - 9.70731e-4 9.70731e-4 9.70731e-4 1 + 4.85366e-4 4.85366e-4 4.85366e-4 1 50 @@ -106,7 +106,7 @@ - 0.2229081 9.226238 0.0419262 0.8986169 9.123887 0.0419262 -2.868184 9.455139 0.0419262 -2.164442 9.631382 0.0419262 3.736657 8.438632 0.0419262 4.321767 8.085489 0.0419262 -6.268181 7.6378 0.0419262 -5.685454 8.069944 0.0419262 6.681546 6.36632 0.0419262 7.086975 5.816144 0.0419262 -8.713906 4.657678 0.0419262 -8.340909 5.279924 0.0419262 8.60923 3.324795 0.0419262 8.773255 2.661348 0.0419262 -9.833014 0.9684678 0.0419262 -9.726534 1.686088 0.0419262 9.226237 -0.2229008 0.0419262 9.123886 -0.8986153 0.0419262 -9.455139 -2.868183 0.0419262 -9.631382 -2.16444 0.0419262 8.438631 -3.736662 0.0419262 8.085483 -4.321773 0.0419262 -7.6378 -6.268181 0.0419262 -8.069944 -5.685453 0.0419262 6.366316 -6.68155 0.0419262 5.81614 -7.086979 0.0419262 -4.657677 -8.713907 0.0419262 -5.279924 -8.340909 0.0419262 3.324789 -8.609231 0.0419262 2.661342 -8.773257 0.0419262 -0.9684644 -9.833014 0.0419262 -1.686085 -9.726534 0.0419262 -0.222907 -9.226237 0.0419262 -0.8986214 -9.123885 0.0419262 2.868188 -9.455138 0.0419262 2.164446 -9.631382 0.0419262 -3.736668 -8.438628 0.0419262 -4.321778 -8.08548 0.0419262 6.268185 -7.637797 0.0419262 5.685459 -8.069939 0.0419262 -6.681554 -6.366312 0.0419262 -7.086983 -5.816135 0.0419262 8.713909 -4.657672 0.0419262 8.340912 -5.279919 0.0419262 -8.609233 -3.324784 0.0419262 -8.773259 -2.661337 0.0419262 9.833014 -0.9684582 0.0419262 9.726535 -1.686079 0.0419262 -9.226237 0.2229108 0.0419262 -9.123885 0.8986247 0.0419262 9.455136 2.868195 0.0419262 9.631381 2.164452 0.0419262 -8.438628 3.736669 0.0419262 -8.085479 4.321779 0.0419262 7.637792 6.26819 0.0419262 8.069935 5.685464 0.0419262 -6.366312 6.681554 0.0419262 -5.816136 7.086983 0.0419262 4.657666 8.713912 0.0419262 5.279914 8.340916 0.0419262 -3.324786 8.609234 0.0419262 -2.661338 8.773259 0.0419262 0.9684599 9.833018 0.0419262 1.686074 9.726536 0.0419262 0.243861 9.868581 0.0419262 -2.018576 9.00547 0.0419262 4.001829 9.024065 0.0419262 -5.311164 7.547492 0.0419262 7.150568 6.805712 0.0419262 -7.795176 4.940478 0.0419262 9.2107 3.551252 0.0419262 -9.092445 1.581323 0.0419262 9.86858 -0.2438534 0.0419262 -9.00547 -2.018574 0.0419262 9.024062 -4.001835 0.0419262 -7.547492 -5.311163 0.0419262 6.805707 -7.150573 0.0419262 -4.940478 -7.795175 0.0419262 3.551247 -9.2107 0.0419262 -1.58132 -9.092445 0.0419262 -0.2438598 -9.86858 0.0419262 2.018579 -9.005469 0.0419262 -4.001841 -9.02406 0.0419262 5.311169 -7.547488 0.0419262 -7.150577 -6.805703 0.0419262 7.795179 -4.940473 0.0419262 -9.210701 -3.551241 0.0419262 9.092446 -1.581314 0.0419262 -9.86858 0.2438636 0.0419262 9.005465 2.018586 0.0419262 -9.02406 4.001842 0.0419262 7.547485 5.311173 0.0419262 -6.805703 7.150577 0.0419262 4.940468 7.795183 0.0419262 -3.551242 9.210701 0.0419262 1.58131 9.092448 0.0419262 6.64644 -6.86647 0.0419262 8.031196 -5.179137 0.0419262 -9.401826 1.711501 0.0419262 -9.55507 0.1555917 0.0419262 8.768197 -3.800307 0.0419262 -9.341118 -2.016701 0.0419262 9.401828 -1.711492 0.0419262 -8.887275 -3.512818 0.0419262 9.555071 -0.1555815 0.0419262 -7.858308 -5.43788 0.0419262 9.341115 2.016713 0.0419262 -6.866474 -6.646435 0.0419262 8.887271 3.51283 0.0419262 -5.179142 -8.031192 0.0419262 7.858302 5.437891 0.0419262 -3.800313 -8.768195 0.0419262 0.1555896 9.555071 0.0419262 -2.016703 9.341118 0.0419262 6.866465 6.646443 0.0419262 -1.711498 -9.401826 0.0419262 -3.51282 8.887276 0.0419262 5.179132 8.031202 0.0419262 -0.1555879 -9.555069 0.0419262 -5.437881 7.858308 0.0419262 3.800302 8.768198 0.0419262 2.016707 -9.341116 0.0419262 -6.646435 6.866474 0.0419262 1.711487 9.401829 0.0419262 3.512824 -8.887273 0.0419262 -8.031192 5.179142 0.0419262 5.437886 -7.858306 0.0419262 -8.768193 3.800314 0.0419262 6.042163 -7.362388 0.0419262 -8.399691 4.489728 0.0419262 0.9335383 9.478449 0.0419262 2.764765 -9.114195 0.0419262 -6.042158 7.362391 0.0419262 4.489717 8.399701 0.0419262 -0.9335429 -9.478448 0.0419262 -2.764761 9.114197 0.0419262 7.362383 6.042167 0.0419262 -4.489727 -8.399692 0.0419262 9.114193 2.764771 0.0419262 -7.362391 -6.042158 0.0419262 9.478449 -0.9335367 0.0419262 -9.114197 -2.76476 0.0419262 8.399697 -4.489722 0.0419262 -9.478448 0.9335463 0.0419262 0.2229081 9.226238 0.1237342 0.8986169 9.123887 0.1237342 -2.868184 9.455139 0.1237342 -2.164442 9.631382 0.1237342 3.736657 8.438632 0.1237342 4.321767 8.085489 0.1237342 -6.268181 7.6378 0.1237342 -5.685454 8.069944 0.1237342 6.681546 6.36632 0.1237342 7.086975 5.816144 0.1237342 -8.713906 4.657678 0.1237342 -8.340909 5.279924 0.1237342 8.60923 3.324795 0.1237342 8.773255 2.661348 0.1237342 -9.833014 0.9684678 0.1237342 -9.726534 1.686088 0.1237342 9.226237 -0.2229008 0.1237342 9.123886 -0.8986153 0.1237342 -9.455139 -2.868183 0.1237342 -9.631382 -2.16444 0.1237342 8.438631 -3.736662 0.1237342 8.085483 -4.321773 0.1237342 -7.6378 -6.268181 0.1237342 -8.069944 -5.685453 0.1237342 6.366316 -6.68155 0.1237342 5.81614 -7.086979 0.1237342 -4.657677 -8.713907 0.1237342 -5.279924 -8.340909 0.1237342 3.324789 -8.609231 0.1237342 2.661342 -8.773257 0.1237342 -0.9684644 -9.833014 0.1237342 -1.686085 -9.726534 0.1237342 -0.222907 -9.226237 0.1237342 -0.8986214 -9.123885 0.1237342 2.868188 -9.455138 0.1237342 2.164446 -9.631382 0.1237342 -3.736668 -8.438628 0.1237342 -4.321778 -8.08548 0.1237342 6.268185 -7.637797 0.1237342 5.685459 -8.069939 0.1237342 -6.681554 -6.366312 0.1237342 -7.086983 -5.816135 0.1237342 8.713909 -4.657672 0.1237342 8.340912 -5.279919 0.1237342 -8.609233 -3.324784 0.1237342 -8.773259 -2.661337 0.1237342 9.833014 -0.9684582 0.1237342 9.726535 -1.686079 0.1237342 -9.226237 0.2229108 0.1237342 -9.123885 0.8986247 0.1237342 9.455136 2.868195 0.1237342 9.631381 2.164452 0.1237342 -8.438628 3.736669 0.1237342 -8.085479 4.321779 0.1237342 7.637792 6.26819 0.1237342 8.069935 5.685464 0.1237342 -6.366312 6.681554 0.1237342 -5.816136 7.086983 0.1237342 4.657666 8.713912 0.1237342 5.279914 8.340916 0.1237342 -3.324786 8.609234 0.1237342 -2.661338 8.773259 0.1237342 0.9684599 9.833018 0.1237342 1.686074 9.726536 0.1237342 0.243861 9.868581 0.1237342 -2.018576 9.00547 0.1237342 4.001829 9.024065 0.1237342 -5.311164 7.547492 0.1237342 7.150568 6.805712 0.1237342 -7.795176 4.940478 0.1237342 9.2107 3.551252 0.1237342 -9.092445 1.581323 0.1237342 9.86858 -0.2438534 0.1237342 -9.00547 -2.018574 0.1237342 9.024062 -4.001835 0.1237342 -7.547492 -5.311163 0.1237342 6.805707 -7.150573 0.1237342 -4.940478 -7.795175 0.1237342 3.551247 -9.2107 0.1237342 -1.58132 -9.092445 0.1237342 -0.2438598 -9.86858 0.1237342 2.018579 -9.005469 0.1237342 -4.001841 -9.02406 0.1237342 5.311169 -7.547488 0.1237342 -7.150577 -6.805703 0.1237342 7.795179 -4.940473 0.1237342 -9.210701 -3.551241 0.1237342 9.092446 -1.581314 0.1237342 -9.86858 0.2438636 0.1237342 9.005465 2.018586 0.1237342 -9.02406 4.001842 0.1237342 7.547485 5.311173 0.1237342 -6.805703 7.150577 0.1237342 4.940468 7.795183 0.1237342 -3.551242 9.210701 0.1237342 1.58131 9.092448 0.1237342 6.64644 -6.86647 0.1237342 8.031196 -5.179137 0.1237342 -9.401826 1.711501 0.1237342 -9.55507 0.1555917 0.1237342 8.768197 -3.800307 0.1237342 -9.341118 -2.016701 0.1237342 9.401828 -1.711492 0.1237342 -8.887275 -3.512818 0.1237342 9.555071 -0.1555815 0.1237342 -7.858308 -5.43788 0.1237342 9.341115 2.016713 0.1237342 -6.866474 -6.646435 0.1237342 8.887271 3.51283 0.1237342 -5.179142 -8.031192 0.1237342 7.858302 5.437891 0.1237342 -3.800313 -8.768195 0.1237342 0.1555896 9.555071 0.1237342 -2.016703 9.341118 0.1237342 6.866465 6.646443 0.1237342 -1.711498 -9.401826 0.1237342 -3.51282 8.887276 0.1237342 5.179132 8.031202 0.1237342 -0.1555879 -9.555069 0.1237342 -5.437881 7.858308 0.1237342 3.800302 8.768198 0.1237342 2.016707 -9.341116 0.1237342 -6.646435 6.866474 0.1237342 1.711487 9.401829 0.1237342 3.512824 -8.887273 0.1237342 -8.031192 5.179142 0.1237342 5.437886 -7.858306 0.1237342 -8.768193 3.800314 0.1237342 6.042163 -7.362388 0.1237342 -8.399691 4.489728 0.1237342 0.9335383 9.478449 0.1237342 2.764765 -9.114195 0.1237342 -6.042158 7.362391 0.1237342 4.489717 8.399701 0.1237342 -0.9335429 -9.478448 0.1237342 -2.764761 9.114197 0.1237342 7.362383 6.042167 0.1237342 -4.489727 -8.399692 0.1237342 9.114193 2.764771 0.1237342 -7.362391 -6.042158 0.1237342 9.478449 -0.9335367 0.1237342 -9.114197 -2.76476 0.1237342 8.399697 -4.489722 0.1237342 -9.478448 0.9335463 0.1237342 + 0.2229081 9.226239 0.0419262 0.8986169 9.123888 0.0419262 -2.868184 9.45514 0.0419262 -2.164442 9.631382 0.0419262 3.736657 8.438632 0.0419262 4.321767 8.08549 0.0419262 -6.268181 7.6378 0.0419262 -5.685454 8.069945 0.0419262 6.681546 6.36632 0.0419262 7.086975 5.816144 0.0419262 -8.713907 4.657678 0.0419262 -8.340909 5.279924 0.0419262 8.60923 3.324795 0.0419262 8.773256 2.661348 0.0419262 -9.833014 0.9684678 0.0419262 -9.726534 1.686088 0.0419262 9.226238 -0.2229008 0.0419262 9.123887 -0.8986153 0.0419262 -9.45514 -2.868183 0.0419262 -9.631382 -2.16444 0.0419262 8.438632 -3.736662 0.0419262 8.085483 -4.321773 0.0419262 -7.6378 -6.268181 0.0419262 -8.069945 -5.685453 0.0419262 6.366316 -6.68155 0.0419262 5.81614 -7.086979 0.0419262 -4.657677 -8.713908 0.0419262 -5.279924 -8.340909 0.0419262 3.324789 -8.609231 0.0419262 2.661342 -8.773258 0.0419262 -0.9684644 -9.833014 0.0419262 -1.686085 -9.726534 0.0419262 -0.222907 -9.226238 0.0419262 -0.8986214 -9.123886 0.0419262 2.868188 -9.455139 0.0419262 2.164446 -9.631382 0.0419262 -3.736668 -8.438629 0.0419262 -4.321778 -8.08548 0.0419262 6.268185 -7.637797 0.0419262 5.685459 -8.069939 0.0419262 -6.681554 -6.366312 0.0419262 -7.086983 -5.816135 0.0419262 8.71391 -4.657672 0.0419262 8.340912 -5.279919 0.0419262 -8.609233 -3.324784 0.0419262 -8.77326 -2.661337 0.0419262 9.833014 -0.9684582 0.0419262 9.726535 -1.686079 0.0419262 -9.226238 0.2229108 0.0419262 -9.123886 0.8986247 0.0419262 9.455137 2.868195 0.0419262 9.631381 2.164452 0.0419262 -8.438629 3.736669 0.0419262 -8.085479 4.321779 0.0419262 7.637792 6.26819 0.0419262 8.069935 5.685464 0.0419262 -6.366312 6.681554 0.0419262 -5.816136 7.086983 0.0419262 4.657666 8.713912 0.0419262 5.279914 8.340916 0.0419262 -3.324786 8.609234 0.0419262 -2.661338 8.77326 0.0419262 0.9684599 9.833019 0.0419262 1.686074 9.726536 0.0419262 0.243861 9.868581 0.0419262 -2.018576 9.005471 0.0419262 4.001829 9.024065 0.0419262 -5.311164 7.547492 0.0419262 7.150568 6.805712 0.0419262 -7.795176 4.940478 0.0419262 9.2107 3.551252 0.0419262 -9.092446 1.581323 0.0419262 9.86858 -0.2438534 0.0419262 -9.005471 -2.018574 0.0419262 9.024063 -4.001835 0.0419262 -7.547492 -5.311163 0.0419262 6.805707 -7.150573 0.0419262 -4.940478 -7.795175 0.0419262 3.551247 -9.2107 0.0419262 -1.58132 -9.092446 0.0419262 -0.2438598 -9.86858 0.0419262 2.018579 -9.00547 0.0419262 -4.001841 -9.024061 0.0419262 5.311169 -7.547488 0.0419262 -7.150577 -6.805703 0.0419262 7.795179 -4.940473 0.0419262 -9.210701 -3.551241 0.0419262 9.092447 -1.581314 0.0419262 -9.86858 0.2438636 0.0419262 9.005465 2.018586 0.0419262 -9.024061 4.001842 0.0419262 7.547485 5.311173 0.0419262 -6.805703 7.150577 0.0419262 4.940468 7.795183 0.0419262 -3.551242 9.210701 0.0419262 1.58131 9.092449 0.0419262 6.64644 -6.86647 0.0419262 8.031196 -5.179137 0.0419262 -9.401826 1.711501 0.0419262 -9.55507 0.1555917 0.0419262 8.768198 -3.800307 0.0419262 -9.341118 -2.016701 0.0419262 9.401828 -1.711492 0.0419262 -8.887275 -3.512818 0.0419262 9.555071 -0.1555815 0.0419262 -7.858308 -5.43788 0.0419262 9.341115 2.016713 0.0419262 -6.866474 -6.646435 0.0419262 8.887271 3.51283 0.0419262 -5.179142 -8.031192 0.0419262 7.858302 5.437891 0.0419262 -3.800313 -8.768196 0.0419262 0.1555896 9.555071 0.0419262 -2.016703 9.341118 0.0419262 6.866465 6.646443 0.0419262 -1.711498 -9.401826 0.0419262 -3.51282 8.887276 0.0419262 5.179132 8.031203 0.0419262 -0.1555879 -9.555069 0.0419262 -5.437881 7.858308 0.0419262 3.800302 8.768198 0.0419262 2.016707 -9.341116 0.0419262 -6.646435 6.866474 0.0419262 1.711487 9.401829 0.0419262 3.512824 -8.887273 0.0419262 -8.031192 5.179142 0.0419262 5.437886 -7.858306 0.0419262 -8.768194 3.800314 0.0419262 6.042163 -7.362388 0.0419262 -8.399691 4.489728 0.0419262 0.9335383 9.478449 0.0419262 2.764765 -9.114195 0.0419262 -6.042158 7.362391 0.0419262 4.489717 8.399702 0.0419262 -0.9335429 -9.478448 0.0419262 -2.764761 9.114197 0.0419262 7.362383 6.042167 0.0419262 -4.489727 -8.399692 0.0419262 9.114193 2.764771 0.0419262 -7.362391 -6.042158 0.0419262 9.478449 -0.9335367 0.0419262 -9.114197 -2.76476 0.0419262 8.399698 -4.489722 0.0419262 -9.478448 0.9335463 0.0419262 0.2229081 9.226239 0.1237342 0.8986169 9.123888 0.1237342 -2.868184 9.45514 0.1237342 -2.164442 9.631382 0.1237342 3.736657 8.438632 0.1237342 4.321767 8.08549 0.1237342 -6.268181 7.6378 0.1237342 -5.685454 8.069945 0.1237342 6.681546 6.36632 0.1237342 7.086975 5.816144 0.1237342 -8.713907 4.657678 0.1237342 -8.340909 5.279924 0.1237342 8.60923 3.324795 0.1237342 8.773256 2.661348 0.1237342 -9.833014 0.9684678 0.1237342 -9.726534 1.686088 0.1237342 9.226238 -0.2229008 0.1237342 9.123887 -0.8986153 0.1237342 -9.45514 -2.868183 0.1237342 -9.631382 -2.16444 0.1237342 8.438632 -3.736662 0.1237342 8.085483 -4.321773 0.1237342 -7.6378 -6.268181 0.1237342 -8.069945 -5.685453 0.1237342 6.366316 -6.68155 0.1237342 5.81614 -7.086979 0.1237342 -4.657677 -8.713908 0.1237342 -5.279924 -8.340909 0.1237342 3.324789 -8.609231 0.1237342 2.661342 -8.773258 0.1237342 -0.9684644 -9.833014 0.1237342 -1.686085 -9.726534 0.1237342 -0.222907 -9.226238 0.1237342 -0.8986214 -9.123886 0.1237342 2.868188 -9.455139 0.1237342 2.164446 -9.631382 0.1237342 -3.736668 -8.438629 0.1237342 -4.321778 -8.08548 0.1237342 6.268185 -7.637797 0.1237342 5.685459 -8.069939 0.1237342 -6.681554 -6.366312 0.1237342 -7.086983 -5.816135 0.1237342 8.71391 -4.657672 0.1237342 8.340912 -5.279919 0.1237342 -8.609233 -3.324784 0.1237342 -8.77326 -2.661337 0.1237342 9.833014 -0.9684582 0.1237342 9.726535 -1.686079 0.1237342 -9.226238 0.2229108 0.1237342 -9.123886 0.8986247 0.1237342 9.455137 2.868195 0.1237342 9.631381 2.164452 0.1237342 -8.438629 3.736669 0.1237342 -8.085479 4.321779 0.1237342 7.637792 6.26819 0.1237342 8.069935 5.685464 0.1237342 -6.366312 6.681554 0.1237342 -5.816136 7.086983 0.1237342 4.657666 8.713912 0.1237342 5.279914 8.340916 0.1237342 -3.324786 8.609234 0.1237342 -2.661338 8.77326 0.1237342 0.9684599 9.833019 0.1237342 1.686074 9.726536 0.1237342 0.243861 9.868581 0.1237342 -2.018576 9.005471 0.1237342 4.001829 9.024065 0.1237342 -5.311164 7.547492 0.1237342 7.150568 6.805712 0.1237342 -7.795176 4.940478 0.1237342 9.2107 3.551252 0.1237342 -9.092446 1.581323 0.1237342 9.86858 -0.2438534 0.1237342 -9.005471 -2.018574 0.1237342 9.024063 -4.001835 0.1237342 -7.547492 -5.311163 0.1237342 6.805707 -7.150573 0.1237342 -4.940478 -7.795175 0.1237342 3.551247 -9.2107 0.1237342 -1.58132 -9.092446 0.1237342 -0.2438598 -9.86858 0.1237342 2.018579 -9.00547 0.1237342 -4.001841 -9.024061 0.1237342 5.311169 -7.547488 0.1237342 -7.150577 -6.805703 0.1237342 7.795179 -4.940473 0.1237342 -9.210701 -3.551241 0.1237342 9.092447 -1.581314 0.1237342 -9.86858 0.2438636 0.1237342 9.005465 2.018586 0.1237342 -9.024061 4.001842 0.1237342 7.547485 5.311173 0.1237342 -6.805703 7.150577 0.1237342 4.940468 7.795183 0.1237342 -3.551242 9.210701 0.1237342 1.58131 9.092449 0.1237342 6.64644 -6.86647 0.1237342 8.031196 -5.179137 0.1237342 -9.401826 1.711501 0.1237342 -9.55507 0.1555917 0.1237342 8.768198 -3.800307 0.1237342 -9.341118 -2.016701 0.1237342 9.401828 -1.711492 0.1237342 -8.887275 -3.512818 0.1237342 9.555071 -0.1555815 0.1237342 -7.858308 -5.43788 0.1237342 9.341115 2.016713 0.1237342 -6.866474 -6.646435 0.1237342 8.887271 3.51283 0.1237342 -5.179142 -8.031192 0.1237342 7.858302 5.437891 0.1237342 -3.800313 -8.768196 0.1237342 0.1555896 9.555071 0.1237342 -2.016703 9.341118 0.1237342 6.866465 6.646443 0.1237342 -1.711498 -9.401826 0.1237342 -3.51282 8.887276 0.1237342 5.179132 8.031203 0.1237342 -0.1555879 -9.555069 0.1237342 -5.437881 7.858308 0.1237342 3.800302 8.768198 0.1237342 2.016707 -9.341116 0.1237342 -6.646435 6.866474 0.1237342 1.711487 9.401829 0.1237342 3.512824 -8.887273 0.1237342 -8.031192 5.179142 0.1237342 5.437886 -7.858306 0.1237342 -8.768194 3.800314 0.1237342 6.042163 -7.362388 0.1237342 -8.399691 4.489728 0.1237342 0.9335383 9.478449 0.1237342 2.764765 -9.114195 0.1237342 -6.042158 7.362391 0.1237342 4.489717 8.399702 0.1237342 -0.9335429 -9.478448 0.1237342 -2.764761 9.114197 0.1237342 7.362383 6.042167 0.1237342 -4.489727 -8.399692 0.1237342 9.114193 2.764771 0.1237342 -7.362391 -6.042158 0.1237342 9.478449 -0.9335367 0.1237342 -9.114197 -2.76476 0.1237342 8.399698 -4.489722 0.1237342 -9.478448 0.9335463 0.1237342 @@ -116,9 +116,9 @@ - 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0.9818589 -0.1896133 0 0.2400057 -0.9707715 0 -0.8050309 -0.5932329 0 -0.04902118 -0.9987978 0 0.8032317 0.5956668 0 -0.905297 0.4247792 0 0.67383 -0.7388865 0 0.3094326 0.9509214 0 -0.9989414 0.04600191 0 0.8283565 0.5602014 0 0.9625736 -0.2710208 0 0.3878356 0.9217287 0 -0.8561466 0.5167332 0 0.9969513 0.07802641 0 0.7855889 -0.6187489 0 -0.5602023 0.8283559 0 0.9217292 -0.3878343 0 0.3369329 -0.9415287 0 0.5956672 -0.8032314 0 -0.387834 -0.9217293 0 -0.9415287 -0.3369328 0 -0.5509202 -0.834558 0 0.9891704 -0.1467715 0 -0.7031555 0.7110362 0 -0.005580186 -0.9999845 0 -0.3775237 0.926 0 0.6715904 -0.7409227 0 0.7110381 0.7031536 0 0.2429354 -0.9700425 0 0.9052973 -0.4247787 0 -0.2400041 0.9707719 0 0.339778 -0.9405058 0 -0.7601249 0.6497772 0 -0.5141389 -0.8577071 0 -0.9707716 -0.2400052 0 0.9987977 -0.04902362 0 0.4247804 0.9052965 0 0.9999845 -0.005577504 0 0.005580186 0.9999845 0 0.1896141 0.9818587 0 -0.9259992 -0.3775256 0 -0.9040071 0.4275173 0 -0.7388886 -0.6738277 0 -0.8345566 0.5509222 0 -0.9405069 -0.3397748 0 -0.9891705 0.1467714 0 -0.5956659 0.8032323 0 -0.981859 0.1896128 0 -0.7409219 -0.6715912 0 -0.4890027 0.8722823 0 0.04600238 0.9989414 0 -0.7855856 0.6187531 0 0.9700422 0.2429367 0 0.9930177 0.1179663 0 0.8912037 0.4536035 0 -0.9217299 0.3878324 0 -0.8722858 -0.4889964 0 0.988722 -0.1497626 0 0.4275164 0.9040077 0 -0.3397773 0.940506 0 0.7031511 -0.7110405 0 0.2710232 0.9625729 0 0.8050302 0.5932339 0 -0.3369323 0.941529 0 -0.8032317 -0.5956668 0 0.9509224 -0.3094295 0 -0.8283555 -0.5602028 0 -0.9969514 -0.07802551 0 0.6187509 0.7855873 0 -0.1896149 -0.9818586 0 -0.2429367 0.9700422 0 0.6497756 0.7601262 0 0.9415283 0.336934 0 -0.30943 -0.9509223 0 -0.6187526 -0.7855859 0 0.7409232 0.6715898 0 0.0490247 0.9987976 0 -0.1497641 -0.9887219 0 0.7388869 0.6738296 0 -0.1179692 0.9930173 0 -0.6715915 0.7409217 0 0.5141403 0.8577061 0 -0.891202 -0.4536066 0 -0.2710232 -0.9625729 0 -0.950921 0.3094341 0 0.5602042 -0.8283546 0 0.9405061 0.3397771 0 -0.2005602 0.9796815 0 0.9796816 0.2005594 0 0.1179668 -0.9930176 0 -0.6497828 -0.76012 0 -0.711041 -0.7031506 0 -0.9999845 0.00557965 0 0.1467719 0.9891704 0 -0.07802546 0.9969514 0 0.9707716 0.2400053 0 -0.1467757 -0.9891698 0 0.07802587 -0.9969514 0 0.2005607 -0.9796814 0 -0.8577075 0.514138 0 -0.9796811 -0.2005618 0 -0.9887217 0.1497648 0 0.7601204 -0.6497824 0 0.8577053 -0.5141418 0 0.9260015 0.3775199 0 0.4890037 -0.8722817 0 -0.4536027 0.891204 0 -0.9930175 -0.1179679 0 -0.9987977 0.04902356 0 -0.9700418 -0.2429386 0 -0.0460034 -0.9989413 0 -0.673828 0.7388883 0 0.149764 0.9887218 0 0.5932339 -0.8050302 0 0.8345571 -0.5509215 0 0.8561471 -0.5167323 0 0.9989413 -0.04600405 0 0.5167297 0.8561486 0 0.8722839 0.4889999 0 0.5509232 0.8345561 0 0.3775228 -0.9260003 0 0.4536058 -0.8912025 0 -0.9625734 0.2710214 0 -0.5167337 -0.8561462 0 -0.4247806 -0.9052963 0 -0.5932338 0.8050303 0 -0.427516 -0.9040079 0 0.9040069 -0.4275178 0 0.9818584 -0.1896154 0 0.2400056 -0.9707715 0 -0.805031 -0.5932329 0 -0.04902118 -0.9987978 0 0.8032317 0.5956668 0 -0.9052971 0.4247792 0 0.6738293 -0.738887 0 0.3094313 0.9509219 0 -0.9989412 0.0460062 0 0.3878325 0.9217299 0 -0.8561456 0.5167347 0 0.9969515 0.07802528 0 0.7855889 -0.6187489 0 -0.5602002 0.8283573 0 0.9217287 -0.3878352 0 0.3369327 -0.9415287 0 -0.387834 -0.9217292 0 -0.9415287 -0.3369328 0 -0.5509203 -0.834558 0 0.9891704 -0.1467715 0 -0.7031533 0.7110383 0 -0.005580186 -0.9999845 0 -0.3775237 0.926 0 0.6715894 -0.7409236 0 0.7110404 0.7031512 0 0.2429356 -0.9700425 0 0.9052964 -0.4247804 0 -0.2400042 0.9707719 0 0.3397782 -0.9405056 0 -0.5141385 -0.8577073 0 0.9987975 -0.04902559 0 0.4247808 0.9052962 0 0.9999845 -0.005577504 0 0.005580127 0.9999845 0 0.1896142 0.9818587 0 -0.9260008 -0.3775219 0 -0.904008 0.4275157 0 -0.7388876 -0.6738288 0 -0.8345547 0.5509253 0 -0.9405055 -0.3397786 0 -0.9891707 0.1467694 0 -0.5956665 0.803232 0 -0.9818586 0.1896148 0 -0.7409219 -0.6715912 0 -0.4890027 0.8722823 0 0.04600244 0.9989414 0 -0.7855846 0.6187545 0 0.9700426 0.2429348 0 0.9930174 0.1179685 0 0.8912042 0.4536024 0 -0.9217299 0.3878324 0 -0.872284 -0.4889999 0 0.988722 -0.1497626 0 0.4275163 0.9040077 0 -0.3397771 0.940506 0 0.7031522 -0.7110393 0 0.2710221 0.9625732 0 0.8050302 0.5932339 0 -0.3369325 0.9415288 0 -0.8032317 -0.5956667 0 0.9509224 -0.3094295 0 -0.9969513 -0.07802665 0 -0.1896141 -0.9818587 0 -0.2429369 0.9700422 0 0.6497777 0.7601243 0 0.9415296 0.3369305 0 -0.30943 -0.9509223 0 -0.6187527 -0.7855859 0 0.7409233 0.6715897 0 -0.1497641 -0.9887218 0 -0.1179703 0.9930172 0 -0.6715914 0.7409217 0 0.5141404 0.8577061 0 -0.8912029 -0.4536049 0 -0.2710232 -0.9625729 0 -0.9509217 0.309432 0 0.5602043 -0.8283545 0 0.9405068 0.3397752 0 -0.2005619 0.9796811 0 0.9796816 0.2005595 0 0.1179658 -0.9930177 0 -0.6497828 -0.7601199 0 -0.711041 -0.7031505 0 -0.9999845 0.005580723 0 0.1467719 0.9891704 0 -0.07802551 0.9969514 0 0.9707721 0.2400032 0 -0.1467757 -0.9891699 0 0.07802551 -0.9969514 0 0.2005615 -0.9796811 0 -0.8577068 0.5141394 0 -0.9796811 -0.2005618 0 -0.988722 0.1497628 0 0.857707 -0.5141388 0 0.9260015 0.3775199 0 0.4890018 -0.8722829 0 -0.4536028 0.891204 0 -0.9930172 -0.11797 0 -0.9987975 0.04902553 0 -0.9700422 -0.2429367 0 -0.04600346 -0.9989413 0 -0.6738286 0.7388878 0 0.149764 0.9887219 0 0.5932329 -0.8050309 0 0.834559 -0.5509185 0 0.8561472 -0.5167323 0 0.9989414 -0.04600191 0 0.5167292 0.8561488 0 0.872282 0.4890033 0 0.5509232 0.8345561 0 0.3775228 -0.9260003 0 0.453604 -0.8912034 0 -0.9625733 0.2710215 0 -0.5167333 -0.8561465 0 -0.4247807 -0.9052963 0 -0.5932334 0.8050306 0 -0.4275155 -0.904008 0 0.9040078 -0.4275162 0 + 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0.9818589 -0.1896133 0 0.240007 -0.9707713 0 -0.8050309 -0.5932329 0 -0.04901987 -0.9987979 0 0.8032317 0.5956668 0 -0.905297 0.4247792 0 0.6738289 -0.7388874 0 0.3094313 0.9509218 0 -0.9989413 0.04600405 0 0.8283565 0.5602014 0 0.9625736 -0.2710208 0 0.3878356 0.9217287 0 -0.8561456 0.5167348 0 0.9969513 0.07802641 0 0.7855889 -0.6187489 0 -0.5602023 0.8283559 0 0.9217287 -0.3878353 0 0.336934 -0.9415283 0 0.5956676 -0.8032311 0 -0.387834 -0.9217293 0 -0.9415294 -0.336931 0 -0.5509202 -0.834558 0 0.9891705 -0.1467715 0 -0.7031569 0.7110348 0 -0.005580186 -0.9999845 0 -0.3775237 0.926 0 0.6715907 -0.7409224 0 0.7110388 0.7031528 0 0.2429342 -0.9700428 0 0.9052973 -0.4247787 0 -0.2400054 0.9707716 0 0.339778 -0.9405058 0 -0.7601249 0.6497772 0 -0.5141389 -0.8577071 0 -0.9707711 -0.2400072 0 0.9987977 -0.04902362 0 0.4247816 0.9052959 0 0.9999845 -0.005577504 0 0.005580186 0.9999845 0 0.1896141 0.9818587 0 -0.9259992 -0.3775256 0 -0.9040088 0.4275141 0 -0.7388886 -0.6738277 0 -0.8345566 0.5509222 0 -0.9405055 -0.3397786 0 -0.9891705 0.1467714 0 -0.5956659 0.8032323 0 -0.9818586 0.1896148 0 -0.7409222 -0.6715909 0 -0.4890027 0.8722823 0 0.04600238 0.9989414 0 -0.7855856 0.6187531 0 0.9700432 0.2429329 0 0.9930177 0.1179663 0 0.8912042 0.4536026 0 -0.9217295 0.3878335 0 -0.8722858 -0.4889964 0 0.9887217 -0.1497647 0 0.4275164 0.9040077 0 -0.3397773 0.940506 0 0.7031511 -0.7110405 0 0.2710232 0.9625729 0 0.8050305 0.5932336 0 -0.3369334 0.9415285 0 -0.8032317 -0.5956668 0 0.9509224 -0.3094295 0 -0.8283555 -0.5602028 0 -0.9969514 -0.07802551 0 0.6187509 0.7855873 0 -0.1896141 -0.9818587 0 -0.2429354 0.9700425 0 0.6497766 0.7601252 0 0.9415283 0.336934 0 -0.30943 -0.9509223 0 -0.6187548 -0.7855842 0 0.7409222 0.6715909 0 0.0490247 0.9987976 0 -0.1497641 -0.9887219 0 0.7388869 0.6738296 0 -0.1179692 0.9930173 0 -0.6715915 0.7409217 0 0.5141413 0.8577057 0 -0.891202 -0.4536066 0 -0.2710232 -0.9625729 0 -0.9509207 0.309435 0 0.5602042 -0.8283546 0 0.9405074 0.3397732 0 -0.2005618 0.9796811 0 0.9796815 0.20056 0 0.1179658 -0.9930177 0 -0.6497845 -0.7601185 0 -0.711041 -0.7031506 0 -0.9999845 0.00557971 0 0.1467719 0.9891704 0 -0.07802546 0.9969514 0 0.9707711 0.2400074 0 -0.146777 -0.9891696 0 0.07802587 -0.9969514 0 0.2005624 -0.979681 0 -0.8577058 0.514141 0 -0.979681 -0.2005624 0 -0.9887217 0.1497648 0 0.7601204 -0.6497824 0 0.8577062 -0.5141403 0 0.9260015 0.3775199 0 0.4890048 -0.8722811 0 -0.4536027 0.891204 0 -0.9930175 -0.1179679 0 -0.9987977 0.04902356 0 -0.9700422 -0.2429367 0 -0.0460034 -0.9989413 0 -0.673828 0.7388883 0 0.149764 0.9887218 0 0.5932334 -0.8050307 0 0.8345566 -0.5509222 0 0.8561471 -0.5167323 0 0.9989414 -0.04600191 0 0.5167286 0.8561492 0 0.8722839 0.4889999 0 0.5509232 0.8345561 0 0.3775228 -0.9260003 0 0.4536058 -0.8912025 0 -0.9625734 0.2710214 0 -0.5167348 -0.8561455 0 -0.4247806 -0.9052963 0 -0.5932338 0.8050303 0 -0.427516 -0.9040079 0 0.9040077 -0.4275162 0 0.9818584 -0.1896154 0 0.2400069 -0.9707712 0 -0.805031 -0.5932329 0 -0.04901987 -0.9987978 0 0.8032317 0.5956668 0 -0.9052971 0.4247792 0 0.6738299 -0.7388866 0 0.30943 0.9509223 0 -0.9989414 0.04600191 0 0.387834 0.9217292 0 -0.8561447 0.5167363 0 0.9969515 0.07802528 0 0.7855889 -0.6187489 0 -0.5602002 0.8283573 0 0.9217283 -0.3878362 0 0.336934 -0.9415284 0 0.5956676 -0.8032311 0 -0.3878372 -0.921728 0 -0.9415287 -0.3369328 0 -0.5509203 -0.834558 0 0.9891704 -0.1467715 0 -0.7031548 0.7110369 0 -0.005580186 -0.9999845 0 -0.3775237 0.926 0 0.6715897 -0.7409232 0 0.711041 0.7031505 0 0.2429344 -0.9700427 0 0.9052964 -0.4247804 0 -0.2400055 0.9707716 0 0.3397782 -0.9405056 0 -0.5141385 -0.8577073 0 -0.9707716 -0.2400052 0 0.9987975 -0.04902559 0 0.424782 0.9052957 0 0.005580127 0.9999845 0 0.189615 0.9818585 0 -0.9260008 -0.3775219 0 -0.9040072 0.4275173 0 -0.7388876 -0.6738288 0 -0.8345547 0.5509253 0 -0.9405062 -0.3397767 0 -0.9891707 0.1467694 0 -0.5956665 0.803232 0 -0.981859 0.1896128 0 -0.7409223 -0.6715908 0 -0.4890027 0.8722823 0 0.04600238 0.9989414 0 -0.7855846 0.6187545 0 0.9700426 0.2429348 0 0.9930174 0.1179685 0 0.8912032 0.4536042 0 -0.9217299 0.3878325 0 -0.872284 -0.4889999 0 0.988722 -0.1497626 0 0.4275163 0.9040077 0 -0.3397771 0.940506 0 0.7031522 -0.7110393 0 0.2710221 0.9625732 0 -0.3369338 0.9415284 0 -0.8032317 -0.5956667 0 0.9509224 -0.3094295 0 -0.9969513 -0.07802665 0 -0.1896148 -0.9818586 0 -0.2429357 0.9700424 0 0.6497777 0.7601243 0 -0.30943 -0.9509223 0 -0.6187527 -0.7855859 0 0.7409233 0.6715897 0 -0.1497641 -0.9887218 0 -0.1179703 0.9930172 0 -0.6715914 0.7409217 0 -0.8912029 -0.4536049 0 -0.2710232 -0.9625729 0 -0.9509214 0.3094329 0 0.5602043 -0.8283545 0 0.9405061 0.3397771 0 -0.2005619 0.9796811 0 0.9796815 0.20056 0 -0.711041 -0.7031505 0 -0.9999845 0.005580782 0 0.1467719 0.9891704 0 -0.07802551 0.9969514 0 0.9707721 0.2400032 0 -0.146777 -0.9891697 0 0.07802551 -0.9969514 0 0.2005615 -0.9796811 0 -0.8577068 0.5141394 0 -0.979681 -0.2005624 0 0.7601182 -0.6497849 0 0.8577053 -0.5141418 0 0.9260007 0.3775218 0 0.489003 -0.8722822 0 -0.4536028 0.891204 0 -0.9930172 -0.11797 0 -0.9987975 0.04902553 0 -0.9700422 -0.2429367 0 -0.04600346 -0.9989413 0 -0.6738286 0.7388878 0 0.149764 0.9887219 0 0.5932339 -0.8050302 0 0.8345587 -0.5509192 0 0.8561453 -0.5167354 0 0.9989413 -0.04600405 0 0.5167282 0.8561495 0 0.872282 0.4890033 0 0.5509232 0.8345561 0 0.3775228 -0.9260003 0 0.453604 -0.8912034 0 -0.9625733 0.2710215 0 -0.5167344 -0.8561459 0 -0.4247807 -0.9052963 0 -0.5932334 0.8050306 0 -0.4275155 -0.904008 0 0.904007 -0.4275178 0 - + @@ -126,7 +126,7 @@ - 0.8333331 0.2284705 0.6670259 0.2202934 0.6847816 0.2895487 0.4999998 0.380784 0.4962728 0.4565812 0.6418427 0.4561411 0.1666665 0.6854107 0.1703934 0.6096133 0.02482336 0.6100537 0.6575096 0.6247733 0.5037266 0.6096135 0.4999997 0.6854107 0.3491982 0.6096133 0.3336923 0.6772334 0.4999997 0.6854107 0.4999998 0.8377238 0.4962729 0.9135212 0.6418428 0.9130808 0.8333334 0.3807836 0.8370602 0.3049864 0.6914901 0.3054268 0.4999997 0.6854107 0.3336923 0.6772334 0.3514479 0.7464888 0.009156286 0.1367942 0.1629393 0.1519541 0.1666665 0.07615667 0.1666666 0.5330973 0.1629397 0.6088947 0.3085097 0.6084543 0.1666667 0.2284705 0.1703937 0.1526729 0.0248236 0.1531133 0.3174679 0.1519544 0.3329738 0.08433431 0.1666665 0.07615667 0.1666665 0.07615667 0.3329738 0.08433431 0.3152182 0.01507902 0.4999995 0.533097 0.5037266 0.4572998 0.3581564 0.4577399 0.9908405 0.4724596 0.8370586 0.4572998 0.8333316 0.533097 0.1666665 0.8377238 0.1703934 0.7619265 0.0248233 0.7623672 0.6825311 0.4573 0.6670255 0.5249196 0.8333316 0.533097 0.1666666 0.3807838 0.1629394 0.4565812 0.3085094 0.4561413 0.8333316 0.533097 0.6670255 0.5249196 0.6847811 0.5941753 0.4999998 0.07615667 0.5037268 3.5928e-4 0.3581568 7.99473e-4 0.9908428 0.0155183 0.8370597 3.5928e-4 0.8333329 0.07615667 0.8333331 0.2284705 0.8296062 0.3042677 0.9751763 0.3038272 0.6825312 3.59483e-4 0.6670258 0.06797969 0.8333329 0.07615667 0.4999997 0.6854107 0.4962725 0.761208 0.6418426 0.7607679 0.8333329 0.07615667 0.6670258 0.06797969 0.6847816 0.1372352 0.1666665 0.07615667 0.1703937 3.5928e-4 0.0248236 7.9927e-4 0.3424896 0.2891077 0.4962726 0.3042675 0.4999997 0.2284702 0.8333316 0.533097 0.8296046 0.6088943 0.9751736 0.6084539 0.6508013 0.3042676 0.666307 0.2366476 0.4999997 0.2284702 0.8333329 0.07615667 0.8296064 0.1519539 0.9751762 0.151513 0.4999997 0.2284702 0.5037266 0.1526729 0.3581568 0.153113 0.4999997 0.2284702 0.666307 0.2366476 0.6485514 0.167392 0.6825315 0.1526731 0.6670259 0.2202934 0.8333331 0.2284705 0.9908432 0.1678324 0.83706 0.1526732 0.8333331 0.2284705 0.4999998 0.07615667 0.6663073 0.08433413 0.6485515 0.0150786 0.6508013 0.1519539 0.6663073 0.08433413 0.4999998 0.07615667 0.3424896 0.136794 0.4962729 0.1519536 0.4999998 0.07615667 0.1666666 0.3807838 3.5928e-4 0.3726064 0.01811486 0.4418617 0.01586496 0.3049864 3.5928e-4 0.3726064 0.1666666 0.3807838 0.3241766 0.3201467 0.1703937 0.3049865 0.1666666 0.3807838 0.1666665 0.8377238 0.3329738 0.8459008 0.3152181 0.7766456 0.3174682 0.9135208 0.3329738 0.8459008 0.1666665 0.8377238 0.009156525 0.8983618 0.1629398 0.9135212 0.1666665 0.8377238 0.4999995 0.533097 0.6663069 0.5412747 0.6485512 0.4720189 0.6508011 0.6088945 0.6663069 0.5412747 0.4999995 0.533097 0.3424895 0.5937348 0.4962726 0.6088946 0.4999995 0.533097 0.1666667 0.2284705 0.332974 0.236648 0.3152183 0.1673923 0.3174682 0.3042678 0.332974 0.236648 0.1666667 0.2284705 0.009156405 0.2891078 0.1629396 0.3042678 0.1666667 0.2284705 0.1666666 0.5330973 3.5928e-4 0.5249199 0.0181148 0.5941755 0.01586484 0.4572998 3.5928e-4 0.5249199 0.1666666 0.5330973 0.3241766 0.4724598 0.1703935 0.4573 0.1666666 0.5330973 0.8333334 0.3807836 0.9996408 0.3889608 0.9818849 0.3197051 0.9841349 0.4565806 0.9996408 0.3889608 0.8333334 0.3807836 0.6758232 0.4414213 0.8296065 0.4565806 0.8333334 0.3807836 0.4999998 0.8377238 0.3336925 0.8295468 0.3514482 0.8988022 0.3491983 0.7619265 0.3336925 0.8295468 0.4999998 0.8377238 0.6575098 0.7770863 0.5037268 0.7619268 0.4999998 0.8377238 0.1666665 0.6854107 0.3329739 0.693588 0.3152182 0.6243325 0.3174681 0.7612078 0.3329739 0.693588 0.1666665 0.6854107 0.009156525 0.7460486 0.1629395 0.761208 0.1666665 0.6854107 0.4999998 0.380784 0.3336926 0.3726064 0.3514482 0.4418621 0.3491984 0.3049864 0.3336926 0.3726064 0.4999998 0.380784 0.6575098 0.3201462 0.5037268 0.3049868 0.4999998 0.380784 0.8333331 0.2284705 0.6847816 0.2895487 0.8296062 0.3042677 0.4999998 0.380784 0.6418427 0.4561411 0.666307 0.3889614 0.1666665 0.6854107 0.02482336 0.6100537 3.5928e-4 0.6772335 0.6575096 0.6247733 0.4999997 0.6854107 0.6663068 0.6935883 0.3491982 0.6096133 0.4999997 0.6854107 0.5037266 0.6096135 0.4999998 0.8377238 0.6418428 0.9130808 0.6663071 0.8459012 0.8333334 0.3807836 0.6914901 0.3054268 0.6670259 0.3726064 0.4999997 0.6854107 0.3514479 0.7464888 0.4962725 0.761208 0.009156286 0.1367942 0.1666665 0.07615667 3.5928e-4 0.06797891 0.1666666 0.5330973 0.3085097 0.6084543 0.3329737 0.5412747 0.1666667 0.2284705 0.0248236 0.1531133 3.5928e-4 0.2202929 0.3174679 0.1519544 0.1666665 0.07615667 0.1629393 0.1519541 0.1666665 0.07615667 0.3152182 0.01507902 0.1703937 3.5928e-4 0.4999995 0.533097 0.3581564 0.4577399 0.3336923 0.5249196 0.9908405 0.4724596 0.8333316 0.533097 0.9996377 0.5412743 0.1666665 0.8377238 0.0248233 0.7623672 3.5928e-4 0.8295466 0.6825311 0.4573 0.8333316 0.533097 0.8370586 0.4572998 0.1666666 0.3807838 0.3085094 0.4561413 0.3329738 0.3889614 0.8333316 0.533097 0.6847811 0.5941753 0.8296046 0.6088943 0.4999998 0.07615667 0.3581568 7.99473e-4 0.3336923 0.06797909 0.9908428 0.0155183 0.8333329 0.07615667 0.9996401 0.08433347 0.8333331 0.2284705 0.9751763 0.3038272 0.9996405 0.2366473 0.6825312 3.59483e-4 0.8333329 0.07615667 0.8370597 3.5928e-4 0.4999997 0.6854107 0.6418426 0.7607679 0.6663068 0.6935883 0.8333329 0.07615667 0.6847816 0.1372352 0.8296064 0.1519539 0.1666665 0.07615667 0.0248236 7.9927e-4 3.5928e-4 0.06797891 0.3424896 0.2891077 0.4999997 0.2284702 0.3336923 0.2202927 0.8333316 0.533097 0.9751736 0.6084539 0.9996377 0.5412743 0.6508013 0.3042676 0.4999997 0.2284702 0.4962726 0.3042675 0.8333329 0.07615667 0.9751762 0.151513 0.9996401 0.08433347 0.4999997 0.2284702 0.3581568 0.153113 0.3336923 0.2202927 0.4999997 0.2284702 0.6485514 0.167392 0.5037266 0.1526729 0.6825315 0.1526731 0.8333331 0.2284705 0.83706 0.1526732 0.9908432 0.1678324 0.8333331 0.2284705 0.9996405 0.2366473 0.4999998 0.07615667 0.6485515 0.0150786 0.5037268 3.5928e-4 0.6508013 0.1519539 0.4999998 0.07615667 0.4962729 0.1519536 0.3424896 0.136794 0.4999998 0.07615667 0.3336923 0.06797909 0.1666666 0.3807838 0.01811486 0.4418617 0.1629394 0.4565812 0.01586496 0.3049864 0.1666666 0.3807838 0.1703937 0.3049865 0.3241766 0.3201467 0.1666666 0.3807838 0.3329738 0.3889614 0.1666665 0.8377238 0.3152181 0.7766456 0.1703934 0.7619265 0.3174682 0.9135208 0.1666665 0.8377238 0.1629398 0.9135212 0.009156525 0.8983618 0.1666665 0.8377238 3.5928e-4 0.8295466 0.4999995 0.533097 0.6485512 0.4720189 0.5037266 0.4572998 0.6508011 0.6088945 0.4999995 0.533097 0.4962726 0.6088946 0.3424895 0.5937348 0.4999995 0.533097 0.3336923 0.5249196 0.1666667 0.2284705 0.3152183 0.1673923 0.1703937 0.1526729 0.3174682 0.3042678 0.1666667 0.2284705 0.1629396 0.3042678 0.009156405 0.2891078 0.1666667 0.2284705 3.5928e-4 0.2202929 0.1666666 0.5330973 0.0181148 0.5941755 0.1629397 0.6088947 0.01586484 0.4572998 0.1666666 0.5330973 0.1703935 0.4573 0.3241766 0.4724598 0.1666666 0.5330973 0.3329737 0.5412747 0.8333334 0.3807836 0.9818849 0.3197051 0.8370602 0.3049864 0.9841349 0.4565806 0.8333334 0.3807836 0.8296065 0.4565806 0.6758232 0.4414213 0.8333334 0.3807836 0.6670259 0.3726064 0.4999998 0.8377238 0.3514482 0.8988022 0.4962729 0.9135212 0.3491983 0.7619265 0.4999998 0.8377238 0.5037268 0.7619268 0.6575098 0.7770863 0.4999998 0.8377238 0.6663071 0.8459012 0.1666665 0.6854107 0.3152182 0.6243325 0.1703934 0.6096133 0.3174681 0.7612078 0.1666665 0.6854107 0.1629395 0.761208 0.009156525 0.7460486 0.1666665 0.6854107 3.5928e-4 0.6772335 0.4999998 0.380784 0.3514482 0.4418621 0.4962728 0.4565812 0.3491984 0.3049864 0.4999998 0.380784 0.5037268 0.3049868 0.6575098 0.3201462 0.4999998 0.380784 0.666307 0.3889614 0.8333331 0.2284705 0.6670259 0.2202934 0.6847816 0.2895487 0.4999998 0.380784 0.4962728 0.4565812 0.6418427 0.4561411 0.1666665 0.6854107 0.1703934 0.6096133 0.02482336 0.6100537 0.6575096 0.6247733 0.5037266 0.6096135 0.4999997 0.6854107 0.3491982 0.6096133 0.3336923 0.6772334 0.4999997 0.6854107 0.4999998 0.8377238 0.4962729 0.9135212 0.6418428 0.9130808 0.8333334 0.3807836 0.8370602 0.3049864 0.6914901 0.3054268 0.4999997 0.6854107 0.3336923 0.6772334 0.3514479 0.7464888 0.009156286 0.1367942 0.1629393 0.1519541 0.1666665 0.07615667 0.1666666 0.5330973 0.1629397 0.6088947 0.3085097 0.6084543 0.1666667 0.2284705 0.1703937 0.1526729 0.0248236 0.1531133 0.3174679 0.1519544 0.3329738 0.08433431 0.1666665 0.07615667 0.1666665 0.07615667 0.3329738 0.08433431 0.3152182 0.01507902 0.4999995 0.533097 0.5037266 0.4572998 0.3581564 0.4577399 0.9908405 0.4724596 0.8370586 0.4572998 0.8333316 0.533097 0.1666665 0.8377238 0.1703934 0.7619265 0.0248233 0.7623672 0.6825311 0.4573 0.6670255 0.5249196 0.8333316 0.533097 0.1666666 0.3807838 0.1629394 0.4565812 0.3085094 0.4561413 0.8333316 0.533097 0.6670255 0.5249196 0.6847811 0.5941753 0.4999998 0.07615667 0.5037268 3.5928e-4 0.3581568 7.99473e-4 0.9908428 0.0155183 0.8370597 3.5928e-4 0.8333329 0.07615667 0.8333331 0.2284705 0.8296062 0.3042677 0.9751763 0.3038272 0.6825312 3.59483e-4 0.6670258 0.06797969 0.8333329 0.07615667 0.4999997 0.6854107 0.4962725 0.761208 0.6418426 0.7607679 0.8333329 0.07615667 0.6670258 0.06797969 0.6847816 0.1372352 0.1666665 0.07615667 0.1703937 3.5928e-4 0.0248236 7.9927e-4 0.3424896 0.2891077 0.4962726 0.3042675 0.4999997 0.2284702 0.8333316 0.533097 0.8296046 0.6088943 0.9751736 0.6084539 0.6508013 0.3042676 0.666307 0.2366476 0.4999997 0.2284702 0.8333329 0.07615667 0.8296064 0.1519539 0.9751762 0.151513 0.4999997 0.2284702 0.5037266 0.1526729 0.3581568 0.153113 0.4999997 0.2284702 0.666307 0.2366476 0.6485514 0.167392 0.6825315 0.1526731 0.6670259 0.2202934 0.8333331 0.2284705 0.9908432 0.1678324 0.83706 0.1526732 0.8333331 0.2284705 0.4999998 0.07615667 0.6663073 0.08433413 0.6485515 0.0150786 0.6508013 0.1519539 0.6663073 0.08433413 0.4999998 0.07615667 0.3424896 0.136794 0.4962729 0.1519536 0.4999998 0.07615667 0.1666666 0.3807838 3.5928e-4 0.3726064 0.01811486 0.4418617 0.01586496 0.3049864 3.5928e-4 0.3726064 0.1666666 0.3807838 0.3241766 0.3201467 0.1703937 0.3049865 0.1666666 0.3807838 0.1666665 0.8377238 0.3329738 0.8459008 0.3152181 0.7766456 0.3174682 0.9135208 0.3329738 0.8459008 0.1666665 0.8377238 0.009156525 0.8983618 0.1629398 0.9135212 0.1666665 0.8377238 0.4999995 0.533097 0.6663069 0.5412747 0.6485512 0.4720189 0.6508011 0.6088945 0.6663069 0.5412747 0.4999995 0.533097 0.3424895 0.5937348 0.4962726 0.6088946 0.4999995 0.533097 0.1666667 0.2284705 0.332974 0.236648 0.3152183 0.1673923 0.3174682 0.3042678 0.332974 0.236648 0.1666667 0.2284705 0.009156405 0.2891078 0.1629396 0.3042678 0.1666667 0.2284705 0.1666666 0.5330973 3.5928e-4 0.5249199 0.0181148 0.5941755 0.01586484 0.4572998 3.5928e-4 0.5249199 0.1666666 0.5330973 0.3241766 0.4724598 0.1703935 0.4573 0.1666666 0.5330973 0.8333334 0.3807836 0.9996408 0.3889608 0.9818849 0.3197051 0.9841349 0.4565806 0.9996408 0.3889608 0.8333334 0.3807836 0.6758232 0.4414213 0.8296065 0.4565806 0.8333334 0.3807836 0.4999998 0.8377238 0.3336925 0.8295468 0.3514482 0.8988022 0.3491983 0.7619265 0.3336925 0.8295468 0.4999998 0.8377238 0.6575098 0.7770863 0.5037268 0.7619268 0.4999998 0.8377238 0.1666665 0.6854107 0.3329739 0.693588 0.3152182 0.6243325 0.3174681 0.7612078 0.3329739 0.693588 0.1666665 0.6854107 0.009156525 0.7460486 0.1629395 0.761208 0.1666665 0.6854107 0.4999998 0.380784 0.3336926 0.3726064 0.3514482 0.4418621 0.3491984 0.3049864 0.3336926 0.3726064 0.4999998 0.380784 0.6575098 0.3201462 0.5037268 0.3049868 0.4999998 0.380784 0.8333331 0.2284705 0.6847816 0.2895487 0.8296062 0.3042677 0.4999998 0.380784 0.6418427 0.4561411 0.666307 0.3889614 0.1666665 0.6854107 0.02482336 0.6100537 3.5928e-4 0.6772335 0.6575096 0.6247733 0.4999997 0.6854107 0.6663068 0.6935883 0.3491982 0.6096133 0.4999997 0.6854107 0.5037266 0.6096135 0.4999998 0.8377238 0.6418428 0.9130808 0.6663071 0.8459012 0.8333334 0.3807836 0.6914901 0.3054268 0.6670259 0.3726064 0.4999997 0.6854107 0.3514479 0.7464888 0.4962725 0.761208 0.009156286 0.1367942 0.1666665 0.07615667 3.5928e-4 0.06797891 0.1666666 0.5330973 0.3085097 0.6084543 0.3329737 0.5412747 0.1666667 0.2284705 0.0248236 0.1531133 3.5928e-4 0.2202929 0.3174679 0.1519544 0.1666665 0.07615667 0.1629393 0.1519541 0.1666665 0.07615667 0.3152182 0.01507902 0.1703937 3.5928e-4 0.4999995 0.533097 0.3581564 0.4577399 0.3336923 0.5249196 0.9908405 0.4724596 0.8333316 0.533097 0.9996377 0.5412743 0.1666665 0.8377238 0.0248233 0.7623672 3.5928e-4 0.8295466 0.6825311 0.4573 0.8333316 0.533097 0.8370586 0.4572998 0.1666666 0.3807838 0.3085094 0.4561413 0.3329738 0.3889614 0.8333316 0.533097 0.6847811 0.5941753 0.8296046 0.6088943 0.4999998 0.07615667 0.3581568 7.99473e-4 0.3336923 0.06797909 0.9908428 0.0155183 0.8333329 0.07615667 0.9996401 0.08433347 0.8333331 0.2284705 0.9751763 0.3038272 0.9996405 0.2366473 0.6825312 3.59483e-4 0.8333329 0.07615667 0.8370597 3.5928e-4 0.4999997 0.6854107 0.6418426 0.7607679 0.6663068 0.6935883 0.8333329 0.07615667 0.6847816 0.1372352 0.8296064 0.1519539 0.1666665 0.07615667 0.0248236 7.9927e-4 3.5928e-4 0.06797891 0.3424896 0.2891077 0.4999997 0.2284702 0.3336923 0.2202927 0.8333316 0.533097 0.9751736 0.6084539 0.9996377 0.5412743 0.6508013 0.3042676 0.4999997 0.2284702 0.4962726 0.3042675 0.8333329 0.07615667 0.9751762 0.151513 0.9996401 0.08433347 0.4999997 0.2284702 0.3581568 0.153113 0.3336923 0.2202927 0.4999997 0.2284702 0.6485514 0.167392 0.5037266 0.1526729 0.6825315 0.1526731 0.8333331 0.2284705 0.83706 0.1526732 0.9908432 0.1678324 0.8333331 0.2284705 0.9996405 0.2366473 0.4999998 0.07615667 0.6485515 0.0150786 0.5037268 3.5928e-4 0.6508013 0.1519539 0.4999998 0.07615667 0.4962729 0.1519536 0.3424896 0.136794 0.4999998 0.07615667 0.3336923 0.06797909 0.1666666 0.3807838 0.01811486 0.4418617 0.1629394 0.4565812 0.01586496 0.3049864 0.1666666 0.3807838 0.1703937 0.3049865 0.3241766 0.3201467 0.1666666 0.3807838 0.3329738 0.3889614 0.1666665 0.8377238 0.3152181 0.7766456 0.1703934 0.7619265 0.3174682 0.9135208 0.1666665 0.8377238 0.1629398 0.9135212 0.009156525 0.8983618 0.1666665 0.8377238 3.5928e-4 0.8295466 0.4999995 0.533097 0.6485512 0.4720189 0.5037266 0.4572998 0.6508011 0.6088945 0.4999995 0.533097 0.4962726 0.6088946 0.3424895 0.5937348 0.4999995 0.533097 0.3336923 0.5249196 0.1666667 0.2284705 0.3152183 0.1673923 0.1703937 0.1526729 0.3174682 0.3042678 0.1666667 0.2284705 0.1629396 0.3042678 0.009156405 0.2891078 0.1666667 0.2284705 3.5928e-4 0.2202929 0.1666666 0.5330973 0.0181148 0.5941755 0.1629397 0.6088947 0.01586484 0.4572998 0.1666666 0.5330973 0.1703935 0.4573 0.3241766 0.4724598 0.1666666 0.5330973 0.3329737 0.5412747 0.8333334 0.3807836 0.9818849 0.3197051 0.8370602 0.3049864 0.9841349 0.4565806 0.8333334 0.3807836 0.8296065 0.4565806 0.6758232 0.4414213 0.8333334 0.3807836 0.6670259 0.3726064 0.4999998 0.8377238 0.3514482 0.8988022 0.4962729 0.9135212 0.3491983 0.7619265 0.4999998 0.8377238 0.5037268 0.7619268 0.6575098 0.7770863 0.4999998 0.8377238 0.6663071 0.8459012 0.1666665 0.6854107 0.3152182 0.6243325 0.1703934 0.6096133 0.3174681 0.7612078 0.1666665 0.6854107 0.1629395 0.761208 0.009156525 0.7460486 0.1666665 0.6854107 3.5928e-4 0.6772335 0.4999998 0.380784 0.3514482 0.4418621 0.4962728 0.4565812 0.3491984 0.3049864 0.4999998 0.380784 0.5037268 0.3049868 0.6575098 0.3201462 0.4999998 0.380784 0.666307 0.3889614 0.6670259 0.2202934 0.6847816 0.2895487 0.6847816 0.2895487 0.3152182 0.01507902 0.1703937 3.5928e-4 0.1703937 3.5928e-4 0.0181148 0.5941755 0.1629397 0.6088947 0.1629397 0.6088947 0.8370586 0.4572998 0.6825311 0.4573 0.6825311 0.4573 0.3241766 0.4724598 0.1703935 0.4573 0.1703935 0.4573 0.8296064 0.1519539 0.9751762 0.151513 0.9751762 0.151513 0.5037266 0.1526729 0.3581568 0.153113 0.3581568 0.153113 3.5928e-4 0.6772335 0.009156525 0.7460486 0.009156525 0.7460486 0.4962728 0.4565812 0.6418427 0.4561411 0.6418427 0.4561411 3.5928e-4 0.3726064 0.01811486 0.4418617 0.01811486 0.4418617 0.6825311 0.4573 0.6670255 0.5249196 0.6670255 0.5249196 0.6914901 0.3054268 0.6670259 0.3726064 0.6670259 0.3726064 0.6847816 0.1372352 0.8296064 0.1519539 0.8296064 0.1519539 0.3336923 0.06797909 0.3424896 0.136794 0.3424896 0.136794 0.6825315 0.1526731 0.6670259 0.2202934 0.6670259 0.2202934 0.3336925 0.8295468 0.3514482 0.8988022 0.3514482 0.8988022 0.3581568 7.99473e-4 0.3336923 0.06797909 0.3336923 0.06797909 0.1703937 0.3049865 0.01586496 0.3049864 0.01586496 0.3049864 0.6575096 0.6247733 0.5037266 0.6096135 0.5037266 0.6096135 0.6418427 0.4561411 0.666307 0.3889614 0.666307 0.3889614 0.1629396 0.3042678 0.3174682 0.3042678 0.3174682 0.3042678 0.666307 0.2366476 0.6485514 0.167392 0.6485514 0.167392 0.6575098 0.3201462 0.5037268 0.3049868 0.5037268 0.3049868 0.9751763 0.3038272 0.9996405 0.2366473 0.9996405 0.2366473 0.6418428 0.9130808 0.6663071 0.8459012 0.6663071 0.8459012 0.0248233 0.7623672 3.5928e-4 0.8295466 3.5928e-4 0.8295466 0.5037266 0.6096135 0.3491982 0.6096133 0.3491982 0.6096133 0.02482336 0.6100537 3.5928e-4 0.6772335 3.5928e-4 0.6772335 0.3241766 0.3201467 0.1703937 0.3049865 0.1703937 0.3049865 0.1703934 0.6096133 0.02482336 0.6100537 0.02482336 0.6100537 0.01811486 0.4418617 0.1629394 0.4565812 0.1629394 0.4565812 0.1703937 3.5928e-4 0.0248236 7.9927e-4 0.0248236 7.9927e-4 3.5928e-4 0.8295466 0.009156525 0.8983618 0.009156525 0.8983618 0.9908432 0.1678324 0.83706 0.1526732 0.83706 0.1526732 0.3514482 0.8988022 0.4962729 0.9135212 0.4962729 0.9135212 0.5037268 0.3049868 0.3491984 0.3049864 0.3491984 0.3049864 0.8296062 0.3042677 0.9751763 0.3038272 0.9751763 0.3038272 0.0248236 7.9927e-4 3.5928e-4 0.06797891 3.5928e-4 0.06797891 0.0248236 0.1531133 3.5928e-4 0.2202929 3.5928e-4 0.2202929 0.6670258 0.06797969 0.6847816 0.1372352 0.6847816 0.1372352 0.6418426 0.7607679 0.6663068 0.6935883 0.6663068 0.6935883 0.1629395 0.761208 0.3174681 0.7612078 0.3174681 0.7612078 0.1629397 0.6088947 0.3085097 0.6084543 0.3085097 0.6084543 3.5928e-4 0.5249199 0.0181148 0.5941755 0.0181148 0.5941755 0.4962729 0.9135212 0.6418428 0.9130808 0.6418428 0.9130808 0.6758232 0.4414213 0.8296065 0.4565806 0.8296065 0.4565806 0.3424896 0.2891077 0.4962726 0.3042675 0.4962726 0.3042675 0.6663069 0.5412747 0.6485512 0.4720189 0.6485512 0.4720189 0.1629398 0.9135212 0.3174682 0.9135208 0.3174682 0.9135208 0.01586484 0.4572998 3.5928e-4 0.5249199 3.5928e-4 0.5249199 0.8296046 0.6088943 0.9751736 0.6084539 0.9751736 0.6084539 0.6508011 0.6088945 0.6663069 0.5412747 0.6663069 0.5412747 0.6575098 0.7770863 0.5037268 0.7619268 0.5037268 0.7619268 0.01586496 0.3049864 3.5928e-4 0.3726064 3.5928e-4 0.3726064 3.5928e-4 0.06797891 0.009156286 0.1367942 0.009156286 0.1367942 0.9751736 0.6084539 0.9996377 0.5412743 0.9996377 0.5412743 0.6508013 0.3042676 0.666307 0.2366476 0.666307 0.2366476 0.9818849 0.3197051 0.8370602 0.3049864 0.8370602 0.3049864 0.4962726 0.6088946 0.6508011 0.6088945 0.6508011 0.6088945 0.1629394 0.4565812 0.3085094 0.4561413 0.3085094 0.4561413 0.3581564 0.4577399 0.3336923 0.5249196 0.3336923 0.5249196 0.3491984 0.3049864 0.3336926 0.3726064 0.3336926 0.3726064 0.3152181 0.7766456 0.1703934 0.7619265 0.1703934 0.7619265 0.1629393 0.1519541 0.3174679 0.1519544 0.3174679 0.1519544 0.009156525 0.8983618 0.1629398 0.9135212 0.1629398 0.9135212 0.3336923 0.5249196 0.3424895 0.5937348 0.3424895 0.5937348 0.3329738 0.08433431 0.3152182 0.01507902 0.3152182 0.01507902 0.9996377 0.5412743 0.9908405 0.4724596 0.9908405 0.4724596 0.6825312 3.59483e-4 0.6670258 0.06797969 0.6670258 0.06797969 0.3329739 0.693588 0.3152182 0.6243325 0.3152182 0.6243325 0.009156286 0.1367942 0.1629393 0.1519541 0.1629393 0.1519541 0.3336923 0.2202927 0.3424896 0.2891077 0.3424896 0.2891077 0.5037268 0.7619268 0.3491983 0.7619265 0.3491983 0.7619265 0.9996401 0.08433347 0.9908428 0.0155183 0.9908428 0.0155183 0.3174681 0.7612078 0.3329739 0.693588 0.3329739 0.693588 0.1703935 0.4573 0.01586484 0.4572998 0.01586484 0.4572998 0.4962729 0.1519536 0.6508013 0.1519539 0.6508013 0.1519539 0.6485515 0.0150786 0.5037268 3.5928e-4 0.5037268 3.5928e-4 0.1703934 0.7619265 0.0248233 0.7623672 0.0248233 0.7623672 0.3491983 0.7619265 0.3336925 0.8295468 0.3336925 0.8295468 0.4962726 0.3042675 0.6508013 0.3042676 0.6508013 0.3042676 0.3424895 0.5937348 0.4962726 0.6088946 0.4962726 0.6088946 0.3329738 0.3889614 0.3241766 0.3201467 0.3241766 0.3201467 0.9841349 0.4565806 0.9996408 0.3889608 0.9996408 0.3889608 0.9996405 0.2366473 0.9908432 0.1678324 0.9908432 0.1678324 0.332974 0.236648 0.3152183 0.1673923 0.3152183 0.1673923 0.1703937 0.1526729 0.0248236 0.1531133 0.0248236 0.1531133 0.3336926 0.3726064 0.3514482 0.4418621 0.3514482 0.4418621 0.6670255 0.5249196 0.6847811 0.5941753 0.6847811 0.5941753 0.3174682 0.3042678 0.332974 0.236648 0.332974 0.236648 0.6663068 0.6935883 0.6575096 0.6247733 0.6575096 0.6247733 0.9751762 0.151513 0.9996401 0.08433347 0.9996401 0.08433347 0.3085094 0.4561413 0.3329738 0.3889614 0.3329738 0.3889614 0.3424896 0.136794 0.4962729 0.1519536 0.4962729 0.1519536 0.6670259 0.3726064 0.6758232 0.4414213 0.6758232 0.4414213 0.3152183 0.1673923 0.1703937 0.1526729 0.1703937 0.1526729 0.9908405 0.4724596 0.8370586 0.4572998 0.8370586 0.4572998 0.666307 0.3889614 0.6575098 0.3201462 0.6575098 0.3201462 0.9996408 0.3889608 0.9818849 0.3197051 0.9818849 0.3197051 0.009156525 0.7460486 0.1629395 0.761208 0.1629395 0.761208 0.6663073 0.08433413 0.6485515 0.0150786 0.6485515 0.0150786 0.3514482 0.4418621 0.4962728 0.4565812 0.4962728 0.4565812 0.3329737 0.5412747 0.3241766 0.4724598 0.3241766 0.4724598 0.9908428 0.0155183 0.8370597 3.5928e-4 0.8370597 3.5928e-4 0.3581568 0.153113 0.3336923 0.2202927 0.3336923 0.2202927 0.3174682 0.9135208 0.3329738 0.8459008 0.3329738 0.8459008 3.5928e-4 0.2202929 0.009156405 0.2891078 0.009156405 0.2891078 0.3174679 0.1519544 0.3329738 0.08433431 0.3329738 0.08433431 0.8296065 0.4565806 0.9841349 0.4565806 0.9841349 0.4565806 0.009156405 0.2891078 0.1629396 0.3042678 0.1629396 0.3042678 0.5037268 3.5928e-4 0.3581568 7.99473e-4 0.3581568 7.99473e-4 0.4962725 0.761208 0.6418426 0.7607679 0.6418426 0.7607679 0.6847811 0.5941753 0.8296046 0.6088943 0.8296046 0.6088943 0.6485514 0.167392 0.5037266 0.1526729 0.5037266 0.1526729 0.3329738 0.8459008 0.3152181 0.7766456 0.3152181 0.7766456 0.3152182 0.6243325 0.1703934 0.6096133 0.1703934 0.6096133 0.8370602 0.3049864 0.6914901 0.3054268 0.6914901 0.3054268 0.6847816 0.2895487 0.8296062 0.3042677 0.8296062 0.3042677 0.3491982 0.6096133 0.3336923 0.6772334 0.3336923 0.6772334 0.3336923 0.6772334 0.3514479 0.7464888 0.3514479 0.7464888 0.3085097 0.6084543 0.3329737 0.5412747 0.3329737 0.5412747 0.6663071 0.8459012 0.6575098 0.7770863 0.6575098 0.7770863 0.6508013 0.1519539 0.6663073 0.08433413 0.6663073 0.08433413 0.6485512 0.4720189 0.5037266 0.4572998 0.5037266 0.4572998 0.5037266 0.4572998 0.3581564 0.4577399 0.3581564 0.4577399 0.3514479 0.7464888 0.4962725 0.761208 0.4962725 0.761208 0.83706 0.1526732 0.6825315 0.1526731 0.6825315 0.1526731 0.8370597 3.5928e-4 0.6825312 3.59483e-4 0.6825312 3.59483e-4 0.6670259 0.2202934 0.6670259 0.2202934 0.6847816 0.2895487 0.3152182 0.01507902 0.3152182 0.01507902 0.1703937 3.5928e-4 0.0181148 0.5941755 0.0181148 0.5941755 0.1629397 0.6088947 0.8370586 0.4572998 0.8370586 0.4572998 0.6825311 0.4573 0.3241766 0.4724598 0.3241766 0.4724598 0.1703935 0.4573 0.8296064 0.1519539 0.8296064 0.1519539 0.9751762 0.151513 0.5037266 0.1526729 0.5037266 0.1526729 0.3581568 0.153113 3.5928e-4 0.6772335 3.5928e-4 0.6772335 0.009156525 0.7460486 0.4962728 0.4565812 0.4962728 0.4565812 0.6418427 0.4561411 3.5928e-4 0.3726064 3.5928e-4 0.3726064 0.01811486 0.4418617 0.6825311 0.4573 0.6825311 0.4573 0.6670255 0.5249196 0.6914901 0.3054268 0.6914901 0.3054268 0.6670259 0.3726064 0.6847816 0.1372352 0.6847816 0.1372352 0.8296064 0.1519539 0.3336923 0.06797909 0.3336923 0.06797909 0.3424896 0.136794 0.6825315 0.1526731 0.6825315 0.1526731 0.6670259 0.2202934 0.3336925 0.8295468 0.3336925 0.8295468 0.3514482 0.8988022 0.3581568 7.99473e-4 0.3581568 7.99473e-4 0.3336923 0.06797909 0.1703937 0.3049865 0.1703937 0.3049865 0.01586496 0.3049864 0.6575096 0.6247733 0.6575096 0.6247733 0.5037266 0.6096135 0.6418427 0.4561411 0.6418427 0.4561411 0.666307 0.3889614 0.1629396 0.3042678 0.1629396 0.3042678 0.3174682 0.3042678 0.666307 0.2366476 0.666307 0.2366476 0.6485514 0.167392 0.6575098 0.3201462 0.6575098 0.3201462 0.5037268 0.3049868 0.9751763 0.3038272 0.9751763 0.3038272 0.9996405 0.2366473 0.6418428 0.9130808 0.6418428 0.9130808 0.6663071 0.8459012 0.0248233 0.7623672 0.0248233 0.7623672 3.5928e-4 0.8295466 0.5037266 0.6096135 0.5037266 0.6096135 0.3491982 0.6096133 0.02482336 0.6100537 0.02482336 0.6100537 3.5928e-4 0.6772335 0.3241766 0.3201467 0.3241766 0.3201467 0.1703937 0.3049865 0.1703934 0.6096133 0.1703934 0.6096133 0.02482336 0.6100537 0.01811486 0.4418617 0.01811486 0.4418617 0.1629394 0.4565812 0.1703937 3.5928e-4 0.1703937 3.5928e-4 0.0248236 7.9927e-4 3.5928e-4 0.8295466 3.5928e-4 0.8295466 0.009156525 0.8983618 0.9908432 0.1678324 0.9908432 0.1678324 0.83706 0.1526732 0.3514482 0.8988022 0.3514482 0.8988022 0.4962729 0.9135212 0.5037268 0.3049868 0.5037268 0.3049868 0.3491984 0.3049864 0.8296062 0.3042677 0.8296062 0.3042677 0.9751763 0.3038272 0.0248236 7.9927e-4 0.0248236 7.9927e-4 3.5928e-4 0.06797891 0.0248236 0.1531133 0.0248236 0.1531133 3.5928e-4 0.2202929 0.6670258 0.06797969 0.6670258 0.06797969 0.6847816 0.1372352 0.6418426 0.7607679 0.6418426 0.7607679 0.6663068 0.6935883 0.1629395 0.761208 0.1629395 0.761208 0.3174681 0.7612078 0.1629397 0.6088947 0.1629397 0.6088947 0.3085097 0.6084543 3.5928e-4 0.5249199 3.5928e-4 0.5249199 0.0181148 0.5941755 0.4962729 0.9135212 0.4962729 0.9135212 0.6418428 0.9130808 0.6758232 0.4414213 0.6758232 0.4414213 0.8296065 0.4565806 0.3424896 0.2891077 0.3424896 0.2891077 0.4962726 0.3042675 0.6663069 0.5412747 0.6663069 0.5412747 0.6485512 0.4720189 0.1629398 0.9135212 0.1629398 0.9135212 0.3174682 0.9135208 0.01586484 0.4572998 0.01586484 0.4572998 3.5928e-4 0.5249199 0.8296046 0.6088943 0.8296046 0.6088943 0.9751736 0.6084539 0.6508011 0.6088945 0.6508011 0.6088945 0.6663069 0.5412747 0.6575098 0.7770863 0.6575098 0.7770863 0.5037268 0.7619268 0.01586496 0.3049864 0.01586496 0.3049864 3.5928e-4 0.3726064 3.5928e-4 0.06797891 3.5928e-4 0.06797891 0.009156286 0.1367942 0.9751736 0.6084539 0.9751736 0.6084539 0.9996377 0.5412743 0.6508013 0.3042676 0.6508013 0.3042676 0.666307 0.2366476 0.9818849 0.3197051 0.9818849 0.3197051 0.8370602 0.3049864 0.4962726 0.6088946 0.4962726 0.6088946 0.6508011 0.6088945 0.1629394 0.4565812 0.1629394 0.4565812 0.3085094 0.4561413 0.3581564 0.4577399 0.3581564 0.4577399 0.3336923 0.5249196 0.3491984 0.3049864 0.3491984 0.3049864 0.3336926 0.3726064 0.3152181 0.7766456 0.3152181 0.7766456 0.1703934 0.7619265 0.1629393 0.1519541 0.1629393 0.1519541 0.3174679 0.1519544 0.009156525 0.8983618 0.009156525 0.8983618 0.1629398 0.9135212 0.3336923 0.5249196 0.3336923 0.5249196 0.3424895 0.5937348 0.3329738 0.08433431 0.3329738 0.08433431 0.3152182 0.01507902 0.9996377 0.5412743 0.9996377 0.5412743 0.9908405 0.4724596 0.6825312 3.59483e-4 0.6825312 3.59483e-4 0.6670258 0.06797969 0.3329739 0.693588 0.3329739 0.693588 0.3152182 0.6243325 0.009156286 0.1367942 0.009156286 0.1367942 0.1629393 0.1519541 0.3336923 0.2202927 0.3336923 0.2202927 0.3424896 0.2891077 0.5037268 0.7619268 0.5037268 0.7619268 0.3491983 0.7619265 0.9996401 0.08433347 0.9996401 0.08433347 0.9908428 0.0155183 0.3174681 0.7612078 0.3174681 0.7612078 0.3329739 0.693588 0.1703935 0.4573 0.1703935 0.4573 0.01586484 0.4572998 0.4962729 0.1519536 0.4962729 0.1519536 0.6508013 0.1519539 0.6485515 0.0150786 0.6485515 0.0150786 0.5037268 3.5928e-4 0.1703934 0.7619265 0.1703934 0.7619265 0.0248233 0.7623672 0.3491983 0.7619265 0.3491983 0.7619265 0.3336925 0.8295468 0.4962726 0.3042675 0.4962726 0.3042675 0.6508013 0.3042676 0.3424895 0.5937348 0.3424895 0.5937348 0.4962726 0.6088946 0.3329738 0.3889614 0.3329738 0.3889614 0.3241766 0.3201467 0.9841349 0.4565806 0.9841349 0.4565806 0.9996408 0.3889608 0.9996405 0.2366473 0.9996405 0.2366473 0.9908432 0.1678324 0.332974 0.236648 0.332974 0.236648 0.3152183 0.1673923 0.1703937 0.1526729 0.1703937 0.1526729 0.0248236 0.1531133 0.3336926 0.3726064 0.3336926 0.3726064 0.3514482 0.4418621 0.6670255 0.5249196 0.6670255 0.5249196 0.6847811 0.5941753 0.3174682 0.3042678 0.3174682 0.3042678 0.332974 0.236648 0.6663068 0.6935883 0.6663068 0.6935883 0.6575096 0.6247733 0.9751762 0.151513 0.9751762 0.151513 0.9996401 0.08433347 0.3085094 0.4561413 0.3085094 0.4561413 0.3329738 0.3889614 0.3424896 0.136794 0.3424896 0.136794 0.4962729 0.1519536 0.6670259 0.3726064 0.6670259 0.3726064 0.6758232 0.4414213 0.3152183 0.1673923 0.3152183 0.1673923 0.1703937 0.1526729 0.9908405 0.4724596 0.9908405 0.4724596 0.8370586 0.4572998 0.666307 0.3889614 0.666307 0.3889614 0.6575098 0.3201462 0.9996408 0.3889608 0.9996408 0.3889608 0.9818849 0.3197051 0.009156525 0.7460486 0.009156525 0.7460486 0.1629395 0.761208 0.6663073 0.08433413 0.6663073 0.08433413 0.6485515 0.0150786 0.3514482 0.4418621 0.3514482 0.4418621 0.4962728 0.4565812 0.3329737 0.5412747 0.3329737 0.5412747 0.3241766 0.4724598 0.9908428 0.0155183 0.9908428 0.0155183 0.8370597 3.5928e-4 0.3581568 0.153113 0.3581568 0.153113 0.3336923 0.2202927 0.3174682 0.9135208 0.3174682 0.9135208 0.3329738 0.8459008 3.5928e-4 0.2202929 3.5928e-4 0.2202929 0.009156405 0.2891078 0.3174679 0.1519544 0.3174679 0.1519544 0.3329738 0.08433431 0.8296065 0.4565806 0.8296065 0.4565806 0.9841349 0.4565806 0.009156405 0.2891078 0.009156405 0.2891078 0.1629396 0.3042678 0.5037268 3.5928e-4 0.5037268 3.5928e-4 0.3581568 7.99473e-4 0.4962725 0.761208 0.4962725 0.761208 0.6418426 0.7607679 0.6847811 0.5941753 0.6847811 0.5941753 0.8296046 0.6088943 0.6485514 0.167392 0.6485514 0.167392 0.5037266 0.1526729 0.3329738 0.8459008 0.3329738 0.8459008 0.3152181 0.7766456 0.3152182 0.6243325 0.3152182 0.6243325 0.1703934 0.6096133 0.8370602 0.3049864 0.8370602 0.3049864 0.6914901 0.3054268 0.6847816 0.2895487 0.6847816 0.2895487 0.8296062 0.3042677 0.3491982 0.6096133 0.3491982 0.6096133 0.3336923 0.6772334 0.3336923 0.6772334 0.3336923 0.6772334 0.3514479 0.7464888 0.3085097 0.6084543 0.3085097 0.6084543 0.3329737 0.5412747 0.6663071 0.8459012 0.6663071 0.8459012 0.6575098 0.7770863 0.6508013 0.1519539 0.6508013 0.1519539 0.6663073 0.08433413 0.6485512 0.4720189 0.6485512 0.4720189 0.5037266 0.4572998 0.5037266 0.4572998 0.5037266 0.4572998 0.3581564 0.4577399 0.3514479 0.7464888 0.3514479 0.7464888 0.4962725 0.761208 0.83706 0.1526732 0.83706 0.1526732 0.6825315 0.1526731 0.8370597 3.5928e-4 0.8370597 3.5928e-4 0.6825312 3.59483e-4 + 0.8333331 0.2284705 0.6670259 0.2202934 0.6847816 0.2895487 0.4999998 0.380784 0.4962728 0.4565812 0.6418427 0.4561411 0.1666665 0.6854107 0.1703934 0.6096133 0.0248233 0.6100537 0.6575096 0.6247733 0.5037266 0.6096135 0.4999997 0.6854107 0.3491982 0.6096133 0.3336923 0.6772334 0.4999997 0.6854107 0.4999998 0.8377238 0.4962729 0.9135212 0.6418428 0.9130808 0.8333334 0.3807836 0.8370602 0.3049864 0.6914901 0.3054268 0.4999997 0.6854107 0.3336923 0.6772334 0.3514479 0.7464888 0.009156286 0.1367942 0.1629393 0.1519541 0.1666665 0.07615667 0.1666666 0.5330973 0.1629397 0.6088947 0.3085097 0.6084543 0.1666667 0.2284705 0.1703937 0.1526729 0.0248236 0.1531133 0.3174679 0.1519544 0.3329738 0.08433431 0.1666665 0.07615667 0.1666665 0.07615667 0.3329738 0.08433431 0.3152182 0.01507902 0.4999995 0.533097 0.5037266 0.4572998 0.3581564 0.4577399 0.9908405 0.4724596 0.8370586 0.4572998 0.8333316 0.533097 0.1666665 0.8377238 0.1703934 0.7619265 0.02482324 0.7623672 0.6825311 0.4573 0.6670255 0.5249196 0.8333316 0.533097 0.1666666 0.3807838 0.1629394 0.4565812 0.3085094 0.4561413 0.8333316 0.533097 0.6670255 0.5249196 0.6847811 0.5941753 0.4999998 0.07615667 0.5037268 3.5928e-4 0.3581568 7.99473e-4 0.9908428 0.01551824 0.8370597 3.5928e-4 0.8333329 0.07615667 0.8333331 0.2284705 0.8296062 0.3042677 0.9751763 0.3038272 0.6825312 3.59483e-4 0.6670258 0.06797969 0.8333329 0.07615667 0.4999997 0.6854107 0.4962725 0.761208 0.6418426 0.7607679 0.8333329 0.07615667 0.6670258 0.06797969 0.6847816 0.1372352 0.1666665 0.07615667 0.1703937 3.5928e-4 0.0248236 7.9927e-4 0.3424896 0.2891077 0.4962726 0.3042675 0.4999997 0.2284702 0.8333316 0.533097 0.8296046 0.6088943 0.9751736 0.6084539 0.6508013 0.3042676 0.666307 0.2366476 0.4999997 0.2284702 0.8333329 0.07615667 0.8296064 0.1519539 0.9751762 0.151513 0.4999997 0.2284702 0.5037266 0.1526729 0.3581568 0.153113 0.4999997 0.2284702 0.666307 0.2366476 0.6485514 0.167392 0.6825315 0.1526731 0.6670259 0.2202934 0.8333331 0.2284705 0.9908432 0.1678324 0.83706 0.1526732 0.8333331 0.2284705 0.4999998 0.07615667 0.6663073 0.08433413 0.6485515 0.0150786 0.6508013 0.1519539 0.6663073 0.08433413 0.4999998 0.07615667 0.3424896 0.136794 0.4962729 0.1519536 0.4999998 0.07615667 0.1666666 0.3807838 3.5928e-4 0.3726064 0.01811486 0.4418617 0.0158649 0.3049864 3.5928e-4 0.3726064 0.1666666 0.3807838 0.3241766 0.3201467 0.1703937 0.3049865 0.1666666 0.3807838 0.1666665 0.8377238 0.3329738 0.8459008 0.3152181 0.7766456 0.3174682 0.9135208 0.3329738 0.8459008 0.1666665 0.8377238 0.009156525 0.8983618 0.1629398 0.9135212 0.1666665 0.8377238 0.4999995 0.533097 0.6663069 0.5412747 0.6485512 0.4720189 0.6508011 0.6088945 0.6663069 0.5412747 0.4999995 0.533097 0.3424895 0.5937348 0.4962726 0.6088946 0.4999995 0.533097 0.1666667 0.2284705 0.332974 0.236648 0.3152183 0.1673923 0.3174682 0.3042678 0.332974 0.236648 0.1666667 0.2284705 0.009156405 0.2891078 0.1629396 0.3042678 0.1666667 0.2284705 0.1666666 0.5330973 3.5928e-4 0.5249199 0.0181148 0.5941755 0.01586478 0.4572998 3.5928e-4 0.5249199 0.1666666 0.5330973 0.3241766 0.4724598 0.1703935 0.4573 0.1666666 0.5330973 0.8333334 0.3807836 0.9996408 0.3889608 0.9818849 0.3197051 0.9841349 0.4565806 0.9996408 0.3889608 0.8333334 0.3807836 0.6758232 0.4414213 0.8296065 0.4565806 0.8333334 0.3807836 0.4999998 0.8377238 0.3336925 0.8295468 0.3514482 0.8988022 0.3491983 0.7619265 0.3336925 0.8295468 0.4999998 0.8377238 0.6575098 0.7770863 0.5037268 0.7619268 0.4999998 0.8377238 0.1666665 0.6854107 0.3329739 0.693588 0.3152182 0.6243325 0.3174681 0.7612078 0.3329739 0.693588 0.1666665 0.6854107 0.009156525 0.7460486 0.1629395 0.761208 0.1666665 0.6854107 0.4999998 0.380784 0.3336926 0.3726064 0.3514482 0.4418621 0.3491984 0.3049864 0.3336926 0.3726064 0.4999998 0.380784 0.6575098 0.3201462 0.5037268 0.3049868 0.4999998 0.380784 0.8333331 0.2284705 0.6847816 0.2895487 0.8296062 0.3042677 0.4999998 0.380784 0.6418427 0.4561411 0.666307 0.3889614 0.1666665 0.6854107 0.0248233 0.6100537 3.5928e-4 0.6772335 0.6575096 0.6247733 0.4999997 0.6854107 0.6663068 0.6935883 0.3491982 0.6096133 0.4999997 0.6854107 0.5037266 0.6096135 0.4999998 0.8377238 0.6418428 0.9130808 0.6663071 0.8459012 0.8333334 0.3807836 0.6914901 0.3054268 0.6670259 0.3726064 0.4999997 0.6854107 0.3514479 0.7464888 0.4962725 0.761208 0.009156286 0.1367942 0.1666665 0.07615667 3.5928e-4 0.06797891 0.1666666 0.5330973 0.3085097 0.6084543 0.3329737 0.5412747 0.1666667 0.2284705 0.0248236 0.1531133 3.5928e-4 0.2202929 0.3174679 0.1519544 0.1666665 0.07615667 0.1629393 0.1519541 0.1666665 0.07615667 0.3152182 0.01507902 0.1703937 3.5928e-4 0.4999995 0.533097 0.3581564 0.4577399 0.3336923 0.5249196 0.9908405 0.4724596 0.8333316 0.533097 0.9996377 0.5412743 0.1666665 0.8377238 0.02482324 0.7623672 3.5928e-4 0.8295466 0.6825311 0.4573 0.8333316 0.533097 0.8370586 0.4572998 0.1666666 0.3807838 0.3085094 0.4561413 0.3329738 0.3889614 0.8333316 0.533097 0.6847811 0.5941753 0.8296046 0.6088943 0.4999998 0.07615667 0.3581568 7.99473e-4 0.3336923 0.06797909 0.9908428 0.01551824 0.8333329 0.07615667 0.9996401 0.08433347 0.8333331 0.2284705 0.9751763 0.3038272 0.9996405 0.2366473 0.6825312 3.59483e-4 0.8333329 0.07615667 0.8370597 3.5928e-4 0.4999997 0.6854107 0.6418426 0.7607679 0.6663068 0.6935883 0.8333329 0.07615667 0.6847816 0.1372352 0.8296064 0.1519539 0.1666665 0.07615667 0.0248236 7.9927e-4 3.5928e-4 0.06797891 0.3424896 0.2891077 0.4999997 0.2284702 0.3336923 0.2202927 0.8333316 0.533097 0.9751736 0.6084539 0.9996377 0.5412743 0.6508013 0.3042676 0.4999997 0.2284702 0.4962726 0.3042675 0.8333329 0.07615667 0.9751762 0.151513 0.9996401 0.08433347 0.4999997 0.2284702 0.3581568 0.153113 0.3336923 0.2202927 0.4999997 0.2284702 0.6485514 0.167392 0.5037266 0.1526729 0.6825315 0.1526731 0.8333331 0.2284705 0.83706 0.1526732 0.9908432 0.1678324 0.8333331 0.2284705 0.9996405 0.2366473 0.4999998 0.07615667 0.6485515 0.0150786 0.5037268 3.5928e-4 0.6508013 0.1519539 0.4999998 0.07615667 0.4962729 0.1519536 0.3424896 0.136794 0.4999998 0.07615667 0.3336923 0.06797909 0.1666666 0.3807838 0.01811486 0.4418617 0.1629394 0.4565812 0.0158649 0.3049864 0.1666666 0.3807838 0.1703937 0.3049865 0.3241766 0.3201467 0.1666666 0.3807838 0.3329738 0.3889614 0.1666665 0.8377238 0.3152181 0.7766456 0.1703934 0.7619265 0.3174682 0.9135208 0.1666665 0.8377238 0.1629398 0.9135212 0.009156525 0.8983618 0.1666665 0.8377238 3.5928e-4 0.8295466 0.4999995 0.533097 0.6485512 0.4720189 0.5037266 0.4572998 0.6508011 0.6088945 0.4999995 0.533097 0.4962726 0.6088946 0.3424895 0.5937348 0.4999995 0.533097 0.3336923 0.5249196 0.1666667 0.2284705 0.3152183 0.1673923 0.1703937 0.1526729 0.3174682 0.3042678 0.1666667 0.2284705 0.1629396 0.3042678 0.009156405 0.2891078 0.1666667 0.2284705 3.5928e-4 0.2202929 0.1666666 0.5330973 0.0181148 0.5941755 0.1629397 0.6088947 0.01586478 0.4572998 0.1666666 0.5330973 0.1703935 0.4573 0.3241766 0.4724598 0.1666666 0.5330973 0.3329737 0.5412747 0.8333334 0.3807836 0.9818849 0.3197051 0.8370602 0.3049864 0.9841349 0.4565806 0.8333334 0.3807836 0.8296065 0.4565806 0.6758232 0.4414213 0.8333334 0.3807836 0.6670259 0.3726064 0.4999998 0.8377238 0.3514482 0.8988022 0.4962729 0.9135212 0.3491983 0.7619265 0.4999998 0.8377238 0.5037268 0.7619268 0.6575098 0.7770863 0.4999998 0.8377238 0.6663071 0.8459012 0.1666665 0.6854107 0.3152182 0.6243325 0.1703934 0.6096133 0.3174681 0.7612078 0.1666665 0.6854107 0.1629395 0.761208 0.009156525 0.7460486 0.1666665 0.6854107 3.5928e-4 0.6772335 0.4999998 0.380784 0.3514482 0.4418621 0.4962728 0.4565812 0.3491984 0.3049864 0.4999998 0.380784 0.5037268 0.3049868 0.6575098 0.3201462 0.4999998 0.380784 0.666307 0.3889614 0.8333331 0.2284705 0.6670259 0.2202934 0.6847816 0.2895487 0.4999998 0.380784 0.4962728 0.4565812 0.6418427 0.4561411 0.1666665 0.6854107 0.1703934 0.6096133 0.0248233 0.6100537 0.6575096 0.6247733 0.5037266 0.6096135 0.4999997 0.6854107 0.3491982 0.6096133 0.3336923 0.6772334 0.4999997 0.6854107 0.4999998 0.8377238 0.4962729 0.9135212 0.6418428 0.9130808 0.8333334 0.3807836 0.8370602 0.3049864 0.6914901 0.3054268 0.4999997 0.6854107 0.3336923 0.6772334 0.3514479 0.7464888 0.009156286 0.1367942 0.1629393 0.1519541 0.1666665 0.07615667 0.1666666 0.5330973 0.1629397 0.6088947 0.3085097 0.6084543 0.1666667 0.2284705 0.1703937 0.1526729 0.0248236 0.1531133 0.3174679 0.1519544 0.3329738 0.08433431 0.1666665 0.07615667 0.1666665 0.07615667 0.3329738 0.08433431 0.3152182 0.01507902 0.4999995 0.533097 0.5037266 0.4572998 0.3581564 0.4577399 0.9908405 0.4724596 0.8370586 0.4572998 0.8333316 0.533097 0.1666665 0.8377238 0.1703934 0.7619265 0.02482324 0.7623672 0.6825311 0.4573 0.6670255 0.5249196 0.8333316 0.533097 0.1666666 0.3807838 0.1629394 0.4565812 0.3085094 0.4561413 0.8333316 0.533097 0.6670255 0.5249196 0.6847811 0.5941753 0.4999998 0.07615667 0.5037268 3.5928e-4 0.3581568 7.99473e-4 0.9908428 0.01551824 0.8370597 3.5928e-4 0.8333329 0.07615667 0.8333331 0.2284705 0.8296062 0.3042677 0.9751763 0.3038272 0.6825312 3.59483e-4 0.6670258 0.06797969 0.8333329 0.07615667 0.4999997 0.6854107 0.4962725 0.761208 0.6418426 0.7607679 0.8333329 0.07615667 0.6670258 0.06797969 0.6847816 0.1372352 0.1666665 0.07615667 0.1703937 3.5928e-4 0.0248236 7.9927e-4 0.3424896 0.2891077 0.4962726 0.3042675 0.4999997 0.2284702 0.8333316 0.533097 0.8296046 0.6088943 0.9751736 0.6084539 0.6508013 0.3042676 0.666307 0.2366476 0.4999997 0.2284702 0.8333329 0.07615667 0.8296064 0.1519539 0.9751762 0.151513 0.4999997 0.2284702 0.5037266 0.1526729 0.3581568 0.153113 0.4999997 0.2284702 0.666307 0.2366476 0.6485514 0.167392 0.6825315 0.1526731 0.6670259 0.2202934 0.8333331 0.2284705 0.9908432 0.1678324 0.83706 0.1526732 0.8333331 0.2284705 0.4999998 0.07615667 0.6663073 0.08433413 0.6485515 0.0150786 0.6508013 0.1519539 0.6663073 0.08433413 0.4999998 0.07615667 0.3424896 0.136794 0.4962729 0.1519536 0.4999998 0.07615667 0.1666666 0.3807838 3.5928e-4 0.3726064 0.01811486 0.4418617 0.0158649 0.3049864 3.5928e-4 0.3726064 0.1666666 0.3807838 0.3241766 0.3201467 0.1703937 0.3049865 0.1666666 0.3807838 0.1666665 0.8377238 0.3329738 0.8459008 0.3152181 0.7766456 0.3174682 0.9135208 0.3329738 0.8459008 0.1666665 0.8377238 0.009156525 0.8983618 0.1629398 0.9135212 0.1666665 0.8377238 0.4999995 0.533097 0.6663069 0.5412747 0.6485512 0.4720189 0.6508011 0.6088945 0.6663069 0.5412747 0.4999995 0.533097 0.3424895 0.5937348 0.4962726 0.6088946 0.4999995 0.533097 0.1666667 0.2284705 0.332974 0.236648 0.3152183 0.1673923 0.3174682 0.3042678 0.332974 0.236648 0.1666667 0.2284705 0.009156405 0.2891078 0.1629396 0.3042678 0.1666667 0.2284705 0.1666666 0.5330973 3.5928e-4 0.5249199 0.0181148 0.5941755 0.01586478 0.4572998 3.5928e-4 0.5249199 0.1666666 0.5330973 0.3241766 0.4724598 0.1703935 0.4573 0.1666666 0.5330973 0.8333334 0.3807836 0.9996408 0.3889608 0.9818849 0.3197051 0.9841349 0.4565806 0.9996408 0.3889608 0.8333334 0.3807836 0.6758232 0.4414213 0.8296065 0.4565806 0.8333334 0.3807836 0.4999998 0.8377238 0.3336925 0.8295468 0.3514482 0.8988022 0.3491983 0.7619265 0.3336925 0.8295468 0.4999998 0.8377238 0.6575098 0.7770863 0.5037268 0.7619268 0.4999998 0.8377238 0.1666665 0.6854107 0.3329739 0.693588 0.3152182 0.6243325 0.3174681 0.7612078 0.3329739 0.693588 0.1666665 0.6854107 0.009156525 0.7460486 0.1629395 0.761208 0.1666665 0.6854107 0.4999998 0.380784 0.3336926 0.3726064 0.3514482 0.4418621 0.3491984 0.3049864 0.3336926 0.3726064 0.4999998 0.380784 0.6575098 0.3201462 0.5037268 0.3049868 0.4999998 0.380784 0.8333331 0.2284705 0.6847816 0.2895487 0.8296062 0.3042677 0.4999998 0.380784 0.6418427 0.4561411 0.666307 0.3889614 0.1666665 0.6854107 0.0248233 0.6100537 3.5928e-4 0.6772335 0.6575096 0.6247733 0.4999997 0.6854107 0.6663068 0.6935883 0.3491982 0.6096133 0.4999997 0.6854107 0.5037266 0.6096135 0.4999998 0.8377238 0.6418428 0.9130808 0.6663071 0.8459012 0.8333334 0.3807836 0.6914901 0.3054268 0.6670259 0.3726064 0.4999997 0.6854107 0.3514479 0.7464888 0.4962725 0.761208 0.009156286 0.1367942 0.1666665 0.07615667 3.5928e-4 0.06797891 0.1666666 0.5330973 0.3085097 0.6084543 0.3329737 0.5412747 0.1666667 0.2284705 0.0248236 0.1531133 3.5928e-4 0.2202929 0.3174679 0.1519544 0.1666665 0.07615667 0.1629393 0.1519541 0.1666665 0.07615667 0.3152182 0.01507902 0.1703937 3.5928e-4 0.4999995 0.533097 0.3581564 0.4577399 0.3336923 0.5249196 0.9908405 0.4724596 0.8333316 0.533097 0.9996377 0.5412743 0.1666665 0.8377238 0.02482324 0.7623672 3.5928e-4 0.8295466 0.6825311 0.4573 0.8333316 0.533097 0.8370586 0.4572998 0.1666666 0.3807838 0.3085094 0.4561413 0.3329738 0.3889614 0.8333316 0.533097 0.6847811 0.5941753 0.8296046 0.6088943 0.4999998 0.07615667 0.3581568 7.99473e-4 0.3336923 0.06797909 0.9908428 0.01551824 0.8333329 0.07615667 0.9996401 0.08433347 0.8333331 0.2284705 0.9751763 0.3038272 0.9996405 0.2366473 0.6825312 3.59483e-4 0.8333329 0.07615667 0.8370597 3.5928e-4 0.4999997 0.6854107 0.6418426 0.7607679 0.6663068 0.6935883 0.8333329 0.07615667 0.6847816 0.1372352 0.8296064 0.1519539 0.1666665 0.07615667 0.0248236 7.9927e-4 3.5928e-4 0.06797891 0.3424896 0.2891077 0.4999997 0.2284702 0.3336923 0.2202927 0.8333316 0.533097 0.9751736 0.6084539 0.9996377 0.5412743 0.6508013 0.3042676 0.4999997 0.2284702 0.4962726 0.3042675 0.8333329 0.07615667 0.9751762 0.151513 0.9996401 0.08433347 0.4999997 0.2284702 0.3581568 0.153113 0.3336923 0.2202927 0.4999997 0.2284702 0.6485514 0.167392 0.5037266 0.1526729 0.6825315 0.1526731 0.8333331 0.2284705 0.83706 0.1526732 0.9908432 0.1678324 0.8333331 0.2284705 0.9996405 0.2366473 0.4999998 0.07615667 0.6485515 0.0150786 0.5037268 3.5928e-4 0.6508013 0.1519539 0.4999998 0.07615667 0.4962729 0.1519536 0.3424896 0.136794 0.4999998 0.07615667 0.3336923 0.06797909 0.1666666 0.3807838 0.01811486 0.4418617 0.1629394 0.4565812 0.0158649 0.3049864 0.1666666 0.3807838 0.1703937 0.3049865 0.3241766 0.3201467 0.1666666 0.3807838 0.3329738 0.3889614 0.1666665 0.8377238 0.3152181 0.7766456 0.1703934 0.7619265 0.3174682 0.9135208 0.1666665 0.8377238 0.1629398 0.9135212 0.009156525 0.8983618 0.1666665 0.8377238 3.5928e-4 0.8295466 0.4999995 0.533097 0.6485512 0.4720189 0.5037266 0.4572998 0.6508011 0.6088945 0.4999995 0.533097 0.4962726 0.6088946 0.3424895 0.5937348 0.4999995 0.533097 0.3336923 0.5249196 0.1666667 0.2284705 0.3152183 0.1673923 0.1703937 0.1526729 0.3174682 0.3042678 0.1666667 0.2284705 0.1629396 0.3042678 0.009156405 0.2891078 0.1666667 0.2284705 3.5928e-4 0.2202929 0.1666666 0.5330973 0.0181148 0.5941755 0.1629397 0.6088947 0.01586478 0.4572998 0.1666666 0.5330973 0.1703935 0.4573 0.3241766 0.4724598 0.1666666 0.5330973 0.3329737 0.5412747 0.8333334 0.3807836 0.9818849 0.3197051 0.8370602 0.3049864 0.9841349 0.4565806 0.8333334 0.3807836 0.8296065 0.4565806 0.6758232 0.4414213 0.8333334 0.3807836 0.6670259 0.3726064 0.4999998 0.8377238 0.3514482 0.8988022 0.4962729 0.9135212 0.3491983 0.7619265 0.4999998 0.8377238 0.5037268 0.7619268 0.6575098 0.7770863 0.4999998 0.8377238 0.6663071 0.8459012 0.1666665 0.6854107 0.3152182 0.6243325 0.1703934 0.6096133 0.3174681 0.7612078 0.1666665 0.6854107 0.1629395 0.761208 0.009156525 0.7460486 0.1666665 0.6854107 3.5928e-4 0.6772335 0.4999998 0.380784 0.3514482 0.4418621 0.4962728 0.4565812 0.3491984 0.3049864 0.4999998 0.380784 0.5037268 0.3049868 0.6575098 0.3201462 0.4999998 0.380784 0.666307 0.3889614 0.6670259 0.2202934 0.6847816 0.2895487 0.6847816 0.2895487 0.3152182 0.01507902 0.1703937 3.5928e-4 0.1703937 3.5928e-4 0.0181148 0.5941755 0.1629397 0.6088947 0.1629397 0.6088947 0.8370586 0.4572998 0.6825311 0.4573 0.6825311 0.4573 0.3241766 0.4724598 0.1703935 0.4573 0.1703935 0.4573 0.8296064 0.1519539 0.9751762 0.151513 0.9751762 0.151513 0.5037266 0.1526729 0.3581568 0.153113 0.3581568 0.153113 3.5928e-4 0.6772335 0.009156525 0.7460486 0.009156525 0.7460486 0.4962728 0.4565812 0.6418427 0.4561411 0.6418427 0.4561411 3.5928e-4 0.3726064 0.01811486 0.4418617 0.01811486 0.4418617 0.6825311 0.4573 0.6670255 0.5249196 0.6670255 0.5249196 0.6914901 0.3054268 0.6670259 0.3726064 0.6670259 0.3726064 0.6847816 0.1372352 0.8296064 0.1519539 0.8296064 0.1519539 0.3336923 0.06797909 0.3424896 0.136794 0.3424896 0.136794 0.6825315 0.1526731 0.6670259 0.2202934 0.6670259 0.2202934 0.3336925 0.8295468 0.3514482 0.8988022 0.3514482 0.8988022 0.3581568 7.99473e-4 0.3336923 0.06797909 0.3336923 0.06797909 0.1703937 0.3049865 0.0158649 0.3049864 0.0158649 0.3049864 0.6575096 0.6247733 0.5037266 0.6096135 0.5037266 0.6096135 0.6418427 0.4561411 0.666307 0.3889614 0.666307 0.3889614 0.1629396 0.3042678 0.3174682 0.3042678 0.3174682 0.3042678 0.666307 0.2366476 0.6485514 0.167392 0.6485514 0.167392 0.6575098 0.3201462 0.5037268 0.3049868 0.5037268 0.3049868 0.9751763 0.3038272 0.9996405 0.2366473 0.9996405 0.2366473 0.6418428 0.9130808 0.6663071 0.8459012 0.6663071 0.8459012 0.02482324 0.7623672 3.5928e-4 0.8295466 3.5928e-4 0.8295466 0.5037266 0.6096135 0.3491982 0.6096133 0.3491982 0.6096133 0.0248233 0.6100537 3.5928e-4 0.6772335 3.5928e-4 0.6772335 0.3241766 0.3201467 0.1703937 0.3049865 0.1703937 0.3049865 0.1703934 0.6096133 0.0248233 0.6100537 0.0248233 0.6100537 0.01811486 0.4418617 0.1629394 0.4565812 0.1629394 0.4565812 0.1703937 3.5928e-4 0.0248236 7.9927e-4 0.0248236 7.9927e-4 3.5928e-4 0.8295466 0.009156525 0.8983618 0.009156525 0.8983618 0.9908432 0.1678324 0.83706 0.1526732 0.83706 0.1526732 0.3514482 0.8988022 0.4962729 0.9135212 0.4962729 0.9135212 0.5037268 0.3049868 0.3491984 0.3049864 0.3491984 0.3049864 0.8296062 0.3042677 0.9751763 0.3038272 0.9751763 0.3038272 0.0248236 7.9927e-4 3.5928e-4 0.06797891 3.5928e-4 0.06797891 0.0248236 0.1531133 3.5928e-4 0.2202929 3.5928e-4 0.2202929 0.6670258 0.06797969 0.6847816 0.1372352 0.6847816 0.1372352 0.6418426 0.7607679 0.6663068 0.6935883 0.6663068 0.6935883 0.1629395 0.761208 0.3174681 0.7612078 0.3174681 0.7612078 0.1629397 0.6088947 0.3085097 0.6084543 0.3085097 0.6084543 3.5928e-4 0.5249199 0.0181148 0.5941755 0.0181148 0.5941755 0.4962729 0.9135212 0.6418428 0.9130808 0.6418428 0.9130808 0.6758232 0.4414213 0.8296065 0.4565806 0.8296065 0.4565806 0.3424896 0.2891077 0.4962726 0.3042675 0.4962726 0.3042675 0.6663069 0.5412747 0.6485512 0.4720189 0.6485512 0.4720189 0.1629398 0.9135212 0.3174682 0.9135208 0.3174682 0.9135208 0.01586478 0.4572998 3.5928e-4 0.5249199 3.5928e-4 0.5249199 0.8296046 0.6088943 0.9751736 0.6084539 0.9751736 0.6084539 0.6508011 0.6088945 0.6663069 0.5412747 0.6663069 0.5412747 0.6575098 0.7770863 0.5037268 0.7619268 0.5037268 0.7619268 0.0158649 0.3049864 3.5928e-4 0.3726064 3.5928e-4 0.3726064 3.5928e-4 0.06797891 0.009156286 0.1367942 0.009156286 0.1367942 0.9751736 0.6084539 0.9996377 0.5412743 0.9996377 0.5412743 0.6508013 0.3042676 0.666307 0.2366476 0.666307 0.2366476 0.9818849 0.3197051 0.8370602 0.3049864 0.8370602 0.3049864 0.4962726 0.6088946 0.6508011 0.6088945 0.6508011 0.6088945 0.1629394 0.4565812 0.3085094 0.4561413 0.3085094 0.4561413 0.3581564 0.4577399 0.3336923 0.5249196 0.3336923 0.5249196 0.3491984 0.3049864 0.3336926 0.3726064 0.3336926 0.3726064 0.3152181 0.7766456 0.1703934 0.7619265 0.1703934 0.7619265 0.1629393 0.1519541 0.3174679 0.1519544 0.3174679 0.1519544 0.009156525 0.8983618 0.1629398 0.9135212 0.1629398 0.9135212 0.3336923 0.5249196 0.3424895 0.5937348 0.3424895 0.5937348 0.3329738 0.08433431 0.3152182 0.01507902 0.3152182 0.01507902 0.9996377 0.5412743 0.9908405 0.4724596 0.9908405 0.4724596 0.6825312 3.59483e-4 0.6670258 0.06797969 0.6670258 0.06797969 0.3329739 0.693588 0.3152182 0.6243325 0.3152182 0.6243325 0.009156286 0.1367942 0.1629393 0.1519541 0.1629393 0.1519541 0.3336923 0.2202927 0.3424896 0.2891077 0.3424896 0.2891077 0.5037268 0.7619268 0.3491983 0.7619265 0.3491983 0.7619265 0.9996401 0.08433347 0.9908428 0.01551824 0.9908428 0.01551824 0.3174681 0.7612078 0.3329739 0.693588 0.3329739 0.693588 0.1703935 0.4573 0.01586478 0.4572998 0.01586478 0.4572998 0.4962729 0.1519536 0.6508013 0.1519539 0.6508013 0.1519539 0.6485515 0.0150786 0.5037268 3.5928e-4 0.5037268 3.5928e-4 0.1703934 0.7619265 0.02482324 0.7623672 0.02482324 0.7623672 0.3491983 0.7619265 0.3336925 0.8295468 0.3336925 0.8295468 0.4962726 0.3042675 0.6508013 0.3042676 0.6508013 0.3042676 0.3424895 0.5937348 0.4962726 0.6088946 0.4962726 0.6088946 0.3329738 0.3889614 0.3241766 0.3201467 0.3241766 0.3201467 0.9841349 0.4565806 0.9996408 0.3889608 0.9996408 0.3889608 0.9996405 0.2366473 0.9908432 0.1678324 0.9908432 0.1678324 0.332974 0.236648 0.3152183 0.1673923 0.3152183 0.1673923 0.1703937 0.1526729 0.0248236 0.1531133 0.0248236 0.1531133 0.3336926 0.3726064 0.3514482 0.4418621 0.3514482 0.4418621 0.6670255 0.5249196 0.6847811 0.5941753 0.6847811 0.5941753 0.3174682 0.3042678 0.332974 0.236648 0.332974 0.236648 0.6663068 0.6935883 0.6575096 0.6247733 0.6575096 0.6247733 0.9751762 0.151513 0.9996401 0.08433347 0.9996401 0.08433347 0.3085094 0.4561413 0.3329738 0.3889614 0.3329738 0.3889614 0.3424896 0.136794 0.4962729 0.1519536 0.4962729 0.1519536 0.6670259 0.3726064 0.6758232 0.4414213 0.6758232 0.4414213 0.3152183 0.1673923 0.1703937 0.1526729 0.1703937 0.1526729 0.9908405 0.4724596 0.8370586 0.4572998 0.8370586 0.4572998 0.666307 0.3889614 0.6575098 0.3201462 0.6575098 0.3201462 0.9996408 0.3889608 0.9818849 0.3197051 0.9818849 0.3197051 0.009156525 0.7460486 0.1629395 0.761208 0.1629395 0.761208 0.6663073 0.08433413 0.6485515 0.0150786 0.6485515 0.0150786 0.3514482 0.4418621 0.4962728 0.4565812 0.4962728 0.4565812 0.3329737 0.5412747 0.3241766 0.4724598 0.3241766 0.4724598 0.9908428 0.01551824 0.8370597 3.5928e-4 0.8370597 3.5928e-4 0.3581568 0.153113 0.3336923 0.2202927 0.3336923 0.2202927 0.3174682 0.9135208 0.3329738 0.8459008 0.3329738 0.8459008 3.5928e-4 0.2202929 0.009156405 0.2891078 0.009156405 0.2891078 0.3174679 0.1519544 0.3329738 0.08433431 0.3329738 0.08433431 0.8296065 0.4565806 0.9841349 0.4565806 0.9841349 0.4565806 0.009156405 0.2891078 0.1629396 0.3042678 0.1629396 0.3042678 0.5037268 3.5928e-4 0.3581568 7.99473e-4 0.3581568 7.99473e-4 0.4962725 0.761208 0.6418426 0.7607679 0.6418426 0.7607679 0.6847811 0.5941753 0.8296046 0.6088943 0.8296046 0.6088943 0.6485514 0.167392 0.5037266 0.1526729 0.5037266 0.1526729 0.3329738 0.8459008 0.3152181 0.7766456 0.3152181 0.7766456 0.3152182 0.6243325 0.1703934 0.6096133 0.1703934 0.6096133 0.8370602 0.3049864 0.6914901 0.3054268 0.6914901 0.3054268 0.6847816 0.2895487 0.8296062 0.3042677 0.8296062 0.3042677 0.3491982 0.6096133 0.3336923 0.6772334 0.3336923 0.6772334 0.3336923 0.6772334 0.3514479 0.7464888 0.3514479 0.7464888 0.3085097 0.6084543 0.3329737 0.5412747 0.3329737 0.5412747 0.6663071 0.8459012 0.6575098 0.7770863 0.6575098 0.7770863 0.6508013 0.1519539 0.6663073 0.08433413 0.6663073 0.08433413 0.6485512 0.4720189 0.5037266 0.4572998 0.5037266 0.4572998 0.5037266 0.4572998 0.3581564 0.4577399 0.3581564 0.4577399 0.3514479 0.7464888 0.4962725 0.761208 0.4962725 0.761208 0.83706 0.1526732 0.6825315 0.1526731 0.6825315 0.1526731 0.8370597 3.5928e-4 0.6825312 3.59483e-4 0.6825312 3.59483e-4 0.6670259 0.2202934 0.6670259 0.2202934 0.6847816 0.2895487 0.3152182 0.01507902 0.3152182 0.01507902 0.1703937 3.5928e-4 0.0181148 0.5941755 0.0181148 0.5941755 0.1629397 0.6088947 0.8370586 0.4572998 0.8370586 0.4572998 0.6825311 0.4573 0.3241766 0.4724598 0.3241766 0.4724598 0.1703935 0.4573 0.8296064 0.1519539 0.8296064 0.1519539 0.9751762 0.151513 0.5037266 0.1526729 0.5037266 0.1526729 0.3581568 0.153113 3.5928e-4 0.6772335 3.5928e-4 0.6772335 0.009156525 0.7460486 0.4962728 0.4565812 0.4962728 0.4565812 0.6418427 0.4561411 3.5928e-4 0.3726064 3.5928e-4 0.3726064 0.01811486 0.4418617 0.6825311 0.4573 0.6825311 0.4573 0.6670255 0.5249196 0.6914901 0.3054268 0.6914901 0.3054268 0.6670259 0.3726064 0.6847816 0.1372352 0.6847816 0.1372352 0.8296064 0.1519539 0.3336923 0.06797909 0.3336923 0.06797909 0.3424896 0.136794 0.6825315 0.1526731 0.6825315 0.1526731 0.6670259 0.2202934 0.3336925 0.8295468 0.3336925 0.8295468 0.3514482 0.8988022 0.3581568 7.99473e-4 0.3581568 7.99473e-4 0.3336923 0.06797909 0.1703937 0.3049865 0.1703937 0.3049865 0.0158649 0.3049864 0.6575096 0.6247733 0.6575096 0.6247733 0.5037266 0.6096135 0.6418427 0.4561411 0.6418427 0.4561411 0.666307 0.3889614 0.1629396 0.3042678 0.1629396 0.3042678 0.3174682 0.3042678 0.666307 0.2366476 0.666307 0.2366476 0.6485514 0.167392 0.6575098 0.3201462 0.6575098 0.3201462 0.5037268 0.3049868 0.9751763 0.3038272 0.9751763 0.3038272 0.9996405 0.2366473 0.6418428 0.9130808 0.6418428 0.9130808 0.6663071 0.8459012 0.02482324 0.7623672 0.02482324 0.7623672 3.5928e-4 0.8295466 0.5037266 0.6096135 0.5037266 0.6096135 0.3491982 0.6096133 0.0248233 0.6100537 0.0248233 0.6100537 3.5928e-4 0.6772335 0.3241766 0.3201467 0.3241766 0.3201467 0.1703937 0.3049865 0.1703934 0.6096133 0.1703934 0.6096133 0.0248233 0.6100537 0.01811486 0.4418617 0.01811486 0.4418617 0.1629394 0.4565812 0.1703937 3.5928e-4 0.1703937 3.5928e-4 0.0248236 7.9927e-4 3.5928e-4 0.8295466 3.5928e-4 0.8295466 0.009156525 0.8983618 0.9908432 0.1678324 0.9908432 0.1678324 0.83706 0.1526732 0.3514482 0.8988022 0.3514482 0.8988022 0.4962729 0.9135212 0.5037268 0.3049868 0.5037268 0.3049868 0.3491984 0.3049864 0.8296062 0.3042677 0.8296062 0.3042677 0.9751763 0.3038272 0.0248236 7.9927e-4 0.0248236 7.9927e-4 3.5928e-4 0.06797891 0.0248236 0.1531133 0.0248236 0.1531133 3.5928e-4 0.2202929 0.6670258 0.06797969 0.6670258 0.06797969 0.6847816 0.1372352 0.6418426 0.7607679 0.6418426 0.7607679 0.6663068 0.6935883 0.1629395 0.761208 0.1629395 0.761208 0.3174681 0.7612078 0.1629397 0.6088947 0.1629397 0.6088947 0.3085097 0.6084543 3.5928e-4 0.5249199 3.5928e-4 0.5249199 0.0181148 0.5941755 0.4962729 0.9135212 0.4962729 0.9135212 0.6418428 0.9130808 0.6758232 0.4414213 0.6758232 0.4414213 0.8296065 0.4565806 0.3424896 0.2891077 0.3424896 0.2891077 0.4962726 0.3042675 0.6663069 0.5412747 0.6663069 0.5412747 0.6485512 0.4720189 0.1629398 0.9135212 0.1629398 0.9135212 0.3174682 0.9135208 0.01586478 0.4572998 0.01586478 0.4572998 3.5928e-4 0.5249199 0.8296046 0.6088943 0.8296046 0.6088943 0.9751736 0.6084539 0.6508011 0.6088945 0.6508011 0.6088945 0.6663069 0.5412747 0.6575098 0.7770863 0.6575098 0.7770863 0.5037268 0.7619268 0.0158649 0.3049864 0.0158649 0.3049864 3.5928e-4 0.3726064 3.5928e-4 0.06797891 3.5928e-4 0.06797891 0.009156286 0.1367942 0.9751736 0.6084539 0.9751736 0.6084539 0.9996377 0.5412743 0.6508013 0.3042676 0.6508013 0.3042676 0.666307 0.2366476 0.9818849 0.3197051 0.9818849 0.3197051 0.8370602 0.3049864 0.4962726 0.6088946 0.4962726 0.6088946 0.6508011 0.6088945 0.1629394 0.4565812 0.1629394 0.4565812 0.3085094 0.4561413 0.3581564 0.4577399 0.3581564 0.4577399 0.3336923 0.5249196 0.3491984 0.3049864 0.3491984 0.3049864 0.3336926 0.3726064 0.3152181 0.7766456 0.3152181 0.7766456 0.1703934 0.7619265 0.1629393 0.1519541 0.1629393 0.1519541 0.3174679 0.1519544 0.009156525 0.8983618 0.009156525 0.8983618 0.1629398 0.9135212 0.3336923 0.5249196 0.3336923 0.5249196 0.3424895 0.5937348 0.3329738 0.08433431 0.3329738 0.08433431 0.3152182 0.01507902 0.9996377 0.5412743 0.9996377 0.5412743 0.9908405 0.4724596 0.6825312 3.59483e-4 0.6825312 3.59483e-4 0.6670258 0.06797969 0.3329739 0.693588 0.3329739 0.693588 0.3152182 0.6243325 0.009156286 0.1367942 0.009156286 0.1367942 0.1629393 0.1519541 0.3336923 0.2202927 0.3336923 0.2202927 0.3424896 0.2891077 0.5037268 0.7619268 0.5037268 0.7619268 0.3491983 0.7619265 0.9996401 0.08433347 0.9996401 0.08433347 0.9908428 0.01551824 0.3174681 0.7612078 0.3174681 0.7612078 0.3329739 0.693588 0.1703935 0.4573 0.1703935 0.4573 0.01586478 0.4572998 0.4962729 0.1519536 0.4962729 0.1519536 0.6508013 0.1519539 0.6485515 0.0150786 0.6485515 0.0150786 0.5037268 3.5928e-4 0.1703934 0.7619265 0.1703934 0.7619265 0.02482324 0.7623672 0.3491983 0.7619265 0.3491983 0.7619265 0.3336925 0.8295468 0.4962726 0.3042675 0.4962726 0.3042675 0.6508013 0.3042676 0.3424895 0.5937348 0.3424895 0.5937348 0.4962726 0.6088946 0.3329738 0.3889614 0.3329738 0.3889614 0.3241766 0.3201467 0.9841349 0.4565806 0.9841349 0.4565806 0.9996408 0.3889608 0.9996405 0.2366473 0.9996405 0.2366473 0.9908432 0.1678324 0.332974 0.236648 0.332974 0.236648 0.3152183 0.1673923 0.1703937 0.1526729 0.1703937 0.1526729 0.0248236 0.1531133 0.3336926 0.3726064 0.3336926 0.3726064 0.3514482 0.4418621 0.6670255 0.5249196 0.6670255 0.5249196 0.6847811 0.5941753 0.3174682 0.3042678 0.3174682 0.3042678 0.332974 0.236648 0.6663068 0.6935883 0.6663068 0.6935883 0.6575096 0.6247733 0.9751762 0.151513 0.9751762 0.151513 0.9996401 0.08433347 0.3085094 0.4561413 0.3085094 0.4561413 0.3329738 0.3889614 0.3424896 0.136794 0.3424896 0.136794 0.4962729 0.1519536 0.6670259 0.3726064 0.6670259 0.3726064 0.6758232 0.4414213 0.3152183 0.1673923 0.3152183 0.1673923 0.1703937 0.1526729 0.9908405 0.4724596 0.9908405 0.4724596 0.8370586 0.4572998 0.666307 0.3889614 0.666307 0.3889614 0.6575098 0.3201462 0.9996408 0.3889608 0.9996408 0.3889608 0.9818849 0.3197051 0.009156525 0.7460486 0.009156525 0.7460486 0.1629395 0.761208 0.6663073 0.08433413 0.6663073 0.08433413 0.6485515 0.0150786 0.3514482 0.4418621 0.3514482 0.4418621 0.4962728 0.4565812 0.3329737 0.5412747 0.3329737 0.5412747 0.3241766 0.4724598 0.9908428 0.01551824 0.9908428 0.01551824 0.8370597 3.5928e-4 0.3581568 0.153113 0.3581568 0.153113 0.3336923 0.2202927 0.3174682 0.9135208 0.3174682 0.9135208 0.3329738 0.8459008 3.5928e-4 0.2202929 3.5928e-4 0.2202929 0.009156405 0.2891078 0.3174679 0.1519544 0.3174679 0.1519544 0.3329738 0.08433431 0.8296065 0.4565806 0.8296065 0.4565806 0.9841349 0.4565806 0.009156405 0.2891078 0.009156405 0.2891078 0.1629396 0.3042678 0.5037268 3.5928e-4 0.5037268 3.5928e-4 0.3581568 7.99473e-4 0.4962725 0.761208 0.4962725 0.761208 0.6418426 0.7607679 0.6847811 0.5941753 0.6847811 0.5941753 0.8296046 0.6088943 0.6485514 0.167392 0.6485514 0.167392 0.5037266 0.1526729 0.3329738 0.8459008 0.3329738 0.8459008 0.3152181 0.7766456 0.3152182 0.6243325 0.3152182 0.6243325 0.1703934 0.6096133 0.8370602 0.3049864 0.8370602 0.3049864 0.6914901 0.3054268 0.6847816 0.2895487 0.6847816 0.2895487 0.8296062 0.3042677 0.3491982 0.6096133 0.3491982 0.6096133 0.3336923 0.6772334 0.3336923 0.6772334 0.3336923 0.6772334 0.3514479 0.7464888 0.3085097 0.6084543 0.3085097 0.6084543 0.3329737 0.5412747 0.6663071 0.8459012 0.6663071 0.8459012 0.6575098 0.7770863 0.6508013 0.1519539 0.6508013 0.1519539 0.6663073 0.08433413 0.6485512 0.4720189 0.6485512 0.4720189 0.5037266 0.4572998 0.5037266 0.4572998 0.5037266 0.4572998 0.3581564 0.4577399 0.3514479 0.7464888 0.3514479 0.7464888 0.4962725 0.761208 0.83706 0.1526732 0.83706 0.1526732 0.6825315 0.1526731 0.8370597 3.5928e-4 0.8370597 3.5928e-4 0.6825312 3.59483e-4 @@ -142,7 +142,7 @@ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 -

133 0 0 120 0 1 4 0 2 143 1 3 49 1 4 71 1 5 142 1 6 21 1 7 85 1 8 7 1 9 6 1 10 132 1 11 92 2 12 122 2 13 132 2 14 141 1 15 45 1 16 73 1 17 140 1 18 17 1 19 87 1 20 132 3 21 122 3 22 56 3 23 35 1 24 34 1 25 131 1 26 139 4 27 41 4 28 75 4 29 138 1 30 13 1 31 89 1 32 78 5 33 124 5 34 131 5 35 131 6 36 124 6 37 28 6 38 137 7 39 37 7 40 77 7 41 63 1 42 62 1 43 130 1 44 136 1 45 9 1 46 91 1 47 64 8 48 112 8 49 130 8 50 135 1 51 61 1 52 65 1 53 130 1 54 112 1 55 0 1 56 134 9 57 33 9 58 79 9 59 11 10 60 10 10 61 129 10 62 133 1 63 5 1 64 93 1 65 90 1 66 127 1 67 129 1 68 132 1 69 57 1 70 67 1 71 129 11 72 127 11 73 52 11 74 131 12 75 29 12 76 81 12 77 39 1 78 38 1 79 128 1 80 130 13 81 1 13 82 95 13 83 76 1 84 96 1 85 128 1 86 129 4 87 53 4 88 69 4 89 128 1 90 25 1 91 83 1 92 128 14 93 96 14 94 24 14 95 66 1 96 120 1 97 133 1 98 59 15 99 58 15 100 133 15 101 134 16 102 118 16 103 32 16 104 80 17 105 118 17 106 134 17 107 31 18 108 30 18 109 134 18 110 135 1 111 116 1 112 60 1 113 94 1 114 116 1 115 135 1 116 3 19 117 2 19 118 135 19 119 136 20 120 114 20 121 8 20 122 68 1 123 114 1 124 136 1 125 55 1 126 54 1 127 136 1 128 137 1 129 111 1 130 36 1 131 82 21 132 111 21 133 137 21 134 27 1 135 26 1 136 137 1 137 138 22 138 108 22 139 12 22 140 70 1 141 108 1 142 138 1 143 51 1 144 50 1 145 138 1 146 139 1 147 107 1 148 40 1 149 84 23 150 107 23 151 139 23 152 23 1 153 22 1 154 139 1 155 140 24 156 104 24 157 16 24 158 72 25 159 104 25 160 140 25 161 47 26 162 46 26 163 140 26 164 141 27 165 103 27 166 44 27 167 86 1 168 103 1 169 141 1 170 19 28 171 18 28 172 141 28 173 142 29 174 100 29 175 20 29 176 74 30 177 100 30 178 142 30 179 43 1 180 42 1 181 142 1 182 143 31 183 99 31 184 48 31 185 88 32 186 99 32 187 143 32 188 15 33 189 14 33 190 143 33 191 133 1 192 4 1 193 5 1 194 143 34 195 71 34 196 98 34 197 142 35 198 85 35 199 97 35 200 7 36 201 132 36 202 119 36 203 92 1 204 132 1 205 6 1 206 141 37 207 73 37 208 101 37 209 140 38 210 87 38 211 102 38 212 132 39 213 56 39 214 57 39 215 35 1 216 131 1 217 121 1 218 139 40 219 75 40 220 105 40 221 138 41 222 89 41 223 106 41 224 78 1 225 131 1 226 34 1 227 131 42 228 28 42 229 29 42 230 137 43 231 77 43 232 109 43 233 63 44 234 130 44 235 123 44 236 136 45 237 91 45 238 110 45 239 64 46 240 130 46 241 62 46 242 135 1 243 65 1 244 113 1 245 130 47 246 0 47 247 1 47 248 134 48 249 79 48 250 115 48 251 11 49 252 129 49 253 125 49 254 133 50 255 93 50 256 117 50 257 90 1 258 129 1 259 10 1 260 132 1 261 67 1 262 119 1 263 129 1 264 52 1 265 53 1 266 131 51 267 81 51 268 121 51 269 39 1 270 128 1 271 126 1 272 130 52 273 95 52 274 123 52 275 76 1 276 128 1 277 38 1 278 129 53 279 69 53 280 125 53 281 128 1 282 83 1 283 126 1 284 128 1 285 24 1 286 25 1 287 66 1 288 133 1 289 58 1 290 59 1 291 133 1 292 117 1 293 134 1 294 32 1 295 33 1 296 80 54 297 134 54 298 30 54 299 31 55 300 134 55 301 115 55 302 135 42 303 60 42 304 61 42 305 94 56 306 135 56 307 2 56 308 3 1 309 135 1 310 113 1 311 136 1 312 8 1 313 9 1 314 68 57 315 136 57 316 54 57 317 55 1 318 136 1 319 110 1 320 137 58 321 36 58 322 37 58 323 82 59 324 137 59 325 26 59 326 27 1 327 137 1 328 109 1 329 138 1 330 12 1 331 13 1 332 70 1 333 138 1 334 50 1 335 51 1 336 138 1 337 106 1 338 139 1 339 40 1 340 41 1 341 84 60 342 139 60 343 22 60 344 23 1 345 139 1 346 105 1 347 140 61 348 16 61 349 17 61 350 72 62 351 140 62 352 46 62 353 47 1 354 140 1 355 102 1 356 141 1 357 44 1 358 45 1 359 86 63 360 141 63 361 18 63 362 19 1 363 141 1 364 101 1 365 142 64 366 20 64 367 21 64 368 74 1 369 142 1 370 42 1 371 43 1 372 142 1 373 97 1 374 143 1 375 48 1 376 49 1 377 88 65 378 143 65 379 14 65 380 15 66 381 143 66 382 98 66 383 277 1 384 264 1 385 148 1 386 287 1 387 193 1 388 215 1 389 286 1 390 165 1 391 229 1 392 151 1 393 150 1 394 276 1 395 236 1 396 266 1 397 276 1 398 285 1 399 189 1 400 217 1 401 284 1 402 161 1 403 231 1 404 276 67 405 266 67 406 200 67 407 179 68 408 178 68 409 275 68 410 283 1 411 185 1 412 219 1 413 282 1 414 157 1 415 233 1 416 222 1 417 268 1 418 275 1 419 275 1 420 268 1 421 172 1 422 281 1 423 181 1 424 221 1 425 207 69 426 206 69 427 274 69 428 280 1 429 153 1 430 235 1 431 208 1 432 256 1 433 274 1 434 279 1 435 205 1 436 209 1 437 274 1 438 256 1 439 144 1 440 278 70 441 177 70 442 223 70 443 155 68 444 154 68 445 273 68 446 277 71 447 149 71 448 237 71 449 234 1 450 271 1 451 273 1 452 276 1 453 201 1 454 211 1 455 273 72 456 271 72 457 196 72 458 275 73 459 173 73 460 225 73 461 183 1 462 182 1 463 272 1 464 274 74 465 145 74 466 239 74 467 220 1 468 240 1 469 272 1 470 273 75 471 197 75 472 213 75 473 272 76 474 169 76 475 227 76 476 272 77 477 240 77 478 168 77 479 210 1 480 264 1 481 277 1 482 203 1 483 202 1 484 277 1 485 278 1 486 262 1 487 176 1 488 224 78 489 262 78 490 278 78 491 175 1 492 174 1 493 278 1 494 279 79 495 260 79 496 204 79 497 238 80 498 260 80 499 279 80 500 147 1 501 146 1 502 279 1 503 280 1 504 258 1 505 152 1 506 212 1 507 258 1 508 280 1 509 199 57 510 198 57 511 280 57 512 281 1 513 255 1 514 180 1 515 226 81 516 255 81 517 281 81 518 171 1 519 170 1 520 281 1 521 282 23 522 252 23 523 156 23 524 214 1 525 252 1 526 282 1 527 195 1 528 194 1 529 282 1 530 283 82 531 251 82 532 184 82 533 228 1 534 251 1 535 283 1 536 167 83 537 166 83 538 283 83 539 284 84 540 248 84 541 160 84 542 216 85 543 248 85 544 284 85 545 191 86 546 190 86 547 284 86 548 285 87 549 247 87 550 188 87 551 230 1 552 247 1 553 285 1 554 163 88 555 162 88 556 285 88 557 286 3 558 244 3 559 164 3 560 218 1 561 244 1 562 286 1 563 187 89 564 186 89 565 286 89 566 287 31 567 243 31 568 192 31 569 232 90 570 243 90 571 287 90 572 159 91 573 158 91 574 287 91 575 277 92 576 148 92 577 149 92 578 287 93 579 215 93 580 242 93 581 286 94 582 229 94 583 241 94 584 151 95 585 276 95 586 263 95 587 236 1 588 276 1 589 150 1 590 285 96 591 217 96 592 245 96 593 284 97 594 231 97 595 246 97 596 276 98 597 200 98 598 201 98 599 179 99 600 275 99 601 265 99 602 283 30 603 219 30 604 249 30 605 282 100 606 233 100 607 250 100 608 222 101 609 275 101 610 178 101 611 275 102 612 172 102 613 173 102 614 281 1 615 221 1 616 253 1 617 207 1 618 274 1 619 267 1 620 280 103 621 235 103 622 254 103 623 208 1 624 274 1 625 206 1 626 279 104 627 209 104 628 257 104 629 274 105 630 144 105 631 145 105 632 278 106 633 223 106 634 259 106 635 155 1 636 273 1 637 269 1 638 277 49 639 237 49 640 261 49 641 234 1 642 273 1 643 154 1 644 276 107 645 211 107 646 263 107 647 273 1 648 196 1 649 197 1 650 275 1 651 225 1 652 265 1 653 183 1 654 272 1 655 270 1 656 274 108 657 239 108 658 267 108 659 220 1 660 272 1 661 182 1 662 273 109 663 213 109 664 269 109 665 272 1 666 227 1 667 270 1 668 272 110 669 168 110 670 169 110 671 210 111 672 277 111 673 202 111 674 203 1 675 277 1 676 261 1 677 278 112 678 176 112 679 177 112 680 224 1 681 278 1 682 174 1 683 175 1 684 278 1 685 259 1 686 279 1 687 204 1 688 205 1 689 238 1 690 279 1 691 146 1 692 147 2 693 279 2 694 257 2 695 280 1 696 152 1 697 153 1 698 212 57 699 280 57 700 198 57 701 199 1 702 280 1 703 254 1 704 281 1 705 180 1 706 181 1 707 226 1 708 281 1 709 170 1 710 171 103 711 281 103 712 253 103 713 282 1 714 156 1 715 157 1 716 214 1 717 282 1 718 194 1 719 195 1 720 282 1 721 250 1 722 283 1 723 184 1 724 185 1 725 228 113 726 283 113 727 166 113 728 167 114 729 283 114 730 249 114 731 284 1 732 160 1 733 161 1 734 216 115 735 284 115 736 190 115 737 191 1 738 284 1 739 246 1 740 285 1 741 188 1 742 189 1 743 230 116 744 285 116 745 162 116 746 163 1 747 285 1 748 245 1 749 286 117 750 164 117 751 165 117 752 218 1 753 286 1 754 186 1 755 187 1 756 286 1 757 241 1 758 287 1 759 192 1 760 193 1 761 232 118 762 287 118 763 158 118 764 159 119 765 287 119 766 242 119 767 120 120 768 148 120 769 4 120 770 28 121 771 173 121 772 29 121 773 40 122 774 185 122 775 41 122 776 62 123 777 208 123 778 64 123 779 23 124 780 166 124 781 22 124 782 53 125 783 213 125 784 69 125 785 25 126 786 227 126 787 83 126 788 97 127 789 187 127 790 43 127 791 49 128 792 215 128 793 71 128 794 116 129 795 204 129 796 60 129 797 64 130 798 256 130 799 112 130 800 87 131 801 246 131 802 102 131 803 52 132 804 197 132 805 53 132 806 115 133 807 175 133 808 31 133 809 66 134 810 264 134 811 120 134 812 103 135 813 188 135 814 44 135 815 79 136 816 259 136 817 115 136 818 2 137 819 238 137 820 94 137 821 7 138 822 150 138 823 6 138 824 71 139 825 242 139 826 98 139 827 50 140 828 214 140 829 70 140 830 96 141 831 168 141 832 24 141 833 15 142 834 158 142 835 14 142 836 93 143 837 261 143 838 117 143 839 73 144 840 245 144 841 101 144 842 91 145 843 254 145 844 110 145 845 6 146 846 236 146 847 92 146 848 85 147 849 241 147 850 97 147 851 3 148 852 146 148 853 2 148 854 21 149 855 229 149 856 85 149 857 60 150 858 205 150 859 61 150 860 29 151 861 225 151 862 81 151 863 110 152 864 199 152 865 55 152 866 59 153 867 202 153 868 58 153 869 44 154 870 189 154 871 45 154 872 14 155 873 232 155 874 88 155 875 5 156 876 237 156 877 93 156 878 81 157 879 265 157 880 121 157 881 89 158 882 250 158 883 106 158 884 127 159 885 196 159 886 52 159 887 67 160 888 263 160 889 119 160 890 42 161 891 218 161 892 74 161 893 41 162 894 219 162 895 75 162 896 107 163 897 184 163 898 40 163 899 45 164 900 217 164 901 73 164 902 47 165 903 190 165 904 46 165 905 39 166 906 182 166 907 38 166 908 111 167 909 180 167 910 36 167 911 54 168 912 212 168 913 68 168 914 84 169 915 251 169 916 107 169 917 1 170 918 239 170 919 95 170 920 82 171 921 255 171 922 111 171 923 19 172 924 162 172 925 18 172 926 94 173 927 260 173 928 116 173 929 121 174 930 179 174 931 35 174 932 95 175 933 267 175 934 123 175 935 76 176 936 240 176 937 96 176 938 16 177 939 161 177 940 17 177 941 26 178 942 226 178 943 82 178 944 61 179 945 209 179 946 65 179 947 77 180 948 253 180 949 109 180 950 88 181 951 243 181 952 99 181 953 8 182 954 153 182 955 9 182 956 34 183 957 222 183 958 78 183 959 55 184 960 198 184 961 54 184 962 109 185 963 171 185 964 27 185 965 124 186 966 172 186 967 28 186 968 123 187 969 207 187 970 63 187 971 90 188 972 271 188 973 127 188 974 100 189 975 164 189 976 20 189 977 35 190 978 178 190 979 34 190 980 126 191 981 183 191 982 39 191 983 18 192 984 230 192 985 86 192 986 125 193 987 155 193 988 11 193 989 74 194 990 244 194 991 100 194 992 22 195 993 228 195 994 84 195 995 30 196 996 224 196 997 80 196 998 32 197 999 177 197 1000 33 197 1001 9 198 1002 235 198 1003 91 198 1004 86 199 1005 247 199 1006 103 199 1007 38 200 1008 220 200 1009 76 200 1010 27 201 1011 170 201 1012 26 201 1013 113 202 1014 147 202 1015 3 202 1016 72 203 1017 248 203 1018 104 203 1019 117 204 1020 203 204 1021 59 204 1022 108 205 1023 156 205 1024 12 205 1025 13 206 1026 233 206 1027 89 206 1028 99 207 1029 192 207 1030 48 207 1031 112 208 1032 144 208 1033 0 208 1034 70 209 1035 252 209 1036 108 209 1037 119 210 1038 151 210 1039 7 210 1040 69 211 1041 269 211 1042 125 211 1043 65 212 1044 257 212 1045 113 212 1046 31 213 1047 174 213 1048 30 213 1049 102 214 1050 191 214 1051 47 214 1052 12 215 1053 157 215 1054 13 215 1055 63 216 1056 206 216 1057 62 216 1058 98 217 1059 159 217 1060 15 217 1061 104 218 1062 160 218 1063 16 218 1064 43 219 1065 186 219 1066 42 219 1067 118 220 1068 176 220 1069 32 220 1070 48 221 1071 193 221 1072 49 221 1073 105 222 1074 167 222 1075 23 222 1076 11 223 1077 154 223 1078 10 223 1079 83 224 1080 270 224 1081 126 224 1082 68 225 1083 258 225 1084 114 225 1085 106 226 1086 195 226 1087 51 226 1088 78 227 1089 268 227 1090 124 227 1091 46 228 1092 216 228 1093 72 228 1094 51 229 1095 194 229 1096 50 229 1097 33 230 1098 223 230 1099 79 230 1100 57 231 1101 211 231 1102 67 231 1103 0 232 1104 145 232 1105 1 232 1106 24 233 1107 169 233 1108 25 233 1109 114 234 1110 152 234 1111 8 234 1112 20 235 1113 165 235 1114 21 235 1115 17 236 1116 231 236 1117 87 236 1118 4 237 1119 149 237 1120 5 237 1121 92 238 1122 266 238 1123 122 238 1124 122 239 1125 200 239 1126 56 239 1127 75 240 1128 249 240 1129 105 240 1130 101 241 1131 163 241 1132 19 241 1133 80 242 1134 262 242 1135 118 242 1136 36 243 1137 181 243 1138 37 243 1139 37 244 1140 221 244 1141 77 244 1142 56 245 1143 201 245 1144 57 245 1145 58 246 1146 210 246 1147 66 246 1148 10 247 1149 234 247 1150 90 247 1151 120 248 1152 264 248 1153 148 248 1154 28 249 1155 172 249 1156 173 249 1157 40 250 1158 184 250 1159 185 250 1160 62 251 1161 206 251 1162 208 251 1163 23 252 1164 167 252 1165 166 252 1166 53 253 1167 197 253 1168 213 253 1169 25 254 1170 169 254 1171 227 254 1172 97 255 1173 241 255 1174 187 255 1175 49 256 1176 193 256 1177 215 256 1178 116 129 1179 260 129 1180 204 129 1181 64 130 1182 208 130 1183 256 130 1184 87 257 1185 231 257 1186 246 257 1187 52 258 1188 196 258 1189 197 258 1190 115 259 1191 259 259 1192 175 259 1193 66 260 1194 210 260 1195 264 260 1196 103 261 1197 247 261 1198 188 261 1199 79 262 1200 223 262 1201 259 262 1202 2 263 1203 146 263 1204 238 263 1205 7 138 1206 151 138 1207 150 138 1208 71 264 1209 215 264 1210 242 264 1211 50 265 1212 194 265 1213 214 265 1214 96 266 1215 240 266 1216 168 266 1217 15 267 1218 159 267 1219 158 267 1220 93 268 1221 237 268 1222 261 268 1223 73 269 1224 217 269 1225 245 269 1226 91 270 1227 235 270 1228 254 270 1229 6 271 1230 150 271 1231 236 271 1232 85 272 1233 229 272 1234 241 272 1235 3 273 1236 147 273 1237 146 273 1238 21 274 1239 165 274 1240 229 274 1241 60 275 1242 204 275 1243 205 275 1244 29 276 1245 173 276 1246 225 276 1247 110 152 1248 254 152 1249 199 152 1250 59 277 1251 203 277 1252 202 277 1253 44 154 1254 188 154 1255 189 154 1256 14 278 1257 158 278 1258 232 278 1259 5 279 1260 149 279 1261 237 279 1262 81 280 1263 225 280 1264 265 280 1265 89 281 1266 233 281 1267 250 281 1268 127 282 1269 271 282 1270 196 282 1271 67 283 1272 211 283 1273 263 283 1274 42 284 1275 186 284 1276 218 284 1277 41 285 1278 185 285 1279 219 285 1280 107 286 1281 251 286 1282 184 286 1283 45 287 1284 189 287 1285 217 287 1286 47 288 1287 191 288 1288 190 288 1289 39 289 1290 183 289 1291 182 289 1292 111 290 1293 255 290 1294 180 290 1295 54 291 1296 198 291 1297 212 291 1298 84 292 1299 228 292 1300 251 292 1301 1 293 1302 145 293 1303 239 293 1304 82 294 1305 226 294 1306 255 294 1307 19 295 1308 163 295 1309 162 295 1310 94 296 1311 238 296 1312 260 296 1313 121 297 1314 265 297 1315 179 297 1316 95 298 1317 239 298 1318 267 298 1319 76 299 1320 220 299 1321 240 299 1322 16 300 1323 160 300 1324 161 300 1325 26 301 1326 170 301 1327 226 301 1328 61 302 1329 205 302 1330 209 302 1331 77 303 1332 221 303 1333 253 303 1334 88 304 1335 232 304 1336 243 304 1337 8 305 1338 152 305 1339 153 305 1340 34 306 1341 178 306 1342 222 306 1343 55 307 1344 199 307 1345 198 307 1346 109 308 1347 253 308 1348 171 308 1349 124 186 1350 268 186 1351 172 186 1352 123 309 1353 267 309 1354 207 309 1355 90 188 1356 234 188 1357 271 188 1358 100 310 1359 244 310 1360 164 310 1361 35 311 1362 179 311 1363 178 311 1364 126 312 1365 270 312 1366 183 312 1367 18 313 1368 162 313 1369 230 313 1370 125 314 1371 269 314 1372 155 314 1373 74 315 1374 218 315 1375 244 315 1376 22 316 1377 166 316 1378 228 316 1379 30 196 1380 174 196 1381 224 196 1382 32 317 1383 176 317 1384 177 317 1385 9 198 1386 153 198 1387 235 198 1388 86 318 1389 230 318 1390 247 318 1391 38 319 1392 182 319 1393 220 319 1394 27 320 1395 171 320 1396 170 320 1397 113 321 1398 257 321 1399 147 321 1400 72 322 1401 216 322 1402 248 322 1403 117 323 1404 261 323 1405 203 323 1406 108 324 1407 252 324 1408 156 324 1409 13 325 1410 157 325 1411 233 325 1412 99 326 1413 243 326 1414 192 326 1415 112 327 1416 256 327 1417 144 327 1418 70 328 1419 214 328 1420 252 328 1421 119 329 1422 263 329 1423 151 329 1424 69 330 1425 213 330 1426 269 330 1427 65 331 1428 209 331 1429 257 331 1430 31 332 1431 175 332 1432 174 332 1433 102 333 1434 246 333 1435 191 333 1436 12 334 1437 156 334 1438 157 334 1439 63 335 1440 207 335 1441 206 335 1442 98 336 1443 242 336 1444 159 336 1445 104 337 1446 248 337 1447 160 337 1448 43 338 1449 187 338 1450 186 338 1451 118 339 1452 262 339 1453 176 339 1454 48 340 1455 192 340 1456 193 340 1457 105 222 1458 249 222 1459 167 222 1460 11 341 1461 155 341 1462 154 341 1463 83 342 1464 227 342 1465 270 342 1466 68 343 1467 212 343 1468 258 343 1469 106 344 1470 250 344 1471 195 344 1472 78 345 1473 222 345 1474 268 345 1475 46 346 1476 190 346 1477 216 346 1478 51 347 1479 195 347 1480 194 347 1481 33 348 1482 177 348 1483 223 348 1484 57 349 1485 201 349 1486 211 349 1487 0 350 1488 144 350 1489 145 350 1490 24 351 1491 168 351 1492 169 351 1493 114 352 1494 258 352 1495 152 352 1496 20 353 1497 164 353 1498 165 353 1499 17 354 1500 161 354 1501 231 354 1502 4 355 1503 148 355 1504 149 355 1505 92 356 1506 236 356 1507 266 356 1508 122 357 1509 266 357 1510 200 357 1511 75 358 1512 219 358 1513 249 358 1514 101 359 1515 245 359 1516 163 359 1517 80 360 1518 224 360 1519 262 360 1520 36 361 1521 180 361 1522 181 361 1523 37 362 1524 181 362 1525 221 362 1526 56 363 1527 200 363 1528 201 363 1529 58 364 1530 202 364 1531 210 364 1532 10 365 1533 154 365 1534 234 365 1535

+

133 0 0 120 0 1 4 0 2 143 1 3 49 1 4 71 1 5 142 1 6 21 1 7 85 1 8 7 2 9 6 2 10 132 2 11 92 3 12 122 3 13 132 3 14 141 1 15 45 1 16 73 1 17 140 1 18 17 1 19 87 1 20 132 4 21 122 4 22 56 4 23 35 1 24 34 1 25 131 1 26 139 5 27 41 5 28 75 5 29 138 1 30 13 1 31 89 1 32 78 6 33 124 6 34 131 6 35 131 7 36 124 7 37 28 7 38 137 8 39 37 8 40 77 8 41 63 9 42 62 9 43 130 9 44 136 1 45 9 1 46 91 1 47 64 10 48 112 10 49 130 10 50 135 1 51 61 1 52 65 1 53 130 11 54 112 11 55 0 11 56 134 12 57 33 12 58 79 12 59 11 13 60 10 13 61 129 13 62 133 14 63 5 14 64 93 14 65 90 1 66 127 1 67 129 1 68 132 1 69 57 1 70 67 1 71 129 15 72 127 15 73 52 15 74 131 16 75 29 16 76 81 16 77 39 1 78 38 1 79 128 1 80 130 17 81 1 17 82 95 17 83 76 1 84 96 1 85 128 1 86 129 5 87 53 5 88 69 5 89 128 1 90 25 1 91 83 1 92 128 18 93 96 18 94 24 18 95 66 19 96 120 19 97 133 19 98 59 1 99 58 1 100 133 1 101 134 20 102 118 20 103 32 20 104 80 21 105 118 21 106 134 21 107 31 22 108 30 22 109 134 22 110 135 1 111 116 1 112 60 1 113 94 1 114 116 1 115 135 1 116 3 2 117 2 2 118 135 2 119 136 23 120 114 23 121 8 23 122 68 24 123 114 24 124 136 24 125 55 1 126 54 1 127 136 1 128 137 1 129 111 1 130 36 1 131 82 1 132 111 1 133 137 1 134 27 25 135 26 25 136 137 25 137 138 26 138 108 26 139 12 26 140 70 1 141 108 1 142 138 1 143 51 1 144 50 1 145 138 1 146 139 1 147 107 1 148 40 1 149 84 27 150 107 27 151 139 27 152 23 1 153 22 1 154 139 1 155 140 28 156 104 28 157 16 28 158 72 29 159 104 29 160 140 29 161 47 30 162 46 30 163 140 30 164 141 31 165 103 31 166 44 31 167 86 1 168 103 1 169 141 1 170 19 32 171 18 32 172 141 32 173 142 33 174 100 33 175 20 33 176 74 34 177 100 34 178 142 34 179 43 1 180 42 1 181 142 1 182 143 35 183 99 35 184 48 35 185 88 36 186 99 36 187 143 36 188 15 37 189 14 37 190 143 37 191 133 1 192 4 1 193 5 1 194 143 38 195 71 38 196 98 38 197 142 39 198 85 39 199 97 39 200 7 1 201 132 1 202 119 1 203 92 40 204 132 40 205 6 40 206 141 41 207 73 41 208 101 41 209 140 42 210 87 42 211 102 42 212 132 43 213 56 43 214 57 43 215 35 1 216 131 1 217 121 1 218 139 44 219 75 44 220 105 44 221 138 45 222 89 45 223 106 45 224 78 1 225 131 1 226 34 1 227 131 46 228 28 46 229 29 46 230 137 47 231 77 47 232 109 47 233 63 48 234 130 48 235 123 48 236 136 49 237 91 49 238 110 49 239 64 50 240 130 50 241 62 50 242 135 51 243 65 51 244 113 51 245 130 52 246 0 52 247 1 52 248 134 1 249 79 1 250 115 1 251 11 53 252 129 53 253 125 53 254 133 1 255 93 1 256 117 1 257 90 1 258 129 1 259 10 1 260 132 1 261 67 1 262 119 1 263 129 1 264 52 1 265 53 1 266 131 1 267 81 1 268 121 1 269 39 1 270 128 1 271 126 1 272 130 1 273 95 1 274 123 1 275 76 1 276 128 1 277 38 1 278 129 54 279 69 54 280 125 54 281 128 1 282 83 1 283 126 1 284 128 1 285 24 1 286 25 1 287 66 1 288 133 1 289 58 1 290 59 1 291 133 1 292 117 1 293 134 55 294 32 55 295 33 55 296 80 56 297 134 56 298 30 56 299 31 57 300 134 57 301 115 57 302 135 46 303 60 46 304 61 46 305 94 1 306 135 1 307 2 1 308 3 1 309 135 1 310 113 1 311 136 1 312 8 1 313 9 1 314 68 58 315 136 58 316 54 58 317 55 1 318 136 1 319 110 1 320 137 16 321 36 16 322 37 16 323 82 1 324 137 1 325 26 1 326 27 1 327 137 1 328 109 1 329 138 1 330 12 1 331 13 1 332 70 1 333 138 1 334 50 1 335 51 1 336 138 1 337 106 1 338 139 1 339 40 1 340 41 1 341 84 59 342 139 59 343 22 59 344 23 1 345 139 1 346 105 1 347 140 60 348 16 60 349 17 60 350 72 61 351 140 61 352 46 61 353 47 1 354 140 1 355 102 1 356 141 1 357 44 1 358 45 1 359 86 62 360 141 62 361 18 62 362 19 1 363 141 1 364 101 1 365 142 63 366 20 63 367 21 63 368 74 1 369 142 1 370 42 1 371 43 1 372 142 1 373 97 1 374 143 1 375 48 1 376 49 1 377 88 64 378 143 64 379 14 64 380 15 65 381 143 65 382 98 65 383 277 1 384 264 1 385 148 1 386 287 1 387 193 1 388 215 1 389 286 1 390 165 1 391 229 1 392 151 66 393 150 66 394 276 66 395 236 1 396 266 1 397 276 1 398 285 1 399 189 1 400 217 1 401 284 1 402 161 1 403 231 1 404 276 67 405 266 67 406 200 67 407 179 68 408 178 68 409 275 68 410 283 1 411 185 1 412 219 1 413 282 1 414 157 1 415 233 1 416 222 1 417 268 1 418 275 1 419 275 1 420 268 1 421 172 1 422 281 1 423 181 1 424 221 1 425 207 1 426 206 1 427 274 1 428 280 1 429 153 1 430 235 1 431 208 1 432 256 1 433 274 1 434 279 1 435 205 1 436 209 1 437 274 69 438 256 69 439 144 69 440 278 70 441 177 70 442 223 70 443 155 68 444 154 68 445 273 68 446 277 71 447 149 71 448 237 71 449 234 1 450 271 1 451 273 1 452 276 1 453 201 1 454 211 1 455 273 72 456 271 72 457 196 72 458 275 1 459 173 1 460 225 1 461 183 1 462 182 1 463 272 1 464 274 73 465 145 73 466 239 73 467 220 1 468 240 1 469 272 1 470 273 74 471 197 74 472 213 74 473 272 75 474 169 75 475 227 75 476 272 76 477 240 76 478 168 76 479 210 1 480 264 1 481 277 1 482 203 1 483 202 1 484 277 1 485 278 1 486 262 1 487 176 1 488 224 77 489 262 77 490 278 77 491 175 1 492 174 1 493 278 1 494 279 78 495 260 78 496 204 78 497 238 3 498 260 3 499 279 3 500 147 1 501 146 1 502 279 1 503 280 79 504 258 79 505 152 79 506 212 1 507 258 1 508 280 1 509 199 80 510 198 80 511 280 80 512 281 1 513 255 1 514 180 1 515 226 81 516 255 81 517 281 81 518 171 1 519 170 1 520 281 1 521 282 27 522 252 27 523 156 27 524 214 1 525 252 1 526 282 1 527 195 1 528 194 1 529 282 1 530 283 82 531 251 82 532 184 82 533 228 1 534 251 1 535 283 1 536 167 83 537 166 83 538 283 83 539 284 84 540 248 84 541 160 84 542 216 85 543 248 85 544 284 85 545 191 86 546 190 86 547 284 86 548 285 87 549 247 87 550 188 87 551 230 1 552 247 1 553 285 1 554 163 88 555 162 88 556 285 88 557 286 4 558 244 4 559 164 4 560 218 1 561 244 1 562 286 1 563 187 89 564 186 89 565 286 89 566 287 35 567 243 35 568 192 35 569 232 90 570 243 90 571 287 90 572 159 91 573 158 91 574 287 91 575 277 1 576 148 1 577 149 1 578 287 92 579 215 92 580 242 92 581 286 93 582 229 93 583 241 93 584 151 94 585 276 94 586 263 94 587 236 1 588 276 1 589 150 1 590 285 95 591 217 95 592 245 95 593 284 96 594 231 96 595 246 96 596 276 97 597 200 97 598 201 97 599 179 98 600 275 98 601 265 98 602 283 34 603 219 34 604 249 34 605 282 99 606 233 99 607 250 99 608 222 1 609 275 1 610 178 1 611 275 1 612 172 1 613 173 1 614 281 1 615 221 1 616 253 1 617 207 1 618 274 1 619 267 1 620 280 100 621 235 100 622 254 100 623 208 101 624 274 101 625 206 101 626 279 1 627 209 1 628 257 1 629 274 1 630 144 1 631 145 1 632 278 1 633 223 1 634 259 1 635 155 1 636 273 1 637 269 1 638 277 102 639 237 102 640 261 102 641 234 1 642 273 1 643 154 1 644 276 103 645 211 103 646 263 103 647 273 1 648 196 1 649 197 1 650 275 1 651 225 1 652 265 1 653 183 1 654 272 1 655 270 1 656 274 104 657 239 104 658 267 104 659 220 1 660 272 1 661 182 1 662 273 105 663 213 105 664 269 105 665 272 1 666 227 1 667 270 1 668 272 106 669 168 106 670 169 106 671 210 1 672 277 1 673 202 1 674 203 107 675 277 107 676 261 107 677 278 55 678 176 55 679 177 55 680 224 1 681 278 1 682 174 1 683 175 1 684 278 1 685 259 1 686 279 108 687 204 108 688 205 108 689 238 1 690 279 1 691 146 1 692 147 3 693 279 3 694 257 3 695 280 1 696 152 1 697 153 1 698 212 80 699 280 80 700 198 80 701 199 1 702 280 1 703 254 1 704 281 1 705 180 1 706 181 1 707 226 1 708 281 1 709 170 1 710 171 100 711 281 100 712 253 100 713 282 1 714 156 1 715 157 1 716 214 1 717 282 1 718 194 1 719 195 1 720 282 1 721 250 1 722 283 1 723 184 1 724 185 1 725 228 109 726 283 109 727 166 109 728 167 110 729 283 110 730 249 110 731 284 1 732 160 1 733 161 1 734 216 111 735 284 111 736 190 111 737 191 1 738 284 1 739 246 1 740 285 1 741 188 1 742 189 1 743 230 112 744 285 112 745 162 112 746 163 1 747 285 1 748 245 1 749 286 113 750 164 113 751 165 113 752 218 1 753 286 1 754 186 1 755 187 1 756 286 1 757 241 1 758 287 1 759 192 1 760 193 1 761 232 114 762 287 114 763 158 114 764 159 115 765 287 115 766 242 115 767 120 116 768 148 116 769 4 116 770 28 117 771 173 117 772 29 117 773 40 118 774 185 118 775 41 118 776 62 119 777 208 119 778 64 119 779 23 120 780 166 120 781 22 120 782 53 121 783 213 121 784 69 121 785 25 122 786 227 122 787 83 122 788 97 123 789 187 123 790 43 123 791 49 124 792 215 124 793 71 124 794 116 125 795 204 125 796 60 125 797 64 126 798 256 126 799 112 126 800 87 127 801 246 127 802 102 127 803 52 128 804 197 128 805 53 128 806 115 129 807 175 129 808 31 129 809 66 130 810 264 130 811 120 130 812 103 131 813 188 131 814 44 131 815 79 132 816 259 132 817 115 132 818 2 133 819 238 133 820 94 133 821 7 134 822 150 134 823 6 134 824 71 135 825 242 135 826 98 135 827 50 136 828 214 136 829 70 136 830 96 137 831 168 137 832 24 137 833 15 138 834 158 138 835 14 138 836 93 139 837 261 139 838 117 139 839 73 140 840 245 140 841 101 140 842 91 141 843 254 141 844 110 141 845 6 142 846 236 142 847 92 142 848 85 143 849 241 143 850 97 143 851 3 144 852 146 144 853 2 144 854 21 145 855 229 145 856 85 145 857 60 146 858 205 146 859 61 146 860 29 147 861 225 147 862 81 147 863 110 148 864 199 148 865 55 148 866 59 149 867 202 149 868 58 149 869 44 150 870 189 150 871 45 150 872 14 151 873 232 151 874 88 151 875 5 152 876 237 152 877 93 152 878 81 153 879 265 153 880 121 153 881 89 154 882 250 154 883 106 154 884 127 155 885 196 155 886 52 155 887 67 156 888 263 156 889 119 156 890 42 157 891 218 157 892 74 157 893 41 158 894 219 158 895 75 158 896 107 159 897 184 159 898 40 159 899 45 160 900 217 160 901 73 160 902 47 161 903 190 161 904 46 161 905 39 162 906 182 162 907 38 162 908 111 163 909 180 163 910 36 163 911 54 164 912 212 164 913 68 164 914 84 165 915 251 165 916 107 165 917 1 166 918 239 166 919 95 166 920 82 167 921 255 167 922 111 167 923 19 168 924 162 168 925 18 168 926 94 169 927 260 169 928 116 169 929 121 170 930 179 170 931 35 170 932 95 171 933 267 171 934 123 171 935 76 172 936 240 172 937 96 172 938 16 173 939 161 173 940 17 173 941 26 174 942 226 174 943 82 174 944 61 175 945 209 175 946 65 175 947 77 176 948 253 176 949 109 176 950 88 177 951 243 177 952 99 177 953 8 178 954 153 178 955 9 178 956 34 179 957 222 179 958 78 179 959 55 180 960 198 180 961 54 180 962 109 181 963 171 181 964 27 181 965 124 182 966 172 182 967 28 182 968 123 183 969 207 183 970 63 183 971 90 184 972 271 184 973 127 184 974 100 185 975 164 185 976 20 185 977 35 186 978 178 186 979 34 186 980 126 187 981 183 187 982 39 187 983 18 188 984 230 188 985 86 188 986 125 189 987 155 189 988 11 189 989 74 190 990 244 190 991 100 190 992 22 191 993 228 191 994 84 191 995 30 192 996 224 192 997 80 192 998 32 193 999 177 193 1000 33 193 1001 9 194 1002 235 194 1003 91 194 1004 86 195 1005 247 195 1006 103 195 1007 38 196 1008 220 196 1009 76 196 1010 27 197 1011 170 197 1012 26 197 1013 113 198 1014 147 198 1015 3 198 1016 72 199 1017 248 199 1018 104 199 1019 117 200 1020 203 200 1021 59 200 1022 108 201 1023 156 201 1024 12 201 1025 13 202 1026 233 202 1027 89 202 1028 99 203 1029 192 203 1030 48 203 1031 112 204 1032 144 204 1033 0 204 1034 70 205 1035 252 205 1036 108 205 1037 119 206 1038 151 206 1039 7 206 1040 69 207 1041 269 207 1042 125 207 1043 65 208 1044 257 208 1045 113 208 1046 31 209 1047 174 209 1048 30 209 1049 102 210 1050 191 210 1051 47 210 1052 12 211 1053 157 211 1054 13 211 1055 63 212 1056 206 212 1057 62 212 1058 98 213 1059 159 213 1060 15 213 1061 104 214 1062 160 214 1063 16 214 1064 43 215 1065 186 215 1066 42 215 1067 118 216 1068 176 216 1069 32 216 1070 48 217 1071 193 217 1072 49 217 1073 105 218 1074 167 218 1075 23 218 1076 11 219 1077 154 219 1078 10 219 1079 83 220 1080 270 220 1081 126 220 1082 68 221 1083 258 221 1084 114 221 1085 106 222 1086 195 222 1087 51 222 1088 78 223 1089 268 223 1090 124 223 1091 46 224 1092 216 224 1093 72 224 1094 51 225 1095 194 225 1096 50 225 1097 33 226 1098 223 226 1099 79 226 1100 57 227 1101 211 227 1102 67 227 1103 0 228 1104 145 228 1105 1 228 1106 24 229 1107 169 229 1108 25 229 1109 114 230 1110 152 230 1111 8 230 1112 20 231 1113 165 231 1114 21 231 1115 17 232 1116 231 232 1117 87 232 1118 4 233 1119 149 233 1120 5 233 1121 92 234 1122 266 234 1123 122 234 1124 122 235 1125 200 235 1126 56 235 1127 75 236 1128 249 236 1129 105 236 1130 101 237 1131 163 237 1132 19 237 1133 80 238 1134 262 238 1135 118 238 1136 36 239 1137 181 239 1138 37 239 1139 37 240 1140 221 240 1141 77 240 1142 56 241 1143 201 241 1144 57 241 1145 58 242 1146 210 242 1147 66 242 1148 10 243 1149 234 243 1150 90 243 1151 120 244 1152 264 244 1153 148 244 1154 28 245 1155 172 245 1156 173 245 1157 40 246 1158 184 246 1159 185 246 1160 62 247 1161 206 247 1162 208 247 1163 23 248 1164 167 248 1165 166 248 1166 53 249 1167 197 249 1168 213 249 1169 25 250 1170 169 250 1171 227 250 1172 97 251 1173 241 251 1174 187 251 1175 49 252 1176 193 252 1177 215 252 1178 116 125 1179 260 125 1180 204 125 1181 64 126 1182 208 126 1183 256 126 1184 87 253 1185 231 253 1186 246 253 1187 52 254 1188 196 254 1189 197 254 1190 115 255 1191 259 255 1192 175 255 1193 66 256 1194 210 256 1195 264 256 1196 103 257 1197 247 257 1198 188 257 1199 79 258 1200 223 258 1201 259 258 1202 2 259 1203 146 259 1204 238 259 1205 7 260 1206 151 260 1207 150 260 1208 71 261 1209 215 261 1210 242 261 1211 50 262 1212 194 262 1213 214 262 1214 96 263 1215 240 263 1216 168 263 1217 15 264 1218 159 264 1219 158 264 1220 93 265 1221 237 265 1222 261 265 1223 73 266 1224 217 266 1225 245 266 1226 91 267 1227 235 267 1228 254 267 1229 6 268 1230 150 268 1231 236 268 1232 85 269 1233 229 269 1234 241 269 1235 3 270 1236 147 270 1237 146 270 1238 21 271 1239 165 271 1240 229 271 1241 60 272 1242 204 272 1243 205 272 1244 29 273 1245 173 273 1246 225 273 1247 110 148 1248 254 148 1249 199 148 1250 59 274 1251 203 274 1252 202 274 1253 44 275 1254 188 275 1255 189 275 1256 14 276 1257 158 276 1258 232 276 1259 5 277 1260 149 277 1261 237 277 1262 81 153 1263 225 153 1264 265 153 1265 89 278 1266 233 278 1267 250 278 1268 127 279 1269 271 279 1270 196 279 1271 67 280 1272 211 280 1273 263 280 1274 42 281 1275 186 281 1276 218 281 1277 41 282 1278 185 282 1279 219 282 1280 107 283 1281 251 283 1282 184 283 1283 45 284 1284 189 284 1285 217 284 1286 47 285 1287 191 285 1288 190 285 1289 39 286 1290 183 286 1291 182 286 1292 111 287 1293 255 287 1294 180 287 1295 54 288 1296 198 288 1297 212 288 1298 84 289 1299 228 289 1300 251 289 1301 1 290 1302 145 290 1303 239 290 1304 82 291 1305 226 291 1306 255 291 1307 19 292 1308 163 292 1309 162 292 1310 94 293 1311 238 293 1312 260 293 1313 121 294 1314 265 294 1315 179 294 1316 95 295 1317 239 295 1318 267 295 1319 76 296 1320 220 296 1321 240 296 1322 16 297 1323 160 297 1324 161 297 1325 26 298 1326 170 298 1327 226 298 1328 61 299 1329 205 299 1330 209 299 1331 77 300 1332 221 300 1333 253 300 1334 88 301 1335 232 301 1336 243 301 1337 8 178 1338 152 178 1339 153 178 1340 34 302 1341 178 302 1342 222 302 1343 55 303 1344 199 303 1345 198 303 1346 109 304 1347 253 304 1348 171 304 1349 124 182 1350 268 182 1351 172 182 1352 123 305 1353 267 305 1354 207 305 1355 90 184 1356 234 184 1357 271 184 1358 100 306 1359 244 306 1360 164 306 1361 35 307 1362 179 307 1363 178 307 1364 126 308 1365 270 308 1366 183 308 1367 18 188 1368 162 188 1369 230 188 1370 125 309 1371 269 309 1372 155 309 1373 74 310 1374 218 310 1375 244 310 1376 22 311 1377 166 311 1378 228 311 1379 30 192 1380 174 192 1381 224 192 1382 32 312 1383 176 312 1384 177 312 1385 9 194 1386 153 194 1387 235 194 1388 86 313 1389 230 313 1390 247 313 1391 38 314 1392 182 314 1393 220 314 1394 27 197 1395 171 197 1396 170 197 1397 113 315 1398 257 315 1399 147 315 1400 72 316 1401 216 316 1402 248 316 1403 117 317 1404 261 317 1405 203 317 1406 108 318 1407 252 318 1408 156 318 1409 13 319 1410 157 319 1411 233 319 1412 99 320 1413 243 320 1414 192 320 1415 112 321 1416 256 321 1417 144 321 1418 70 205 1419 214 205 1420 252 205 1421 119 206 1422 263 206 1423 151 206 1424 69 322 1425 213 322 1426 269 322 1427 65 323 1428 209 323 1429 257 323 1430 31 324 1431 175 324 1432 174 324 1433 102 325 1434 246 325 1435 191 325 1436 12 326 1437 156 326 1438 157 326 1439 63 327 1440 207 327 1441 206 327 1442 98 328 1443 242 328 1444 159 328 1445 104 329 1446 248 329 1447 160 329 1448 43 330 1449 187 330 1450 186 330 1451 118 331 1452 262 331 1453 176 331 1454 48 217 1455 192 217 1456 193 217 1457 105 332 1458 249 332 1459 167 332 1460 11 333 1461 155 333 1462 154 333 1463 83 334 1464 227 334 1465 270 334 1466 68 335 1467 212 335 1468 258 335 1469 106 336 1470 250 336 1471 195 336 1472 78 337 1473 222 337 1474 268 337 1475 46 338 1476 190 338 1477 216 338 1478 51 339 1479 195 339 1480 194 339 1481 33 340 1482 177 340 1483 223 340 1484 57 341 1485 201 341 1486 211 341 1487 0 342 1488 144 342 1489 145 342 1490 24 343 1491 168 343 1492 169 343 1493 114 344 1494 258 344 1495 152 344 1496 20 345 1497 164 345 1498 165 345 1499 17 346 1500 161 346 1501 231 346 1502 4 347 1503 148 347 1504 149 347 1505 92 348 1506 236 348 1507 266 348 1508 122 349 1509 266 349 1510 200 349 1511 75 350 1512 219 350 1513 249 350 1514 101 351 1515 245 351 1516 163 351 1517 80 352 1518 224 352 1519 262 352 1520 36 353 1521 180 353 1522 181 353 1523 37 354 1524 181 354 1525 221 354 1526 56 355 1527 200 355 1528 201 355 1529 58 356 1530 202 356 1531 210 356 1532 10 357 1533 154 357 1534 234 357 1535

@@ -151,7 +151,7 @@ - 0.6 0 0 0 0 0.6 0 0 0 0 0.6 0 0 0 0 1 + 0.8636544 0 0 0 0 0.8636544 0 0 0 0 0.8636544 0 0 0 0 1 diff --git a/src/main/resources/views/RaceView.fxml b/src/main/resources/views/RaceView.fxml index a11b1fd0..e313899d 100644 --- a/src/main/resources/views/RaceView.fxml +++ b/src/main/resources/views/RaceView.fxml @@ -236,7 +236,7 @@ - + From d1edbc4b8a145f46fbd18b65473a1355ce5f67b7 Mon Sep 17 00:00:00 2001 From: Calum Date: Thu, 28 Sep 2017 10:19:32 +1300 Subject: [PATCH 04/26] Put the arrows into the minimap. Fixed the issue with curved section of port marks. #fix #implement --- src/main/java/seng302/visualiser/MiniMap.java | 2 +- .../java/seng302/visualiser/fxObjects/MarkArrowFactory.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seng302/visualiser/MiniMap.java b/src/main/java/seng302/visualiser/MiniMap.java index 5cfa843b..3d626c14 100644 --- a/src/main/java/seng302/visualiser/MiniMap.java +++ b/src/main/java/seng302/visualiser/MiniMap.java @@ -30,7 +30,7 @@ public class MiniMap extends MapPreview { this.boats = boats; this.player = player; setBoats(boats); -// player.addMarkRoundingListener(this::updateMarkArrows); + player.addMarkRoundingListener(this::updateMarkArrows); } public void setBoats(List yachts) { diff --git a/src/main/java/seng302/visualiser/fxObjects/MarkArrowFactory.java b/src/main/java/seng302/visualiser/fxObjects/MarkArrowFactory.java index 4f871801..a5d8175b 100644 --- a/src/main/java/seng302/visualiser/fxObjects/MarkArrowFactory.java +++ b/src/main/java/seng302/visualiser/fxObjects/MarkArrowFactory.java @@ -106,7 +106,7 @@ public class MarkArrowFactory { Arc roundSection = new Arc( 0, 0, MARK_ARROW_SEPARATION, MARK_ARROW_SEPARATION, //Where to start drawing arc from - (roundingSide == RoundingSide.PORT ? 0 : angleOfEntry), + (roundingSide == RoundingSide.PORT ? 180 + angleOfEntry : angleOfEntry), //Which way to go around the mark. (clockwise vs anticlockwise) roundingSide == RoundingSide.PORT ? Math.abs(angleOfExit - angleOfEntry) : -Math.abs(angleOfEntry - angleOfExit) ); From 265b20ad61c7a9c2b173206091e10b3478ac93c9 Mon Sep 17 00:00:00 2001 From: Alistair McIntyre Date: Thu, 28 Sep 2017 12:12:22 +1300 Subject: [PATCH 05/26] - Created Madagascar Map Initial tags : #story[1275] --- src/main/java/seng302/model/ClientYacht.java | 5 +- src/main/resources/maps/madagascar.xml | 64 ++++++++++++++++++++ 2 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/maps/madagascar.xml diff --git a/src/main/java/seng302/model/ClientYacht.java b/src/main/java/seng302/model/ClientYacht.java index 9e38b781..612ca1e5 100644 --- a/src/main/java/seng302/model/ClientYacht.java +++ b/src/main/java/seng302/model/ClientYacht.java @@ -13,15 +13,11 @@ import javafx.beans.property.ReadOnlyIntegerProperty; import javafx.beans.property.ReadOnlyIntegerWrapper; import javafx.beans.property.ReadOnlyLongProperty; import javafx.beans.property.ReadOnlyLongWrapper; -import javafx.beans.value.ObservableObjectValue; -import javafx.collections.FXCollections; import javafx.scene.paint.Color; -import jdk.nashorn.internal.objects.annotations.Function; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import seng302.model.token.TokenType; import seng302.visualiser.fxObjects.assets_3D.BoatMeshType; -import seng302.model.token.TokenType; import seng302.visualiser.fxObjects.assets_3D.BoatObject; /** @@ -286,6 +282,7 @@ public class ClientYacht extends Observable { public void setHeading(Double heading) { this.heading = heading; + System.out.println(heading); setHeadingProperty(); } diff --git a/src/main/resources/maps/madagascar.xml b/src/main/resources/maps/madagascar.xml new file mode 100644 index 00000000..2c82e661 --- /dev/null +++ b/src/main/resources/maps/madagascar.xml @@ -0,0 +1,64 @@ + + + + Madagascar + + 57.6679590 + 11.8503233 + + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From b9a2d60115e0c8d1b27a4219307cfd5ee60101d7 Mon Sep 17 00:00:00 2001 From: William Muir Date: Thu, 28 Sep 2017 12:58:19 +1300 Subject: [PATCH 06/26] Merged dev changes back on to mini map #story[1273] --- .../controllers/RaceViewController.java | 1 + .../visualiser/controllers/ViewManager.java | 4 +- .../views/dialogs/TokenInfoDialog.fxml | 78 +++++++++++++++++++ 3 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/views/dialogs/TokenInfoDialog.fxml diff --git a/src/main/java/seng302/visualiser/controllers/RaceViewController.java b/src/main/java/seng302/visualiser/controllers/RaceViewController.java index 4852c220..745207d4 100644 --- a/src/main/java/seng302/visualiser/controllers/RaceViewController.java +++ b/src/main/java/seng302/visualiser/controllers/RaceViewController.java @@ -191,6 +191,7 @@ public class RaceViewController extends Thread { raceData.getMarkSequence(), raceData.getCourseLimit(), new ArrayList<>(participants.values()), player ); + miniMapButton.setOnMouseClicked((event) -> { if (miniMapPane.visibleProperty().get()) { miniMapPane.setVisible(false); diff --git a/src/main/java/seng302/visualiser/controllers/ViewManager.java b/src/main/java/seng302/visualiser/controllers/ViewManager.java index 1e3ab4ce..5152768c 100644 --- a/src/main/java/seng302/visualiser/controllers/ViewManager.java +++ b/src/main/java/seng302/visualiser/controllers/ViewManager.java @@ -404,7 +404,9 @@ public class ViewManager { .add(getClass().getResource("/css/dialogs/Snackbar.css").toExternalForm()); JFXSnackbar bar = new JFXSnackbar(decorator); - bar.enqueue(new JFXSnackbar.SnackbarEvent(msg)); + Platform.runLater(() -> { + bar.enqueue(new JFXSnackbar.SnackbarEvent(msg)); + }); } public Stage getStage() { diff --git a/src/main/resources/views/dialogs/TokenInfoDialog.fxml b/src/main/resources/views/dialogs/TokenInfoDialog.fxml new file mode 100644 index 00000000..e6bbab45 --- /dev/null +++ b/src/main/resources/views/dialogs/TokenInfoDialog.fxml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 02aabc316291bd42b71630d68104e45f8c89bff7 Mon Sep 17 00:00:00 2001 From: Kusal Ekanayake Date: Thu, 28 Sep 2017 14:35:40 +1300 Subject: [PATCH 07/26] Removing dead code in race view controller and fixed mark rounding bug --- .../java/seng302/visualiser/GameClient.java | 4 +- .../java/seng302/visualiser/GameView3D.java | 23 +- .../FinishScreenViewController.java | 2 +- .../controllers/RaceViewController.java | 369 +----------------- src/main/resources/maps/loop.xml | 11 +- 5 files changed, 32 insertions(+), 377 deletions(-) diff --git a/src/main/java/seng302/visualiser/GameClient.java b/src/main/java/seng302/visualiser/GameClient.java index 4d09e60f..e8d92892 100644 --- a/src/main/java/seng302/visualiser/GameClient.java +++ b/src/main/java/seng302/visualiser/GameClient.java @@ -382,8 +382,8 @@ public class GameClient { if (raceFinished) { raceViewController.showFinishDialog(finishedBoats); Sounds.playFinishSound(); - close(); - ViewManager.getInstance().getGameClient().stopGame(); +// close(); +// ViewManager.getInstance().getGameClient().stopGame(); //loadFinishScreenView(); } raceState.setRaceFinished(); diff --git a/src/main/java/seng302/visualiser/GameView3D.java b/src/main/java/seng302/visualiser/GameView3D.java index 4e6b421d..e5454dc1 100644 --- a/src/main/java/seng302/visualiser/GameView3D.java +++ b/src/main/java/seng302/visualiser/GameView3D.java @@ -350,18 +350,19 @@ public class GameView3D extends GameView{ for (ObservableValue o : Arrays .asList(playerBoat.layoutXProperty(), playerBoat.layoutXProperty())) { o.addListener((obs, oldVal, newVal) -> { + if (playerYacht.getLegNumber() < course.size()) { + List marks = course.get(playerYacht.getLegNumber()).getMarks(); + Point2D midPoint = new Point2D(0, 0); + if (marks.size() == 1) { + midPoint = scaledPoint.findScaledXY(marks.get(0)); + } else if (marks.size() == 2) { + midPoint = (scaledPoint.findScaledXY(marks.get(0))) + .midpoint(scaledPoint.findScaledXY(marks.get(1))); + } - List marks = course.get(playerYacht.getLegNumber()).getMarks(); - Point2D midPoint = new Point2D(0, 0); - if (marks.size() == 1) { - midPoint = scaledPoint.findScaledXY(marks.get(0)); - } else if (marks.size() == 2) { - midPoint = (scaledPoint.findScaledXY(marks.get(0))) - .midpoint(scaledPoint.findScaledXY(marks.get(1))); - } - - if (midPoint != null) { - playerBoat.updateMarkIndicator(midPoint); + if (midPoint != null) { + playerBoat.updateMarkIndicator(midPoint); + } } }); diff --git a/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java b/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java index 86e39ead..edd805e1 100644 --- a/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java +++ b/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java @@ -88,7 +88,7 @@ public class FinishScreenViewController implements Initializable { public void switchToStartScreenView() { Sounds.playButtonClick(); - setContentPane("/views/StartScreenView.fxml"); + ViewManager.getInstance().goToStartView(); } public void playButtonHoverSound(MouseEvent mouseEvent) { diff --git a/src/main/java/seng302/visualiser/controllers/RaceViewController.java b/src/main/java/seng302/visualiser/controllers/RaceViewController.java index ea778aa9..45d8d405 100644 --- a/src/main/java/seng302/visualiser/controllers/RaceViewController.java +++ b/src/main/java/seng302/visualiser/controllers/RaceViewController.java @@ -4,62 +4,34 @@ import com.jfoenix.controls.JFXButton; import com.jfoenix.controls.JFXDialog; import java.io.IOException; import java.util.ArrayList; -import java.util.List; import java.util.Map; import java.util.Timer; import java.util.TimerTask; -import java.util.concurrent.TimeUnit; import javafx.animation.RotateTransition; -import javafx.animation.Timeline; import javafx.application.Platform; import javafx.beans.property.ReadOnlyBooleanProperty; -import javafx.collections.FXCollections; -import javafx.collections.ListChangeListener; -import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; -import javafx.geometry.Point2D; -import javafx.scene.Scene; import javafx.scene.SubScene; -import javafx.scene.chart.LineChart; -import javafx.scene.chart.NumberAxis; -import javafx.scene.chart.XYChart.Series; -import javafx.scene.control.Button; -import javafx.scene.control.CheckBox; -import javafx.scene.control.ComboBox; import javafx.scene.control.Label; -import javafx.scene.control.Slider; import javafx.scene.control.TextField; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; -import javafx.scene.layout.GridPane; import javafx.scene.layout.Pane; import javafx.scene.layout.StackPane; -import javafx.scene.layout.VBox; -import javafx.scene.paint.Color; import javafx.scene.paint.Paint; -import javafx.scene.shape.Line; -import javafx.scene.shape.Polyline; -import javafx.scene.text.Text; -import javafx.stage.Stage; -import javafx.stage.StageStyle; import javafx.util.Duration; import seng302.model.ClientYacht; import seng302.model.RaceState; -import seng302.model.mark.CompoundMark; -import seng302.model.mark.Mark; import seng302.model.stream.xml.parser.RaceXMLData; import seng302.model.token.TokenType; import seng302.utilities.Sounds; import seng302.visualiser.GameView3D; -import seng302.visualiser.controllers.annotations.ImportantAnnotationController; import seng302.visualiser.controllers.annotations.ImportantAnnotationDelegate; import seng302.visualiser.controllers.annotations.ImportantAnnotationsState; import seng302.visualiser.controllers.dialogs.FinishDialogController; import seng302.visualiser.fxObjects.ChatHistory; -import seng302.visualiser.fxObjects.assets_2D.WindArrow; -import seng302.visualiser.fxObjects.assets_3D.BoatObject; /** * Controller class that manages the display of a race @@ -74,8 +46,7 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel private AnchorPane loadingScreenPane; @FXML private ImageView loadingScreen; - @FXML - private Pane basePane; + @FXML private JFXButton chatSend; @FXML @@ -83,31 +54,11 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel @FXML private TextField chatInput; @FXML - private LineChart raceSparkLine; - @FXML - private NumberAxis sparklineYAxis; - @FXML - private VBox positionVbox; - @FXML - private CheckBox toggleFps; - @FXML private Label timerLabel; @FXML private StackPane contentStackPane; - private GridPane contentGridPane; - @FXML - private AnchorPane rvAnchorPane; - @FXML - private AnchorPane windArrowHolder; - @FXML - private Slider annotationSlider; - @FXML - private Button selectAnnotationBtn; - @FXML - private ComboBox yachtSelectionComboBox; - @FXML - private Text fpsDisplay; + @FXML private ImageView windImageView; @FXML @@ -119,21 +70,12 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel @FXML private ImageView velocityIcon, handlingIcon, windWalkerIcon, bumperIcon, badRandomIcon; - //Race Data - private Map participants; - private Map markers; - private RaceXMLData courseData; private GameView3D gameView; private RaceState raceState; private ChatHistory chatHistory; - private Timeline timerTimeline; private Timer timer = new Timer(); - private List> sparkLineData = new ArrayList<>(); - private ImportantAnnotationsState importantAnnotations; - private Polyline windArrow = new WindArrow(Color.LIGHTGRAY); - private ObservableList selectionComboBoxList = FXCollections.observableArrayList(); private ClientYacht player; private JFXDialog finishScreenDialog; private FinishDialogController finishDialogController; @@ -149,11 +91,11 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel Image loadingImage = new Image("PP.png"); loadingScreen.setImage(loadingImage); //Centers the Image within the image view - double w = 0; - double h = 0; + double w; + double h; double ratioX = loadingScreen.getFitWidth() / loadingImage.getWidth(); double ratioY = loadingScreen.getFitHeight() / loadingImage.getHeight(); - double reduceRatio = 0; + double reduceRatio; if(ratioX >= ratioY) { reduceRatio = ratioY; } else { @@ -180,9 +122,7 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel chatHistoryHolder.heightProperty() ); - contentStackPane.setOnMouseClicked(event -> { - contentStackPane.requestFocus(); - }); + contentStackPane.setOnMouseClicked(event -> contentStackPane.requestFocus()); Platform.runLater(contentStackPane::requestFocus); //Makes the chat history non transparent when clicked on chatInput.focusedProperty().addListener((observable, oldValue, newValue) -> { @@ -205,12 +145,7 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel loadingScreenPane.setVisible(false); contentStackPane.setVisible(true); - Platform.runLater(new Runnable() { - @Override - public void run() { - contentStackPane.requestFocus(); - } - }); + Platform.runLater(() -> contentStackPane.requestFocus()); } /** @@ -238,24 +173,13 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel Map participants, RaceXMLData raceData, RaceState raceState, ClientYacht player) { - this.participants = participants; - this.courseData = raceData; - this.markers = raceData.getCompoundMarks(); this.raceState = raceState; this.player = player; - raceState.getPlayerPositions().addListener((ListChangeListener) c -> { - while (c.next()) { - if (c.wasPermutated()) { - updateOrder(raceState.getPlayerPositions()); - } - } - }); player.addPowerUpListener(this::displayPowerUpIcon); player.addPowerDownListener(this::removeIcon); - updateOrder(raceState.getPlayerPositions()); gameView = new GameView3D(); Platform.runLater(() -> { contentStackPane.getChildren().add(0, gameView.getAssets()); @@ -342,7 +266,7 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel } } - public void removeIcon(ClientYacht yacht) { + private void removeIcon(ClientYacht yacht) { if (yacht == player) { blinkingTimer.cancel(); iconToDisplay.setVisible(false); @@ -357,37 +281,10 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel * @param importantAnnotationsState The current state of the selected annotations */ public void importantAnnotationsChanged(ImportantAnnotationsState importantAnnotationsState) { - this.importantAnnotations = importantAnnotationsState; - setAnnotations((int) annotationSlider.getValue()); // Refresh the displayed annotations +// setAnnotations((int) annotationSlider.getValue()); // Refresh the displayed annotations } - /** - * Loads the "select annotations" view in a new window - */ - private void loadSelectAnnotationView() { - try { - FXMLLoader fxmlLoader = new FXMLLoader(); - Stage stage = new Stage(); - // Set controller - ImportantAnnotationController controller = new ImportantAnnotationController( - this, stage - ); - fxmlLoader.setController(controller); - // Load FXML and set CSS - fxmlLoader.setLocation( - getClass().getResource("/views/importantAnnotationSelectView.fxml") - ); - Scene scene = new Scene(fxmlLoader.load(), 469, 298); - scene.getStylesheets().add(getClass().getResource("/css/master.css").toString()); - stage.initStyle(StageStyle.UNDECORATED); - stage.setScene(scene); - stage.show(); - controller.loadState(importantAnnotations); - } catch (IOException e) { - e.printStackTrace(); - } - } /** * Initialises a timer which updates elements of the RaceView such as wind direction, yacht @@ -406,34 +303,6 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel }, 0, 1000); } - /** - * Iterates over all corners until ones SeqID matches with the yachts current leg number. - * Then it gets the compoundMarkID of that corner and uses it to fetch the appropriate mark - * Returns null if no next mark found. - * @param bg The BoatGroup to find the next mark of - * @return The next Mark or null if none found - */ - private Mark getNextMark(BoatObject bg) { - // TODO: 1/08/17 Move to GameView -// -// Integer legNumber = bg.getClientYacht().getLegNumber(); -// List markSequence = courseData.getMarkSequence(); -// -// if (legNumber == 0) { -// return null; -// } else if (legNumber == markSequence.size() - 1) { -// return null; -// } -// -// for (Corner corner : markSequence) { -// if (legNumber + 2 == corner.getSeqID()) { -// return courseData.getCompoundMarks().get(corner.getCompoundMarkID()); -// } -// } -// return null; - return null; - } - /** * Updates the wind direction arrow and text as from info from the StreamParser @@ -516,226 +385,6 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel boatHeadingLabel.setText(String.format("Boat Heading:\n%.1f°", player.getHeading())); } - /** - * Updates the order of the yachts as from the StreamParser and sets them in the yacht order - * section - */ - private void updateOrder(ObservableList yachts) { -// List vboxEntries = new ArrayList<>(); -// -// for (int i = 0; i < yachts.size(); i++) { -//// System.out.println("yacht == null " + String.valueOf(yacht == null)); -// if (yachts.get(i).getBoatStatus() == BoatStatus.FINISHED -// .getCode()) { // 3 is finish status -// Text textToAdd = new Text(i + 1 + ". " + -// yachts.get(i).getShortName() + " (Finished)"); -// textToAdd.setFill(Paint.valueOf("#d3d3d3")); -// vboxEntries.add(textToAdd); -// -// } else { -// Text textToAdd = new Text(i + 1 + ". " + -// yachts.get(i).getShortName() + " "); -// textToAdd.setFill(Paint.valueOf("#d3d3d3")); -// textToAdd.setStyle(""); -// vboxEntries.add(textToAdd); -// } -// } -// Platform.runLater(() -> -// positionVbox.getChildren().setAll(vboxEntries) -// ); - } - - - private void updateLaylines(BoatObject bg) { - // TODO: 1/08/17 move to GameView -// -// Mark nextMark = getNextMark(bg); -// Boolean isUpwind = null; -// // Can only calc leg direction if there is a next mark and it is a gate mark -// if (nextMark != null) { -// if (nextMark instanceof GateMark) { -// if (bg.isUpwindLeg(gameViewController, nextMark)) { -// isUpwind = true; -// } else { -// isUpwind = false; -// } -// -// for(MarkObject mg : gameViewController.getMarkGroups()) { -// -// mg.removeLaylines(); -// -// if (mg.getMainMark().getId() == nextMark.getId()) { -// -// SingleMark singleMark1 = ((GateMark) nextMark).getSingleMark1(); -// SingleMark singleMark2 = ((GateMark) nextMark).getSingleMark2(); -// Point2D markPoint1 = gameViewController -// .findScaledXY(singleMark1.getLatitude(), singleMark1.getLongitude()); -// Point2D markPoint2 = gameViewController -// .findScaledXY(singleMark2.getLatitude(), singleMark2.getLongitude()); -// HashMap angleAndSpeed; -// if (isUpwind) { -// angleAndSpeed = PolarTable.getOptimalUpwindVMG(StreamParser.getWindSpeed()); -// } else { -// angleAndSpeed = PolarTable.getOptimalDownwindVMG(StreamParser.getWindSpeed()); -// } -// -// Double resultingAngle = angleAndSpeed.keySet().iterator().next(); -// -// -// Point2D yachtCurrentPos = new Point2D(bg.getBoatLayoutX(), bg.getBoatLayoutY()); -// Point2D gateMidPoint = markPoint1.midpoint(markPoint2); -// Integer lineFuncResult = GeoUtility.lineFunction(yachtCurrentPos, gateMidPoint, markPoint2); -// Line rightLayline = new Line(); -// Line leftLayline = new Line(); -// if (lineFuncResult == 1) { -// rightLayline = makeRightLayline(markPoint2, 180 - resultingAngle, StreamParser.getWindDirection()); -// leftLayline = makeLeftLayline(markPoint1, 180 - resultingAngle, StreamParser.getWindDirection()); -// } else if (lineFuncResult == -1) { -// rightLayline = makeRightLayline(markPoint1, 180 - resultingAngle, StreamParser.getWindDirection()); -// leftLayline = makeLeftLayline(markPoint2, 180 - resultingAngle, StreamParser.getWindDirection()); -// } -// -// leftLayline.setStrokeWidth(0.5); -// leftLayline.setStroke(bg.getBoat().getColour()); -// -// rightLayline.setStrokeWidth(0.5); -// rightLayline.setStroke(bg.getBoat().getColour()); -// -// bg.setLaylines(leftLayline, rightLayline); -// mg.addLaylines(leftLayline, rightLayline); -// -// } -// } -// } -// } - } - - - private Point2D getPointRotation(Point2D ref, Double distance, Double angle) { - Double newX = ref.getX() + (ref.getX() + distance - ref.getX()) * Math.cos(angle) - - (ref.getY() + distance - ref.getY()) * Math.sin(angle); - Double newY = ref.getY() + (ref.getX() + distance - ref.getX()) * Math.sin(angle) - + (ref.getY() + distance - ref.getY()) * Math.cos(angle); - - return new Point2D(newX, newY); - } - - - public Line makeLeftLayline(Point2D startPoint, Double layLineAngle, Double baseAngle) { - Point2D ep = getPointRotation(startPoint, 50.0, baseAngle + layLineAngle); - Line line = new Line(startPoint.getX(), startPoint.getY(), ep.getX(), ep.getY()); - return line; - - } - - - public Line makeRightLayline(Point2D startPoint, Double layLineAngle, Double baseAngle) { - - Point2D ep = getPointRotation(startPoint, 50.0, baseAngle - layLineAngle); - Line line = new Line(startPoint.getX(), startPoint.getY(), ep.getX(), ep.getY()); - return line; - - } - - - /** - * Initialised the combo box with any yachts currently in the race and adds the required listener - * for the combobox to take action upon selection - */ - private void initialiseBoatSelectionComboBox() { -// yachtSelectionComboBox.setItems( -// FXCollections.observableArrayList(participants.values()) -// ); -// //Null check is if the listener is fired but nothing selected -// yachtSelectionComboBox.valueProperty().addListener((obs, lastSelection, selectedBoat) -> { -// if (selectedBoat != null) { -// gameView.selectBoat(selectedBoat); -// } -// }); - - //TODO uncomment out -// selectionComboBoxList.setAll(participants.values()); -// yachtSelectionComboBox.setItems(selectionComboBoxList); -// yachtSelectionComboBox.valueProperty().addListener((obs, lastSelection, selectedBoat) -> { -// if (selectedBoat != null) { -// gameView.selectBoat(selectedBoat); -// } -// }); - } - - /** - * Display the list of yachts in the order they finished the race - */ - private void loadRaceResultView() { - FXMLLoader loader = new FXMLLoader(getClass().getResource("/views/FinishView.fxml")); - - try { - contentGridPane.getChildren().removeAll(); - contentGridPane.getChildren().clear(); - contentGridPane.getChildren().addAll((Pane) loader.load()); - - } catch (javafx.fxml.LoadException e) { - System.err.println(e.getCause().toString()); - } catch (IOException e) { - System.err.println(e.toString()); - } - } - - private String getMillisToFormattedTime(long milliseconds) { - return String.format("%02d:%02d:%02d", - TimeUnit.MILLISECONDS.toHours(milliseconds), - TimeUnit.MILLISECONDS.toMinutes(milliseconds) % 60, //Modulus 60 minutes per hour - TimeUnit.MILLISECONDS.toSeconds(milliseconds) % 60 //Modulus 60 seconds per minute - ); - } - - private void setAnnotations(Integer annotationLevel) { -// switch (annotationLevel) { -// // No Annotations -// case 0: -// gameView.setAnnotationVisibilities( -// false, false, false, false, false, false -// ); -// break; -// // Important Annotations -// case 1: -// gameView.setAnnotationVisibilities( -// importantAnnotations.getAnnotationState(Annotation.NAME), -// importantAnnotations.getAnnotationState(Annotation.SPEED), -// importantAnnotations.getAnnotationState(Annotation.ESTTIMETONEXTMARK), -// importantAnnotations.getAnnotationState(Annotation.LEGTIME), -// importantAnnotations.getAnnotationState(Annotation.TRACK), -// importantAnnotations.getAnnotationState(Annotation.WAKE) -// ); -// break; -// // All Annotations -// case 2: -// gameView.setAnnotationVisibilities( -// true, true, true, true, true, true -// ); -// break; -// } - } - - - /** - * Sets all the annotations of the selected yacht to be visible and all others to be hidden - * - * @param yacht The yacht for which we want to view all annotations - */ - private void setSelectedBoat(ClientYacht yacht) { -// for (BoatObject bg : gameViewController.getBoatGroups()) { -// //We need to iterate over all race groups to get the matching yacht group belonging to this yacht if we -// //are to toggle its annotations, there is no other backwards knowledge of a yacht to its yachtgroup. -// if (bg.getBoat().getHullID().equals(yacht.getHullID())) { -//// updateLaylines(bg); -// bg.setIsSelected(true); -//// selectedBoat = yacht; -// } else { -// bg.setIsSelected(false); -// } -// } - } public void updateTokens(RaceXMLData raceData) { gameView.updateTokens(raceData.getTokens()); diff --git a/src/main/resources/maps/loop.xml b/src/main/resources/maps/loop.xml index aa72204a..008a58ce 100644 --- a/src/main/resources/maps/loop.xml +++ b/src/main/resources/maps/loop.xml @@ -15,7 +15,6 @@
- @@ -29,21 +28,27 @@ + + + + - + + + - + From d7fc339ad52dc31facdd8711cdf2210f634397e3 Mon Sep 17 00:00:00 2001 From: Alistair McIntyre Date: Thu, 28 Sep 2017 14:41:35 +1300 Subject: [PATCH 08/26] - Added Madagascar Map tags : #story[1275] --- .../messages/MarkRoundingMessage.java | 1 + .../java/seng302/model/mark/CompoundMark.java | 1 - .../java/seng302/visualiser/MapMaker.java | 4 +- src/main/resources/maps/madagascar.xml | 53 ++++++++++--------- 4 files changed, 30 insertions(+), 29 deletions(-) diff --git a/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java b/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java index b1276814..4b7d33c3 100644 --- a/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java +++ b/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java @@ -44,6 +44,7 @@ public class MarkRoundingMessage extends Message{ putInt((int) raceId, 4); putInt((int) sourceId, 4); putByte((byte) boatStatus.getCode()); + System.out.println(roundingSide.getCode()); putByte((byte) roundingSide.getCode()); putByte((byte) markType.getCode()); putByte((byte) markId); diff --git a/src/main/java/seng302/model/mark/CompoundMark.java b/src/main/java/seng302/model/mark/CompoundMark.java index b9385446..c45750af 100644 --- a/src/main/java/seng302/model/mark/CompoundMark.java +++ b/src/main/java/seng302/model/mark/CompoundMark.java @@ -72,7 +72,6 @@ public class CompoundMark { getSubMark(1).setRoundingSide(RoundingSide.STARBOARD); break; - } } diff --git a/src/main/java/seng302/visualiser/MapMaker.java b/src/main/java/seng302/visualiser/MapMaker.java index 073c9d60..5bda5b7e 100644 --- a/src/main/java/seng302/visualiser/MapMaker.java +++ b/src/main/java/seng302/visualiser/MapMaker.java @@ -1,6 +1,5 @@ package seng302.visualiser; -import java.io.File; import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; @@ -35,7 +34,8 @@ public class MapMaker { private int index = 0; private XMLGenerator xmlGenerator = new XMLGenerator(); - private List maps = new ArrayList<>(Arrays.asList("default.xml", "horseshoe.xml", "loop.xml")); + private List maps = new ArrayList<>( + Arrays.asList("default.xml", "horseshoe.xml", "madagascar.xml", "loop.xml")); public static MapMaker getInstance() { if (instance == null) { diff --git a/src/main/resources/maps/madagascar.xml b/src/main/resources/maps/madagascar.xml index 2c82e661..37113567 100644 --- a/src/main/resources/maps/madagascar.xml +++ b/src/main/resources/maps/madagascar.xml @@ -3,62 +3,63 @@ Madagascar - 57.6679590 - 11.8503233 + -15.67707 + 49.79338 10 - - + + - + - - + - - + - - + + + + + + - - - + + + + + - - - - - - - - - - - - + + + + + + + + + \ No newline at end of file From 1aedcaddf593ae11d397c24afb7dd14d3d48f176 Mon Sep 17 00:00:00 2001 From: Alistair McIntyre Date: Thu, 28 Sep 2017 14:42:34 +1300 Subject: [PATCH 09/26] removed an added print statement tags : #story[1275] --- .../java/seng302/gameServer/messages/MarkRoundingMessage.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java b/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java index 4b7d33c3..b1276814 100644 --- a/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java +++ b/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java @@ -44,7 +44,6 @@ public class MarkRoundingMessage extends Message{ putInt((int) raceId, 4); putInt((int) sourceId, 4); putByte((byte) boatStatus.getCode()); - System.out.println(roundingSide.getCode()); putByte((byte) roundingSide.getCode()); putByte((byte) markType.getCode()); putByte((byte) markId); From c98297ea7908164a5a5ecd593356d178c6e23e35 Mon Sep 17 00:00:00 2001 From: William Muir Date: Thu, 28 Sep 2017 14:44:16 +1300 Subject: [PATCH 10/26] Merged dev changes back on to mini map #story[1273] --- src/main/java/seng302/gameServer/GameState.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/seng302/gameServer/GameState.java b/src/main/java/seng302/gameServer/GameState.java index 8f7975fe..f5e2e2fd 100644 --- a/src/main/java/seng302/gameServer/GameState.java +++ b/src/main/java/seng302/gameServer/GameState.java @@ -238,7 +238,7 @@ public class GameState implements Runnable { if (System.currentTimeMillis() > startTime) { startSpawningTokens(); startUpdatingWind(); - GameState.setCurrentStage(GameStages.RACING); + GameState.currentStage = GameStages.RACING; } } if (currentStage == GameStages.RACING) { @@ -299,8 +299,8 @@ public class GameState implements Runnable { windSpeed += random.nextInt(500); } - GameState.setWindSpeed(Double.valueOf(windSpeed)); - GameState.setWindDirection(direction.doubleValue()); + GameState.windSpeed = Double.valueOf(windSpeed); + GameState.windDirection = direction.doubleValue(); } From 1e19dd5ab601a0f35fa20bd552a4e2842628c3ad Mon Sep 17 00:00:00 2001 From: Calum Date: Thu, 28 Sep 2017 14:46:55 +1300 Subject: [PATCH 11/26] Fixed parrot again. --- .../fxObjects/assets_3D/BoatMeshType.java | 2 +- .../fxObjects/assets_3D/ModelFactory.java | 6 ++-- .../java/seng302/utilities/MapMakerTest.java | 9 ++++++ src/test/java/steps/CustomMapsSteps.java | 32 +++++++++---------- 4 files changed, 29 insertions(+), 20 deletions(-) create mode 100644 src/test/java/seng302/utilities/MapMakerTest.java diff --git a/src/main/java/seng302/visualiser/fxObjects/assets_3D/BoatMeshType.java b/src/main/java/seng302/visualiser/fxObjects/assets_3D/BoatMeshType.java index 4be41d90..fbd85eba 100644 --- a/src/main/java/seng302/visualiser/fxObjects/assets_3D/BoatMeshType.java +++ b/src/main/java/seng302/visualiser/fxObjects/assets_3D/BoatMeshType.java @@ -13,7 +13,7 @@ public enum BoatMeshType { PIRATE_SHIP("pirateship_hull.stl", "pirateship_mast.stl", -0.5415, "pirateship_mainsail.stl", -0.5415, "pirateship_frontsail.stl", true, 1.2, 1.6, 1.2), DUCKY("ducky_hull.stl", "ducky_mast.stl", -2.18539, "ducky_sail.stl", -2.18539, "ducky_eyes.stl", false, 1.2, 1.1, 1.4), - PARROT("parrot_hull.stl", null, 0, "parrot_sail.stl", 0, "parrot_features.stl", true, 1, 1, 1), + PARROT("parrot_hull.stl", null, 0, "parrot_features.stl", 0, "parrot_sail.stl", true, 1, 1, 1), WAKA("waka_hull.stl", "waka_mast.stl", 0, "waka_sail.stl", 0, null, true, 1.7, 0.5, 1.5); final String hullFile, mastFile, sailFile, jibFile; diff --git a/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java b/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java index e454b666..828a4492 100644 --- a/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java +++ b/src/main/java/seng302/visualiser/fxObjects/assets_3D/ModelFactory.java @@ -100,19 +100,19 @@ public class ModelFactory { mast.setMaterial(new PhongMaterial(primaryColour)); boatAssets.getChildren().add(mast); } else { - boatAssets.getChildren().add(new Group()); + boatAssets.getChildren().add(new MeshView()); } MeshView sail = importBoatSTL(boatType.sailFile); sail.setMaterial( - new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.DARKGRAY : Color.WHITE) + new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.BLACK : Color.WHITE) ); boatAssets.getChildren().add(sail); if (boatType.jibFile != null) { MeshView jib = importBoatSTL(boatType.jibFile); jib.setMaterial( - new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.BLACK : Color.WHITE) + new PhongMaterial(boatType == BoatMeshType.PARROT ? Color.DARKGRAY : Color.WHITE) ); boatAssets.getChildren().add(jib); } diff --git a/src/test/java/seng302/utilities/MapMakerTest.java b/src/test/java/seng302/utilities/MapMakerTest.java new file mode 100644 index 00000000..dc2af1b1 --- /dev/null +++ b/src/test/java/seng302/utilities/MapMakerTest.java @@ -0,0 +1,9 @@ +package seng302.utilities; + +/** + * Created by cir27 on 28/09/17. + */ +public class MapMakerTest { +// @Test + +} diff --git a/src/test/java/steps/CustomMapsSteps.java b/src/test/java/steps/CustomMapsSteps.java index 5d7a2f1d..42e9314b 100644 --- a/src/test/java/steps/CustomMapsSteps.java +++ b/src/test/java/steps/CustomMapsSteps.java @@ -16,26 +16,26 @@ public class CustomMapsSteps { @Given("^that the game has multiple race xml files$") public void that_the_game_has_multiple_race_xml_files() throws Throwable { -// mapMaker = MapMaker.getInstance(); -// String firstMap = mapMaker.getCurrentRacePath(); -// int numMaps = 0; -// do { -// mapMaker.next(); -// numMaps++; -// } while (!mapMaker.getCurrentRacePath().equals(firstMap)); -// Assert.assertTrue(numMaps >= 2); + mapMaker = MapMaker.getInstance(); + String firstMap = mapMaker.getCurrentRacePath(); + int numMaps = 0; + do { + mapMaker.next(); + numMaps++; + } while (!mapMaker.getCurrentRacePath().equals(firstMap)); + Assert.assertTrue(numMaps >= 2); } @Then("^all of them can be seen$") public void all_of_them_can_be_seen() throws Throwable { -// File[] files = new File(this.getClass().getResource("/maps/").getPath()).listFiles(); -// for (File file : files) { -// if (file.isFile()) { -// Assert.assertTrue(file.getAbsolutePath().equals(mapMaker.getCurrentRacePath())); -// mapMaker.next(); -// System.out.println(file.getAbsolutePath()); -// } -// } + File[] files = new File(this.getClass().getResource("/maps/").getPath()).listFiles(); + for (File file : files) { + if (file.isFile()) { + Assert.assertTrue(file.getAbsolutePath().equals(mapMaker.getCurrentRacePath())); + mapMaker.next(); + System.out.println(file.getAbsolutePath()); + } + } } @Given("^that I choose a race$") From e1ebbc71c1ce46d5adb1f1974f48fab2f8eb9464 Mon Sep 17 00:00:00 2001 From: Calum Date: Thu, 28 Sep 2017 14:57:52 +1300 Subject: [PATCH 12/26] Added drawing to fx thread #fix --- src/main/java/seng302/visualiser/MiniMap.java | 12 +++++++----- .../visualiser/fxObjects/assets_2D/Marker2D.java | 13 ++++--------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/main/java/seng302/visualiser/MiniMap.java b/src/main/java/seng302/visualiser/MiniMap.java index 3d626c14..8c9377dd 100644 --- a/src/main/java/seng302/visualiser/MiniMap.java +++ b/src/main/java/seng302/visualiser/MiniMap.java @@ -43,11 +43,13 @@ public class MiniMap extends MapPreview { boatIcons.put(yacht, boatIcon); boatIcon.getTransforms().add(new Rotate(0)); yacht.addLocationListener((boat, lat, lon, heading, sailIn, velocity) -> { - Polygon bi = boatIcons.get(boat); - Point2D p2d = scaledPoint.findScaledXY(lat, lon); - bi.setLayoutX(p2d.getX()); - bi.setLayoutY(p2d.getY()); - ((Rotate) bi.getTransforms().get(0)).setAngle(heading); + Platform.runLater(() -> { + Polygon bi = boatIcons.get(boat); + Point2D p2d = scaledPoint.findScaledXY(lat, lon); + bi.setLayoutX(p2d.getX()); + bi.setLayoutY(p2d.getY()); + ((Rotate) bi.getTransforms().get(0)).setAngle(heading); + }); }); } Platform.runLater(() -> { diff --git a/src/main/java/seng302/visualiser/fxObjects/assets_2D/Marker2D.java b/src/main/java/seng302/visualiser/fxObjects/assets_2D/Marker2D.java index 5f30c2e6..d45b1341 100644 --- a/src/main/java/seng302/visualiser/fxObjects/assets_2D/Marker2D.java +++ b/src/main/java/seng302/visualiser/fxObjects/assets_2D/Marker2D.java @@ -28,8 +28,7 @@ public class Marker2D extends Group { mark.setRadius(5); mark.setCenterX(0); mark.setCenterY(0); - Platform.runLater(() -> this.getChildren() - .addAll(mark, new Group())); //Empty group placeholder or arrows. + Platform.runLater(() -> this.getChildren().add(mark)); } /** @@ -82,13 +81,9 @@ public class Marker2D extends Group { private void showArrow(List arrowList, int arrowListIndex) { if (arrowListIndex < arrowList.size()) { - if (arrowListIndex == 1) { - ; - } - Platform.runLater(() -> { - this.getChildren().remove(1); - this.getChildren().add(arrowList.get(arrowListIndex)); - }); + Platform.runLater(() -> + this.getChildren().setAll(mark, arrowList.get(arrowListIndex)) + ); } } From 80c26a9e4a032d252d819e748d694bd172db62db Mon Sep 17 00:00:00 2001 From: Michael Rausch Date: Thu, 28 Sep 2017 15:00:00 +1300 Subject: [PATCH 13/26] Fixed bug where server could connect to an expired server - Increased update interval Tags: #story[1281] --- src/main/java/seng302/App.java | 1 - .../discoveryServer/DiscoveryServer.java | 2 +- .../discoveryServer/DiscoveryServerClient.java | 2 +- .../discoveryServer/util/ServerListing.java | 2 +- .../visualiser/ClientToServerThread.java | 10 ++++++---- .../java/seng302/visualiser/GameClient.java | 17 +++++++++++++---- .../controllers/ServerListController.java | 4 +++- 7 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/main/java/seng302/App.java b/src/main/java/seng302/App.java index fdfc3ad4..7b53c2cf 100644 --- a/src/main/java/seng302/App.java +++ b/src/main/java/seng302/App.java @@ -105,7 +105,6 @@ public class App extends Application { } }, 0, 1200); - try { parseArgs(args); } catch (ParseException e) { diff --git a/src/main/java/seng302/discoveryServer/DiscoveryServer.java b/src/main/java/seng302/discoveryServer/DiscoveryServer.java index 88c531e7..c5707b92 100644 --- a/src/main/java/seng302/discoveryServer/DiscoveryServer.java +++ b/src/main/java/seng302/discoveryServer/DiscoveryServer.java @@ -48,7 +48,7 @@ public class DiscoveryServer { " .:;...'cxxxxxxxxxxxxoc;,::,..cdl;;l' \n" + " .cl;':,'';oxxxxxxdxxxxxx:....,cooc,cO; \n" + " .,,,::;,lxoc:,,:lxxxxxxxxxxxo:,,;lxxl;'oNc \n" + - " .cdxo;':lxxxxxxc'';cccccoxxxxxxxxxxxxo,.;lc. " + ANSI_YELLOW + "Party-Parrots-At-Sea Discovery Server v0.1 " + selectedColor +"\n" + + " .cdxo;':lxxxxxxc'';cccccoxxxxxxxxxxxxo,.;lc. " + ANSI_YELLOW + "Party-Parrots-At-Sea Discovery Server v1.0.0 (Release) " + selectedColor +"\n" + " .loc'.'lxxxxxxxxocc;''''';ccoxxxxxxxxx:..oc \n" + "olc,..',:cccccccccccc:;;;;;;;;:ccccccccc,.'c, \n" + "Ol;......................................;l' "); diff --git a/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java b/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java index 79df1c2f..80521951 100644 --- a/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java +++ b/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java @@ -19,7 +19,7 @@ import java.util.Timer; import java.util.TimerTask; public class DiscoveryServerClient { - private final Integer UPDATE_INTERVAL_MS = 5000; + private final Integer UPDATE_INTERVAL_MS = 1000; private static String roomCode = null; private Timer serverListingUpdateTimer; diff --git a/src/main/java/seng302/discoveryServer/util/ServerListing.java b/src/main/java/seng302/discoveryServer/util/ServerListing.java index 4c5bdaad..d477b717 100644 --- a/src/main/java/seng302/discoveryServer/util/ServerListing.java +++ b/src/main/java/seng302/discoveryServer/util/ServerListing.java @@ -1,7 +1,7 @@ package seng302.discoveryServer.util; public class ServerListing { - public final static int SERVER_TTL_DEFAULT = 10; + public final static int SERVER_TTL_DEFAULT = 3; private String serverName = ""; private String mapName = ""; diff --git a/src/main/java/seng302/visualiser/ClientToServerThread.java b/src/main/java/seng302/visualiser/ClientToServerThread.java index d8d52fff..b4840004 100644 --- a/src/main/java/seng302/visualiser/ClientToServerThread.java +++ b/src/main/java/seng302/visualiser/ClientToServerThread.java @@ -180,10 +180,12 @@ public class ClientToServerThread implements Runnable { notifyDisconnectListeners("Connection to server was terminated"); closeSocket(); - Platform.runLater(() -> { - ViewManager.getInstance().showErrorSnackBar("Server rejected connection."); - ViewManager.getInstance().goToStartView(); - }); + //thread.interrupt(); + +// Platform.runLater(() -> { +// ViewManager.getInstance().showErrorSnackBar("Server rejected connection."); +// ViewManager.getInstance().goToStartView(); +// }); } public void sendCustomizationRequest(CustomizeRequestType reqType, byte[] payload) { diff --git a/src/main/java/seng302/visualiser/GameClient.java b/src/main/java/seng302/visualiser/GameClient.java index 4d09e60f..63df3d27 100644 --- a/src/main/java/seng302/visualiser/GameClient.java +++ b/src/main/java/seng302/visualiser/GameClient.java @@ -95,7 +95,7 @@ public class GameClient { * @param ipAddress IP to connect to. * @param portNumber Port to connect to. */ - public void runAsClient(String ipAddress, Integer portNumber) { + public boolean runAsClient(String ipAddress, Integer portNumber) { try { startClientToServerThread(ipAddress, portNumber); socketThread.addDisconnectionListener((cause) -> { @@ -106,12 +106,19 @@ public class GameClient { ViewManager.getInstance().setPlayerList(clientLobbyList); - while (regattaData == null){ + int triesLeft = 10; + + while (regattaData == null && triesLeft >= 0){ try { Thread.sleep(100); - } catch (InterruptedException e) { - e.printStackTrace(); + } catch (InterruptedException ignored) { + ; } + triesLeft--; + } + + if (triesLeft < 1){ + return false; } ViewManager.getInstance().setProperty("serverName", regattaData.getRegattaName()); @@ -127,6 +134,8 @@ public class GameClient { } catch (IOException ioe) { ViewManager.getInstance().showErrorSnackBar("There are no servers currently available."); } + + return true; } private void destroyClientToServerThread() { diff --git a/src/main/java/seng302/visualiser/controllers/ServerListController.java b/src/main/java/seng302/visualiser/controllers/ServerListController.java index 2e133ceb..77e8bf4d 100644 --- a/src/main/java/seng302/visualiser/controllers/ServerListController.java +++ b/src/main/java/seng302/visualiser/controllers/ServerListController.java @@ -140,7 +140,9 @@ public class ServerListController implements Initializable, ServerListenerDelega return; } - ViewManager.getInstance().getGameClient().runAsClient(listing.getAddress(), listing.getPortNumber()); + if (!ViewManager.getInstance().getGameClient().runAsClient(listing.getAddress(), listing.getPortNumber())){ + ViewManager.getInstance().showErrorSnackBar("Could not connect to server"); + } }); /* From 21ce34dda26a5e554dbb752f4ff33faa751ede87 Mon Sep 17 00:00:00 2001 From: Kusal Ekanayake Date: Thu, 28 Sep 2017 15:08:34 +1300 Subject: [PATCH 14/26] Fixed finish screen and cleaned up dead code --- .../visualiser/ClientToServerThread.java | 2 +- .../java/seng302/visualiser/GameClient.java | 63 +++--------- .../FinishScreenViewController.java | 97 ------------------- .../visualiser/controllers/ViewManager.java | 2 +- .../dialogs/ServerCreationController.java | 2 +- .../resources/views/FinishScreenView.fxml | 53 ---------- .../views/importantAnnotationSelectView.fxml | 32 ------ 7 files changed, 18 insertions(+), 233 deletions(-) delete mode 100644 src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java delete mode 100644 src/main/resources/views/FinishScreenView.fxml delete mode 100644 src/main/resources/views/importantAnnotationSelectView.fxml diff --git a/src/main/java/seng302/visualiser/ClientToServerThread.java b/src/main/java/seng302/visualiser/ClientToServerThread.java index d8d52fff..c7f23280 100644 --- a/src/main/java/seng302/visualiser/ClientToServerThread.java +++ b/src/main/java/seng302/visualiser/ClientToServerThread.java @@ -182,7 +182,7 @@ public class ClientToServerThread implements Runnable { Platform.runLater(() -> { ViewManager.getInstance().showErrorSnackBar("Server rejected connection."); - ViewManager.getInstance().goToStartView(); +// ViewManager.getInstance().goToStartView(); }); } diff --git a/src/main/java/seng302/visualiser/GameClient.java b/src/main/java/seng302/visualiser/GameClient.java index e8d92892..77b383c4 100644 --- a/src/main/java/seng302/visualiser/GameClient.java +++ b/src/main/java/seng302/visualiser/GameClient.java @@ -5,9 +5,7 @@ import java.text.SimpleDateFormat; import java.time.ZoneId; import java.time.ZoneOffset; import java.util.ArrayList; -import java.util.Collections; import java.util.Date; -import java.util.List; import java.util.Map; import java.util.TimeZone; import java.util.Timer; @@ -17,7 +15,6 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; -import javafx.scene.layout.Pane; import javafx.scene.paint.Color; import javafx.util.Pair; import seng302.gameServer.GameStages; @@ -49,19 +46,12 @@ import seng302.visualiser.controllers.RaceViewController; import seng302.visualiser.controllers.ViewManager; import seng302.visualiser.controllers.dialogs.PopupDialogController; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.time.ZoneId; -import java.time.ZoneOffset; -import java.util.*; - /** * This class is a client side instance of a yacht racing game in JavaFX. The game is instantiated * with a JavaFX Pane to insert itself into. */ public class GameClient { - private Pane holderPane; private ClientToServerThread socketThread; private MainServerThread server; @@ -83,10 +73,8 @@ public class GameClient { /** * Create an instance of the game client. Does not do anything until run with runAsClient() * runAsHost(). - * @param holder The JavaFX Pane that the visual elements for the race will be inserted into. */ - public GameClient(Pane holder) { - this.holderPane = holder; + public GameClient() { this.gameKeyBind = GameKeyBind.getInstance(); } @@ -117,10 +105,7 @@ public class GameClient { ViewManager.getInstance().setProperty("serverName", regattaData.getRegattaName()); ViewManager.getInstance().setProperty("mapName", regattaData.getCourseName()); - getServerThread().setConnectionErrorListener((eMessage) -> { - ViewManager.getInstance().showErrorSnackBar(eMessage); - //destroyClientToServerThread(); - }); + getServerThread().setConnectionErrorListener((eMessage) -> ViewManager.getInstance().showErrorSnackBar(eMessage)); this.lobbyController = ViewManager.getInstance().goToLobby(true); @@ -129,18 +114,11 @@ public class GameClient { } } - private void destroyClientToServerThread() { - socketThread.closeSocket(); - socketThread = null; - } - /** * Connect to a game as the host at the given address and starts the visualiser. - * @param ipAddress IP to connect to. - * @param portNumber Port to connect to. */ public ServerDescription runAsHost( - String ipAddress, Integer portNumber, String serverName, Integer maxPlayers, String race, + String serverName, Integer maxPlayers, String race, Integer numLegs, Boolean tokensEnabled ) { XMLGenerator.setDefaultRaceName(serverName); @@ -156,7 +134,7 @@ public class GameClient { } try { - startClientToServerThread(ipAddress, 4942); + startClientToServerThread("localhost", 4942); } catch (IOException e) { showConnectionError("Cannot connect to server as host"); } @@ -191,7 +169,8 @@ public class GameClient { this.lobbyController = ViewManager.getInstance().goToLobby(false); ViewManager.getInstance().setPlayerList(clientLobbyList); - return new ServerDescription(serverName, regattaData.getCourseName(), GameState.getNumberOfPlayers(), GameState.getCapacity(), ipAddress, 4942); + return new ServerDescription(serverName, regattaData.getCourseName(), GameState.getNumberOfPlayers(), GameState.getCapacity(), + "localhost", 4942); } private void tearDownConnection() { @@ -294,10 +273,12 @@ public class GameClient { case CHATTER_TEXT: Pair playerIdMessagePair = StreamParser .extractChatterText(packet); - raceView.updateChatHistory( - allBoatsMap.get(playerIdMessagePair.getKey()).getColour(), - playerIdMessagePair.getValue() - ); + if (playerIdMessagePair != null) { + raceView.updateChatHistory( + allBoatsMap.get(playerIdMessagePair.getKey()).getColour(), + playerIdMessagePair.getValue() + ); + } } } } @@ -333,8 +314,6 @@ public class GameClient { positionData.getLon(), positionData.getHeading(), positionData.getGroundSpeed()); } - } else if (positionData.getType() == DeviceType.MARK_TYPE) { - //CompoundMark mark = courseData.getCompoundMarks().get(positionData.getDeviceId()); } } @@ -372,21 +351,17 @@ public class GameClient { ClientYacht clientYacht = allBoatsMap.get((int) boatData[0]); clientYacht.setEstimateTimeTillNextMark(raceState.getRaceTime() - boatData[1]); clientYacht.setEstimateTimeAtFinish(boatData[2]); -// int legNumber = (int) boatData[3]; clientYacht.setBoatStatus((int) boatData[4]); -// if (legNumber != clientYacht.getLegNumber()) { -// clientYacht.setLegNumber(legNumber); -// } } - if (raceFinished) { - raceViewController.showFinishDialog(finishedBoats); + if (raceFinished && !raceState.getRaceFinished()) { + raceState.setRaceFinished(); Sounds.playFinishSound(); + raceViewController.showFinishDialog(finishedBoats); // close(); // ViewManager.getInstance().getGameClient().stopGame(); //loadFinishScreenView(); } - raceState.setRaceFinished(); } } @@ -397,10 +372,6 @@ public class GameClient { } } - private void close() { - socketThread.setSocketToClose(); - } - /** * Handle the key-pressed event from the text field. * @param e The key event triggering this call @@ -527,10 +498,6 @@ public class GameClient { return socketThread; } - public List getPlayerNames(){ - return Collections.unmodifiableList(clientLobbyList.sorted()); - } - public void stopGame() { GameState.setCurrentStage(GameStages.CANCELLED); if (server != null) server.terminate(); diff --git a/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java b/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java deleted file mode 100644 index edd805e1..00000000 --- a/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java +++ /dev/null @@ -1,97 +0,0 @@ -package seng302.visualiser.controllers; - -import java.io.IOException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Comparator; -import java.util.List; -import java.util.ResourceBundle; -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; -import javafx.fxml.FXML; -import javafx.fxml.FXMLLoader; -import javafx.fxml.Initializable; -import javafx.scene.control.TableColumn; -import javafx.scene.control.TableView; -import javafx.scene.control.cell.PropertyValueFactory; -import javafx.scene.input.MouseEvent; -import javafx.scene.layout.AnchorPane; -import javafx.scene.layout.GridPane; -import javafx.scene.layout.Pane; -import seng302.model.ClientYacht; -import seng302.utilities.Sounds; - -public class FinishScreenViewController implements Initializable { - - @FXML - private GridPane finishScreenGridPane; - @FXML - private TableView finishOrderTable; - @FXML - private TableColumn posCol; - @FXML - private TableColumn boatNameCol; - @FXML - private TableColumn shortNameCol; - @FXML - private TableColumn countryCol; - - ObservableList data = FXCollections.observableArrayList(); - - @Override - public void initialize(URL location, ResourceBundle resources) { - finishScreenGridPane.getStylesheets() - .add(getClass().getResource("/css/Master.css").toString()); - finishOrderTable.getStylesheets().add(getClass().getResource("/css/Master.css").toString()); - - // set up data for table - finishOrderTable.setItems(data); - - // setting table col data - posCol.setCellValueFactory( - new PropertyValueFactory<>("position") - ); - boatNameCol.setCellValueFactory( - new PropertyValueFactory<>("boatName") - ); - shortNameCol.setCellValueFactory( - new PropertyValueFactory<>("shortName") - ); - countryCol.setCellValueFactory( - new PropertyValueFactory<>("country") - ); - finishOrderTable.refresh(); - } - - public void setFinishers(Collection participants) { - List sorted = new ArrayList<>(participants); - sorted.sort(Comparator.comparingInt(ClientYacht::getPlacing)); - finishOrderTable.getItems().setAll(sorted); - } - - private void setContentPane(String jfxUrl) { - try { - // get the main controller anchor pane (FinishView -> MainView) - AnchorPane contentPane = (AnchorPane) finishScreenGridPane.getParent(); - contentPane.getChildren().removeAll(); - contentPane.getChildren().clear(); - contentPane.getStylesheets().add(getClass().getResource("/css/master.css").toString()); - contentPane.getChildren() - .addAll((Pane) FXMLLoader.load(getClass().getResource(jfxUrl))); - } catch (javafx.fxml.LoadException e) { - System.out.println("[Controller] FXML load exception"); - } catch (IOException e) { - System.out.println("[Controller] IO exception"); - } - } - - public void switchToStartScreenView() { - Sounds.playButtonClick(); - ViewManager.getInstance().goToStartView(); - } - - public void playButtonHoverSound(MouseEvent mouseEvent) { - Sounds.playHoverSound(); - } -} diff --git a/src/main/java/seng302/visualiser/controllers/ViewManager.java b/src/main/java/seng302/visualiser/controllers/ViewManager.java index 1e3ab4ce..28a9f1b2 100644 --- a/src/main/java/seng302/visualiser/controllers/ViewManager.java +++ b/src/main/java/seng302/visualiser/controllers/ViewManager.java @@ -79,7 +79,7 @@ public class ViewManager { decorator.applyCss(); decorator.getStylesheets() .add(getClass().getResource("/css/Master.css").toExternalForm()); - gameClient = new GameClient(decorator); + gameClient = new GameClient(); setDecorator(decorator); stage.getIcons().add(new Image(getClass().getResourceAsStream("/PP.png"))); diff --git a/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java b/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java index fcd33e0d..3cf9fc5e 100644 --- a/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java +++ b/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java @@ -115,7 +115,7 @@ public class ServerCreationController implements Initializable { */ private void createServer() { ServerDescription serverDescription = ViewManager.getInstance().getGameClient() - .runAsHost("localhost", 4941, serverName.getText(), (int) maxPlayersSlider + .runAsHost(serverName.getText(), (int) maxPlayersSlider .getValue(), mapMaker.getCurrentRacePath(), (int) legsSlider.getValue(), pickupsCheckBox.isSelected()); if (serverDescription == null){ diff --git a/src/main/resources/views/FinishScreenView.fxml b/src/main/resources/views/FinishScreenView.fxml deleted file mode 100644 index 0ebdf261..00000000 --- a/src/main/resources/views/FinishScreenView.fxml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 8810554ce9db48fadcf73270dba4aa597b29d3c8 Mon Sep 17 00:00:00 2001 From: Michael Rausch Date: Thu, 28 Sep 2017 15:16:37 +1300 Subject: [PATCH 15/26] Fixed bug where server wasn't being unregistered from discovery server - Added missing unregister() method call Tags: #story[1281] --- .../java/seng302/discoveryServer/DiscoveryServerClient.java | 2 +- src/main/java/seng302/discoveryServer/util/ServerListing.java | 2 +- src/main/java/seng302/gameServer/ServerAdvertiser.java | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java b/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java index 80521951..4454d25c 100644 --- a/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java +++ b/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java @@ -19,7 +19,7 @@ import java.util.Timer; import java.util.TimerTask; public class DiscoveryServerClient { - private final Integer UPDATE_INTERVAL_MS = 1000; + private final Integer UPDATE_INTERVAL_MS = 700; private static String roomCode = null; private Timer serverListingUpdateTimer; diff --git a/src/main/java/seng302/discoveryServer/util/ServerListing.java b/src/main/java/seng302/discoveryServer/util/ServerListing.java index d477b717..31e7a387 100644 --- a/src/main/java/seng302/discoveryServer/util/ServerListing.java +++ b/src/main/java/seng302/discoveryServer/util/ServerListing.java @@ -1,7 +1,7 @@ package seng302.discoveryServer.util; public class ServerListing { - public final static int SERVER_TTL_DEFAULT = 3; + public final static int SERVER_TTL_DEFAULT = 5; private String serverName = ""; private String mapName = ""; diff --git a/src/main/java/seng302/gameServer/ServerAdvertiser.java b/src/main/java/seng302/gameServer/ServerAdvertiser.java index d0868734..2b363601 100644 --- a/src/main/java/seng302/gameServer/ServerAdvertiser.java +++ b/src/main/java/seng302/gameServer/ServerAdvertiser.java @@ -146,6 +146,8 @@ public class ServerAdvertiser { public void unregister(){ if (serviceInfo != null) jmdnsInstance.unregisterService(serviceInfo); + + repositoryClient.unregister(); } /** From 54410efa124dc11c1dfa9aca840c29e008041a03 Mon Sep 17 00:00:00 2001 From: William Muir Date: Thu, 28 Sep 2017 15:24:45 +1300 Subject: [PATCH 16/26] Changed garbage collection to once every second, Changed wind walker icon to white #story[1273] --- src/main/java/seng302/App.java | 2 +- .../resources/meshes/wind_walker_pickup.dae | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/seng302/App.java b/src/main/java/seng302/App.java index 7b53c2cf..2f8f4e4a 100644 --- a/src/main/java/seng302/App.java +++ b/src/main/java/seng302/App.java @@ -103,7 +103,7 @@ public class App extends Application { public void run() { System.gc(); } - }, 0, 1200); + }, 0, 1_000); try { parseArgs(args); diff --git a/src/main/resources/meshes/wind_walker_pickup.dae b/src/main/resources/meshes/wind_walker_pickup.dae index 603d2490..af1d6046 100644 --- a/src/main/resources/meshes/wind_walker_pickup.dae +++ b/src/main/resources/meshes/wind_walker_pickup.dae @@ -5,8 +5,8 @@ Blender User Blender 2.78.0 commit date:2016-09-26, commit time:12:42, hash:4bb1e22 - 2017-09-27T23:11:17 - 2017-09-27T23:11:17 + 2017-09-28T15:10:15 + 2017-09-28T15:10:15 Z_UP @@ -23,10 +23,10 @@ 0 0 0 1 - 0.4830523 0.4830523 0.4830523 1 + 0.8 0.8 0.8 1 - 0.5 0.5 0.5 1 + 0.25 0.25 0.25 1 50 @@ -48,7 +48,7 @@ - 2.381247 8.686542 2.746561 2.725493 8.582117 2.746561 3.042753 8.412539 2.746561 3.320834 8.184324 2.746561 3.549047 7.906244 2.746561 3.718627 7.588986 2.746561 1.438419 2.778566 2.746655 1.430954 -5.801254 2.746655 1.438449 -5.877193 2.746655 1.460614 -5.95021 2.746655 1.496599 -6.0175 2.746655 1.545019 -6.076477 2.746655 1.604015 -6.124875 2.746655 1.671319 -6.160832 2.746655 1.744345 -6.182969 2.746655 1.820287 -6.190433 2.746655 1.896225 -6.182939 2.746655 1.969242 -6.160774 2.746655 2.036532 -6.124789 2.746655 2.095509 -6.076369 2.746655 2.143907 -6.017373 2.746655 2.179864 -5.950068 2.746655 2.202001 -5.877042 2.746655 2.209465 -5.801101 2.746655 2.201971 2.778716 2.746655 3.823053 7.244739 2.746561 3.858314 6.886735 2.746561 3.823054 6.528731 2.746561 3.718629 6.184484 2.746561 3.54905 5.867225 2.746561 3.320836 5.589145 2.746561 3.042756 5.36093 2.746561 2.725497 5.191352 2.746561 2.38125 5.086925 2.746561 2.024447 5.051741 2.746558 0.2234384 7.244737 2.746561 0.3278643 7.588983 2.746561 0.4974424 7.906242 2.746561 0.171605 6.870847 2.746608 0.1648493 -5.801254 2.746655 0.1723437 -5.877193 2.746655 0.194509 -5.95021 2.746655 0.2304933 -6.0175 2.746655 0.2789137 -6.076477 2.746655 0.3379097 -6.124875 2.746655 0.4052138 -6.160832 2.746655 0.47824 -6.182969 2.746655 0.5541813 -6.190433 2.746655 0.6301198 -6.182939 2.746655 0.7031372 -6.160774 2.746655 0.770427 -6.124789 2.746655 0.8294036 -6.076369 2.746655 0.8778014 -6.017373 2.746655 0.913759 -5.950068 2.746655 0.9358955 -5.877042 2.746655 0.9433601 -5.801101 2.746655 0.9351564 6.870997 2.746608 0.7256565 8.184322 2.746561 1.003736 8.412537 2.746561 1.320996 8.582117 2.746561 1.665242 8.686542 2.746561 2.023246 8.721802 2.746561 2.382864 8.676416 2.048514 2.72711 8.571991 2.048514 3.290769 4.629346 2.746654 2.932765 4.594085 2.746654 2.588519 4.489659 2.746654 2.27126 4.320081 2.746654 1.99318 4.091866 2.746654 1.764966 3.813786 2.746654 1.595387 3.496527 2.746654 1.490962 3.152281 2.746654 1.8112 7.95276 2.746561 3.29197 0.9592848 2.746651 3.648774 0.9944687 2.746654 3.993021 1.098896 2.746654 4.310279 1.268474 2.746654 4.588359 1.496688 2.746654 4.816574 1.774769 2.746654 4.986152 2.092028 2.746654 5.090578 2.436275 2.746654 5.125837 2.794278 2.746654 5.090577 3.152283 2.746654 4.98615 3.49653 2.746654 4.816571 3.813788 2.746654 4.588357 4.091867 2.746654 4.310276 4.320083 2.746654 3.993017 4.48966 2.746654 3.64877 4.594085 2.746654 3.290769 3.881187 2.746654 3.078723 3.860303 2.746654 2.874827 3.798451 2.746654 2.686914 3.69801 2.746654 2.522207 3.562839 2.746654 2.387036 3.398132 2.746654 2.286595 3.210219 2.746654 2.224744 3.006323 2.746654 2.023246 7.973643 2.746561 3.291897 1.705996 2.746651 3.502815 1.728251 2.746654 3.706712 1.790103 2.746654 3.894625 1.890544 2.746654 4.059331 2.025716 2.746654 4.194503 2.190423 2.746654 4.294944 2.378335 2.746654 4.356796 2.582232 2.746654 4.377679 2.794278 2.746654 4.356795 3.006324 2.746654 4.294943 3.210221 2.746654 4.194501 3.398133 2.746654 4.05933 3.562839 2.746654 3.894623 3.69801 2.746654 3.706711 3.798451 2.746654 3.502813 3.860303 2.746654 2.994601 1.257812 2.746648 3.016236 1.186544 2.746648 3.051358 1.120866 2.746648 3.098619 1.063302 2.746648 3.156201 1.016064 2.746648 3.221894 0.9809666 2.746648 3.221755 1.68299 2.746648 3.156077 1.647867 2.746648 3.098513 1.600607 2.746648 3.051275 1.543023 2.746648 3.016178 1.477331 2.746648 2.994572 1.406054 2.746648 2.987286 1.331932 2.746648 1.607303 7.890908 2.746561 1.419391 7.790466 2.746561 1.254684 7.655295 2.746561 1.119513 7.490588 2.746561 1.019072 7.302676 2.746561 0.9572206 7.098779 2.746561 2.024374 5.798451 2.746558 2.235292 5.820707 2.746561 2.439189 5.88256 2.746561 2.627102 5.983001 2.746561 2.791808 6.118172 2.746561 2.92698 6.282879 2.746561 3.027421 6.470792 2.746561 3.089272 6.674689 2.746561 3.110156 6.886735 2.746561 3.089272 7.098781 2.746561 3.02742 7.302678 2.746561 2.926978 7.49059 2.746561 2.791807 7.655296 2.746561 2.6271 7.790467 2.746561 2.439188 7.890908 2.746561 2.23529 7.95276 2.746561 1.727078 5.350268 2.746555 1.748713 5.279 2.746555 1.783835 5.213322 2.746555 1.831096 5.155758 2.746555 1.888678 5.10852 2.746555 1.954371 5.073422 2.746555 1.954232 5.775447 2.746555 1.888554 5.740324 2.746555 1.830989 5.693063 2.746555 1.783751 5.63548 2.746555 1.748655 5.569788 2.746555 1.727049 5.49851 2.746555 1.719763 5.424388 2.746555 3.04437 8.402413 2.048514 3.322451 8.174199 2.048514 3.550664 7.896119 2.048514 3.720244 7.578861 2.048514 1.440036 2.768441 2.048607 1.432571 -5.811379 2.048607 1.440066 -5.887319 2.048607 1.462231 -5.960336 2.048607 1.498216 -6.027626 2.048607 1.546636 -6.086602 2.048607 1.605632 -6.135 2.048607 1.672936 -6.170958 2.048607 1.745962 -6.193094 2.048607 1.821904 -6.200559 2.048607 1.897842 -6.193065 2.048607 1.970859 -6.170899 2.048607 2.038149 -6.134914 2.048607 2.097126 -6.086494 2.048607 2.145524 -6.027498 2.048607 2.181481 -5.960194 2.048607 2.203618 -5.887168 2.048607 2.211082 -5.811226 2.048607 2.203588 2.768591 2.048607 3.82467 7.234614 2.048514 3.859931 6.876609 2.048514 3.824671 6.518606 2.048514 3.720246 6.174359 2.048514 3.550667 5.857099 2.048514 3.322453 5.579019 2.048514 3.044373 5.350805 2.048514 2.727114 5.181226 2.048514 2.382867 5.0768 2.048514 2.026064 5.041615 2.048511 0.2250553 7.234612 2.048514 0.3294813 7.578858 2.048514 0.4990593 7.896117 2.048514 0.173222 6.860721 2.048561 0.1664662 -5.811379 2.048607 0.1739607 -5.887319 2.048607 0.196126 -5.960336 2.048607 0.2321103 -6.027626 2.048607 0.2805307 -6.086602 2.048607 0.3395267 -6.135 2.048607 0.4068308 -6.170958 2.048607 0.479857 -6.193094 2.048607 0.5557983 -6.200559 2.048607 0.6317368 -6.193065 2.048607 0.7047541 -6.170899 2.048607 0.772044 -6.134914 2.048607 0.8310206 -6.086494 2.048607 0.8794184 -6.027498 2.048607 0.915376 -5.960194 2.048607 0.9375124 -5.887168 2.048607 0.9449771 -5.811226 2.048607 0.9367733 6.860872 2.048561 0.7272735 8.174197 2.048514 1.005353 8.402411 2.048514 1.322613 8.57199 2.048514 1.666859 8.676416 2.048514 2.024863 8.711676 2.048514 3.292386 4.61922 2.048607 2.934382 4.58396 2.048607 2.590136 4.479534 2.048607 2.272877 4.309955 2.048607 1.994797 4.08174 2.048607 1.766582 3.803661 2.048607 1.597004 3.486401 2.048607 1.492578 3.142155 2.048607 1.812817 7.942634 2.048514 3.293587 0.949159 2.048604 3.650391 0.9843429 2.048607 3.994637 1.08877 2.048607 4.311896 1.258348 2.048607 4.589976 1.486562 2.048607 4.818191 1.764643 2.048607 4.987769 2.081902 2.048607 5.092195 2.426149 2.048607 5.127454 2.784153 2.048607 5.092194 3.142157 2.048607 4.987767 3.486404 2.048607 4.818188 3.803663 2.048607 4.589974 4.081742 2.048607 4.311893 4.309957 2.048607 3.994633 4.479535 2.048607 3.650387 4.58396 2.048607 3.292386 3.871062 2.048607 3.08034 3.850177 2.048607 2.876444 3.788326 2.048607 2.688531 3.687885 2.048607 2.523824 3.552713 2.048607 2.388653 3.388007 2.048607 2.288212 3.200095 2.048607 2.226361 2.996197 2.048607 2.024863 7.963519 2.048514 3.293514 1.69587 2.048604 3.504432 1.718126 2.048607 3.708329 1.779978 2.048607 3.896242 1.880418 2.048607 4.060948 2.01559 2.048607 4.19612 2.180297 2.048607 4.296561 2.368209 2.048607 4.358413 2.572107 2.048607 4.379296 2.784152 2.048607 4.358412 2.996198 2.048607 4.29656 3.200096 2.048607 4.196118 3.388008 2.048607 4.060947 3.552714 2.048607 3.89624 3.687886 2.048607 3.708328 3.788327 2.048607 3.50443 3.850177 2.048607 2.996218 1.247687 2.048601 3.017853 1.176419 2.048601 3.052975 1.11074 2.048601 3.100236 1.053176 2.048601 3.157818 1.005938 2.048601 3.223511 0.9708408 2.048601 3.223372 1.672864 2.048601 3.157694 1.637742 2.048601 3.10013 1.590481 2.048601 3.052891 1.532898 2.048601 3.017795 1.467206 2.048601 2.996189 1.395929 2.048601 2.988903 1.321806 2.048601 1.60892 7.880783 2.048514 1.421008 7.780341 2.048514 1.256301 7.64517 2.048514 1.12113 7.480463 2.048514 1.020689 7.292551 2.048514 0.9588375 7.088654 2.048514 2.02599 5.788327 2.048511 2.236909 5.810582 2.048514 2.440806 5.872434 2.048514 2.628719 5.972875 2.048514 2.793425 6.108046 2.048514 2.928597 6.272753 2.048514 3.029038 6.460666 2.048514 3.090889 6.664564 2.048514 3.111773 6.876609 2.048514 3.090888 7.088655 2.048514 3.029037 7.292552 2.048514 2.928595 7.480464 2.048514 2.793424 7.645171 2.048514 2.628717 7.780342 2.048514 2.440804 7.880783 2.048514 2.236907 7.942634 2.048514 1.728695 5.340144 2.048508 1.750329 5.268876 2.048508 1.785452 5.203196 2.048508 1.832713 5.145632 2.048508 1.890295 5.098395 2.048508 1.955988 5.063298 2.048508 1.955849 5.765321 2.048508 1.890171 5.730198 2.048508 1.832606 5.682938 2.048508 1.785368 5.625354 2.048508 1.750272 5.559662 2.048508 1.728666 5.488385 2.048508 1.72138 5.414262 2.048508 -2.684801 8.686542 2.746561 -3.029047 8.582117 2.746561 -3.346307 8.412539 2.746561 -3.624388 8.184324 2.746561 -3.852601 7.906244 2.746561 -4.022181 7.588986 2.746561 -1.741973 2.778566 2.746655 -1.734508 -5.801254 2.746655 -1.742003 -5.877193 2.746655 -1.764168 -5.95021 2.746655 -1.800152 -6.0175 2.746655 -1.848573 -6.076477 2.746655 -1.907569 -6.124875 2.746655 -1.974873 -6.160832 2.746655 -2.047899 -6.182969 2.746655 -2.12384 -6.190433 2.746655 -2.199779 -6.182939 2.746655 -2.272796 -6.160774 2.746655 -2.340086 -6.124789 2.746655 -2.399063 -6.076369 2.746655 -2.44746 -6.017373 2.746655 -2.483418 -5.950068 2.746655 -2.505554 -5.877042 2.746655 -2.513019 -5.801101 2.746655 -2.505524 2.778716 2.746655 -4.126607 7.244739 2.746561 -4.161867 6.886735 2.746561 -4.126608 6.528731 2.746561 -4.022182 6.184484 2.746561 -3.852604 5.867225 2.746561 -3.62439 5.589145 2.746561 -3.34631 5.36093 2.746561 -3.029051 5.191352 2.746561 -2.684804 5.086925 2.746561 -2.328001 5.051741 2.746558 -0.5269922 7.244737 2.746561 -0.6314181 7.588983 2.746561 -0.8009962 7.906242 2.746561 -0.4751588 6.870847 2.746608 -0.4684031 -5.801254 2.746655 -0.4758976 -5.877193 2.746655 -0.4980629 -5.95021 2.746655 -0.5340471 -6.0175 2.746655 -0.5824676 -6.076477 2.746655 -0.6414635 -6.124875 2.746655 -0.7087677 -6.160832 2.746655 -0.7817938 -6.182969 2.746655 -0.8577352 -6.190433 2.746655 -0.9336736 -6.182939 2.746655 -1.006691 -6.160774 2.746655 -1.073981 -6.124789 2.746655 -1.132957 -6.076369 2.746655 -1.181355 -6.017373 2.746655 -1.217313 -5.950068 2.746655 -1.239449 -5.877042 2.746655 -1.246914 -5.801101 2.746655 -1.23871 6.870997 2.746608 -1.02921 8.184322 2.746561 -1.30729 8.412537 2.746561 -1.62455 8.582117 2.746561 -1.968796 8.686542 2.746561 -2.326799 8.721802 2.746561 -2.683184 8.676416 2.048514 -3.027431 8.571991 2.048514 -3.594323 4.629346 2.746654 -3.236319 4.594085 2.746654 -2.892073 4.489659 2.746654 -2.574813 4.320081 2.746654 -2.296733 4.091866 2.746654 -2.068519 3.813786 2.746654 -1.898941 3.496527 2.746654 -1.794515 3.152281 2.746654 -2.114754 7.95276 2.746561 -3.595524 0.9592848 2.746651 -3.952327 0.9944687 2.746654 -4.296574 1.098896 2.746654 -4.613833 1.268474 2.746654 -4.891913 1.496688 2.746654 -5.120127 1.774769 2.746654 -5.289706 2.092028 2.746654 -5.394131 2.436275 2.746654 -5.42939 2.794278 2.746654 -5.39413 3.152283 2.746654 -5.289704 3.49653 2.746654 -5.120124 3.813788 2.746654 -4.891911 4.091867 2.746654 -4.61383 4.320083 2.746654 -4.29657 4.48966 2.746654 -3.952324 4.594085 2.746654 -3.594323 3.881187 2.746654 -3.382277 3.860303 2.746654 -3.17838 3.798451 2.746654 -2.990468 3.69801 2.746654 -2.825761 3.562839 2.746654 -2.69059 3.398132 2.746654 -2.590149 3.210219 2.746654 -2.528297 3.006323 2.746654 -2.326799 7.973643 2.746561 -3.59545 1.705996 2.746651 -3.806369 1.728251 2.746654 -4.010266 1.790103 2.746654 -4.198179 1.890544 2.746654 -4.362885 2.025716 2.746654 -4.498057 2.190423 2.746654 -4.598498 2.378335 2.746654 -4.660349 2.582232 2.746654 -4.681233 2.794278 2.746654 -4.660348 3.006324 2.746654 -4.598497 3.210221 2.746654 -4.498055 3.398133 2.746654 -4.362884 3.562839 2.746654 -4.198177 3.69801 2.746654 -4.010264 3.798451 2.746654 -3.806367 3.860303 2.746654 -3.298155 1.257812 2.746648 -3.319789 1.186544 2.746648 -3.354912 1.120866 2.746648 -3.402173 1.063302 2.746648 -3.459755 1.016064 2.746648 -3.525448 0.9809666 2.746648 -3.525309 1.68299 2.746648 -3.459631 1.647867 2.746648 -3.402066 1.600607 2.746648 -3.354828 1.543023 2.746648 -3.319732 1.477331 2.746648 -3.298126 1.406054 2.746648 -3.29084 1.331932 2.746648 -1.910857 7.890908 2.746561 -1.722944 7.790466 2.746561 -1.558238 7.655295 2.746561 -1.423067 7.490588 2.746561 -1.322626 7.302676 2.746561 -1.260774 7.098779 2.746561 -2.327927 5.798451 2.746558 -2.538846 5.820707 2.746561 -2.742743 5.88256 2.746561 -2.930655 5.983001 2.746561 -3.095362 6.118172 2.746561 -3.230534 6.282879 2.746561 -3.330975 6.470792 2.746561 -3.392826 6.674689 2.746561 -3.41371 6.886735 2.746561 -3.392825 7.098781 2.746561 -3.330974 7.302678 2.746561 -3.230532 7.49059 2.746561 -3.095361 7.655296 2.746561 -2.930654 7.790467 2.746561 -2.742741 7.890908 2.746561 -2.538844 7.95276 2.746561 -2.030632 5.350268 2.746555 -2.052266 5.279 2.746555 -2.087388 5.213322 2.746555 -2.134649 5.155758 2.746555 -2.192232 5.10852 2.746555 -2.257925 5.073422 2.746555 -2.257786 5.775447 2.746555 -2.192108 5.740324 2.746555 -2.134543 5.693063 2.746555 -2.087305 5.63548 2.746555 -2.052209 5.569788 2.746555 -2.030603 5.49851 2.746555 -2.023317 5.424388 2.746555 -3.34469 8.402413 2.048514 -3.622771 8.174199 2.048514 -3.850985 7.896119 2.048514 -4.020564 7.578861 2.048514 -1.740357 2.768441 2.048607 -1.732892 -5.811379 2.048607 -1.740386 -5.887319 2.048607 -1.762551 -5.960336 2.048607 -1.798536 -6.027626 2.048607 -1.846956 -6.086602 2.048607 -1.905952 -6.135 2.048607 -1.973256 -6.170958 2.048607 -2.046282 -6.193094 2.048607 -2.122224 -6.200559 2.048607 -2.198162 -6.193065 2.048607 -2.27118 -6.170899 2.048607 -2.338469 -6.134914 2.048607 -2.397446 -6.086494 2.048607 -2.445844 -6.027498 2.048607 -2.481801 -5.960194 2.048607 -2.503938 -5.887168 2.048607 -2.511403 -5.811226 2.048607 -2.503908 2.768591 2.048607 -4.12499 7.234614 2.048514 -4.160251 6.876609 2.048514 -4.124991 6.518606 2.048514 -4.020566 6.174359 2.048514 -3.850987 5.857099 2.048514 -3.622773 5.579019 2.048514 -3.344693 5.350805 2.048514 -3.027434 5.181226 2.048514 -2.683187 5.0768 2.048514 -2.326384 5.041615 2.048511 -0.5253757 7.234612 2.048514 -0.6298016 7.578858 2.048514 -0.7993797 7.896117 2.048514 -0.4735423 6.860721 2.048561 -0.4667866 -5.811379 2.048607 -0.4742811 -5.887319 2.048607 -0.4964464 -5.960336 2.048607 -0.5324307 -6.027626 2.048607 -0.5808511 -6.086602 2.048607 -0.639847 -6.135 2.048607 -0.7071512 -6.170958 2.048607 -0.7801774 -6.193094 2.048607 -0.8561187 -6.200559 2.048607 -0.9320572 -6.193065 2.048607 -1.005074 -6.170899 2.048607 -1.072364 -6.134914 2.048607 -1.131341 -6.086494 2.048607 -1.179739 -6.027498 2.048607 -1.215696 -5.960194 2.048607 -1.237833 -5.887168 2.048607 -1.245297 -5.811226 2.048607 -1.237094 6.860872 2.048561 -1.027594 8.174197 2.048514 -1.305674 8.402411 2.048514 -1.622933 8.57199 2.048514 -1.967179 8.676416 2.048514 -2.325183 8.711676 2.048514 -3.592706 4.61922 2.048607 -3.234702 4.58396 2.048607 -2.890456 4.479534 2.048607 -2.573197 4.309955 2.048607 -2.295117 4.08174 2.048607 -2.066903 3.803661 2.048607 -1.897325 3.486401 2.048607 -1.792899 3.142155 2.048607 -2.113137 7.942634 2.048514 -3.593907 0.949159 2.048604 -3.950711 0.9843429 2.048607 -4.294957 1.08877 2.048607 -4.612216 1.258348 2.048607 -4.890296 1.486562 2.048607 -5.11851 1.764643 2.048607 -5.288089 2.081902 2.048607 -5.392514 2.426149 2.048607 -5.427773 2.784153 2.048607 -5.392513 3.142157 2.048607 -5.288087 3.486404 2.048607 -5.118507 3.803663 2.048607 -4.890294 4.081742 2.048607 -4.612213 4.309957 2.048607 -4.294953 4.479535 2.048607 -3.950707 4.58396 2.048607 -3.592706 3.871062 2.048607 -3.380661 3.850177 2.048607 -3.176764 3.788326 2.048607 -2.988851 3.687885 2.048607 -2.824144 3.552713 2.048607 -2.688973 3.388007 2.048607 -2.588532 3.200095 2.048607 -2.526681 2.996197 2.048607 -2.325183 7.963519 2.048514 -3.593834 1.69587 2.048604 -3.804752 1.718126 2.048607 -4.008649 1.779978 2.048607 -4.196562 1.880418 2.048607 -4.361268 2.01559 2.048607 -4.49644 2.180297 2.048607 -4.596881 2.368209 2.048607 -4.658732 2.572107 2.048607 -4.679616 2.784152 2.048607 -4.658731 2.996198 2.048607 -4.59688 3.200096 2.048607 -4.496438 3.388008 2.048607 -4.361267 3.552714 2.048607 -4.19656 3.687886 2.048607 -4.008647 3.788327 2.048607 -3.80475 3.850177 2.048607 -3.296538 1.247687 2.048601 -3.318173 1.176419 2.048601 -3.353295 1.11074 2.048601 -3.400556 1.053176 2.048601 -3.458138 1.005938 2.048601 -3.523831 0.9708408 2.048601 -3.523692 1.672864 2.048601 -3.458014 1.637742 2.048601 -3.40045 1.590481 2.048601 -3.353212 1.532898 2.048601 -3.318115 1.467206 2.048601 -3.296509 1.395929 2.048601 -3.289223 1.321806 2.048601 -1.909241 7.880783 2.048514 -1.721328 7.780341 2.048514 -1.556621 7.64517 2.048514 -1.42145 7.480463 2.048514 -1.321009 7.292551 2.048514 -1.259158 7.088654 2.048514 -2.326311 5.788327 2.048511 -2.537229 5.810582 2.048514 -2.741127 5.872434 2.048514 -2.929039 5.972875 2.048514 -3.093745 6.108046 2.048514 -3.228917 6.272753 2.048514 -3.329358 6.460666 2.048514 -3.39121 6.664564 2.048514 -3.412093 6.876609 2.048514 -3.391209 7.088655 2.048514 -3.329357 7.292552 2.048514 -3.228915 7.480464 2.048514 -3.093744 7.645171 2.048514 -2.929037 7.780342 2.048514 -2.741125 7.880783 2.048514 -2.537227 7.942634 2.048514 -2.029015 5.340144 2.048508 -2.05065 5.268876 2.048508 -2.085772 5.203196 2.048508 -2.133033 5.145632 2.048508 -2.190615 5.098395 2.048508 -2.256308 5.063298 2.048508 -2.256169 5.765321 2.048508 -2.190491 5.730198 2.048508 -2.132927 5.682938 2.048508 -2.085689 5.625354 2.048508 -2.050592 5.559662 2.048508 -2.028986 5.488385 2.048508 -2.0217 5.414262 2.048508 + 2.381247 8.686542 2.746561 2.725493 8.582118 2.746561 3.042753 8.412539 2.746561 3.320834 8.184325 2.746561 3.549047 7.906244 2.746561 3.718627 7.588986 2.746561 1.438419 2.778566 2.746655 1.430954 -5.801254 2.746655 1.438449 -5.877193 2.746655 1.460614 -5.95021 2.746655 1.496599 -6.0175 2.746655 1.545019 -6.076477 2.746655 1.604015 -6.124875 2.746655 1.671319 -6.160832 2.746655 1.744345 -6.182969 2.746655 1.820287 -6.190433 2.746655 1.896225 -6.182939 2.746655 1.969242 -6.160774 2.746655 2.036532 -6.124789 2.746655 2.095509 -6.076369 2.746655 2.143907 -6.017373 2.746655 2.179864 -5.950068 2.746655 2.202001 -5.877042 2.746655 2.209465 -5.801101 2.746655 2.201971 2.778716 2.746655 3.823053 7.244739 2.746561 3.858314 6.886735 2.746561 3.823054 6.528731 2.746561 3.718629 6.184484 2.746561 3.54905 5.867225 2.746561 3.320836 5.589145 2.746561 3.042756 5.36093 2.746561 2.725497 5.191352 2.746561 2.38125 5.086925 2.746561 2.024447 5.051741 2.746558 0.2234384 7.244737 2.746561 0.3278643 7.588983 2.746561 0.4974424 7.906242 2.746561 0.171605 6.870847 2.746608 0.1648493 -5.801254 2.746655 0.1723437 -5.877193 2.746655 0.194509 -5.95021 2.746655 0.2304933 -6.0175 2.746655 0.2789137 -6.076477 2.746655 0.3379097 -6.124875 2.746655 0.4052138 -6.160832 2.746655 0.47824 -6.182969 2.746655 0.5541813 -6.190433 2.746655 0.6301198 -6.182939 2.746655 0.7031372 -6.160774 2.746655 0.770427 -6.124789 2.746655 0.8294036 -6.076369 2.746655 0.8778014 -6.017373 2.746655 0.913759 -5.950068 2.746655 0.9358955 -5.877042 2.746655 0.9433601 -5.801101 2.746655 0.9351564 6.870997 2.746608 0.7256565 8.184323 2.746561 1.003736 8.412537 2.746561 1.320996 8.582118 2.746561 1.665242 8.686542 2.746561 2.023246 8.721802 2.746561 2.382864 8.676417 2.048514 2.72711 8.571991 2.048514 3.290769 4.629346 2.746654 2.932765 4.594085 2.746654 2.588519 4.489659 2.746654 2.27126 4.320081 2.746654 1.99318 4.091866 2.746654 1.764966 3.813786 2.746654 1.595387 3.496527 2.746654 1.490962 3.152281 2.746654 1.8112 7.95276 2.746561 3.29197 0.9592848 2.746651 3.648774 0.9944687 2.746654 3.993021 1.098896 2.746654 4.310279 1.268474 2.746654 4.588359 1.496688 2.746654 4.816574 1.774769 2.746654 4.986152 2.092028 2.746654 5.090578 2.436275 2.746654 5.125837 2.794278 2.746654 5.090577 3.152283 2.746654 4.98615 3.49653 2.746654 4.816571 3.813788 2.746654 4.588357 4.091867 2.746654 4.310276 4.320083 2.746654 3.993017 4.48966 2.746654 3.64877 4.594085 2.746654 3.290769 3.881187 2.746654 3.078723 3.860303 2.746654 2.874827 3.798451 2.746654 2.686914 3.69801 2.746654 2.522207 3.562839 2.746654 2.387036 3.398132 2.746654 2.286595 3.210219 2.746654 2.224744 3.006323 2.746654 2.023246 7.973643 2.746561 3.291897 1.705996 2.746651 3.502815 1.728251 2.746654 3.706712 1.790103 2.746654 3.894625 1.890544 2.746654 4.059331 2.025716 2.746654 4.194503 2.190423 2.746654 4.294944 2.378335 2.746654 4.356796 2.582232 2.746654 4.377679 2.794278 2.746654 4.356795 3.006324 2.746654 4.294943 3.210221 2.746654 4.194501 3.398133 2.746654 4.05933 3.562839 2.746654 3.894623 3.69801 2.746654 3.706711 3.798451 2.746654 3.502813 3.860303 2.746654 2.994601 1.257812 2.746648 3.016236 1.186544 2.746648 3.051358 1.120866 2.746648 3.098619 1.063302 2.746648 3.156201 1.016064 2.746648 3.221894 0.9809666 2.746648 3.221755 1.68299 2.746648 3.156077 1.647867 2.746648 3.098513 1.600607 2.746648 3.051275 1.543023 2.746648 3.016178 1.477331 2.746648 2.994572 1.406054 2.746648 2.987286 1.331932 2.746648 1.607303 7.890908 2.746561 1.419391 7.790466 2.746561 1.254684 7.655295 2.746561 1.119513 7.490588 2.746561 1.019072 7.302676 2.746561 0.9572206 7.098779 2.746561 2.024374 5.798451 2.746558 2.235292 5.820707 2.746561 2.439189 5.88256 2.746561 2.627102 5.983001 2.746561 2.791808 6.118172 2.746561 2.92698 6.282879 2.746561 3.027421 6.470792 2.746561 3.089272 6.674689 2.746561 3.110156 6.886735 2.746561 3.089272 7.098781 2.746561 3.02742 7.302678 2.746561 2.926978 7.49059 2.746561 2.791807 7.655296 2.746561 2.6271 7.790467 2.746561 2.439188 7.890908 2.746561 2.23529 7.95276 2.746561 1.727078 5.350268 2.746555 1.748713 5.279 2.746555 1.783835 5.213322 2.746555 1.831096 5.155758 2.746555 1.888678 5.10852 2.746555 1.954371 5.073422 2.746555 1.954232 5.775447 2.746555 1.888554 5.740324 2.746555 1.830989 5.693063 2.746555 1.783751 5.63548 2.746555 1.748655 5.569788 2.746555 1.727049 5.49851 2.746555 1.719763 5.424388 2.746555 3.04437 8.402414 2.048514 3.322451 8.1742 2.048514 3.550664 7.896119 2.048514 3.720244 7.578861 2.048514 1.440036 2.768441 2.048607 1.432571 -5.811379 2.048607 1.440066 -5.887319 2.048607 1.462231 -5.960336 2.048607 1.498216 -6.027626 2.048607 1.546636 -6.086602 2.048607 1.605632 -6.135 2.048607 1.672936 -6.170958 2.048607 1.745962 -6.193094 2.048607 1.821904 -6.200559 2.048607 1.897842 -6.193065 2.048607 1.970859 -6.170899 2.048607 2.038149 -6.134914 2.048607 2.097126 -6.086494 2.048607 2.145524 -6.027498 2.048607 2.181481 -5.960194 2.048607 2.203618 -5.887168 2.048607 2.211082 -5.811226 2.048607 2.203588 2.768591 2.048607 3.82467 7.234614 2.048514 3.859931 6.876609 2.048514 3.824671 6.518606 2.048514 3.720246 6.174359 2.048514 3.550667 5.857099 2.048514 3.322453 5.579019 2.048514 3.044373 5.350805 2.048514 2.727114 5.181226 2.048514 2.382867 5.0768 2.048514 2.026064 5.041615 2.048511 0.2250553 7.234612 2.048514 0.3294813 7.578858 2.048514 0.4990593 7.896117 2.048514 0.173222 6.860721 2.048561 0.1664662 -5.811379 2.048607 0.1739607 -5.887319 2.048607 0.196126 -5.960336 2.048607 0.2321103 -6.027626 2.048607 0.2805307 -6.086602 2.048607 0.3395267 -6.135 2.048607 0.4068308 -6.170958 2.048607 0.479857 -6.193094 2.048607 0.5557983 -6.200559 2.048607 0.6317368 -6.193065 2.048607 0.7047541 -6.170899 2.048607 0.772044 -6.134914 2.048607 0.8310206 -6.086494 2.048607 0.8794184 -6.027498 2.048607 0.915376 -5.960194 2.048607 0.9375124 -5.887168 2.048607 0.9449771 -5.811226 2.048607 0.9367733 6.860872 2.048561 0.7272735 8.174198 2.048514 1.005353 8.402412 2.048514 1.322613 8.57199 2.048514 1.666859 8.676417 2.048514 2.024863 8.711676 2.048514 3.292386 4.61922 2.048607 2.934382 4.58396 2.048607 2.590136 4.479534 2.048607 2.272877 4.309955 2.048607 1.994797 4.08174 2.048607 1.766582 3.803661 2.048607 1.597004 3.486401 2.048607 1.492578 3.142155 2.048607 1.812817 7.942634 2.048514 3.293587 0.949159 2.048604 3.650391 0.9843429 2.048607 3.994637 1.08877 2.048607 4.311896 1.258348 2.048607 4.589976 1.486562 2.048607 4.818191 1.764643 2.048607 4.987769 2.081902 2.048607 5.092195 2.426149 2.048607 5.127454 2.784153 2.048607 5.092194 3.142157 2.048607 4.987767 3.486404 2.048607 4.818188 3.803663 2.048607 4.589974 4.081742 2.048607 4.311893 4.309957 2.048607 3.994633 4.479535 2.048607 3.650387 4.58396 2.048607 3.292386 3.871062 2.048607 3.08034 3.850177 2.048607 2.876444 3.788326 2.048607 2.688531 3.687885 2.048607 2.523824 3.552713 2.048607 2.388653 3.388007 2.048607 2.288212 3.200095 2.048607 2.226361 2.996197 2.048607 2.024863 7.963519 2.048514 3.293514 1.69587 2.048604 3.504432 1.718126 2.048607 3.708329 1.779978 2.048607 3.896242 1.880418 2.048607 4.060948 2.01559 2.048607 4.19612 2.180297 2.048607 4.296561 2.368209 2.048607 4.358413 2.572107 2.048607 4.379296 2.784152 2.048607 4.358412 2.996198 2.048607 4.29656 3.200096 2.048607 4.196118 3.388008 2.048607 4.060947 3.552714 2.048607 3.89624 3.687886 2.048607 3.708328 3.788327 2.048607 3.50443 3.850177 2.048607 2.996218 1.247687 2.048601 3.017853 1.176419 2.048601 3.052975 1.11074 2.048601 3.100236 1.053176 2.048601 3.157818 1.005938 2.048601 3.223511 0.9708408 2.048601 3.223372 1.672864 2.048601 3.157694 1.637742 2.048601 3.10013 1.590481 2.048601 3.052891 1.532898 2.048601 3.017795 1.467206 2.048601 2.996189 1.395929 2.048601 2.988903 1.321806 2.048601 1.60892 7.880783 2.048514 1.421008 7.780341 2.048514 1.256301 7.64517 2.048514 1.12113 7.480463 2.048514 1.020689 7.292551 2.048514 0.9588375 7.088654 2.048514 2.02599 5.788327 2.048511 2.236909 5.810582 2.048514 2.440806 5.872434 2.048514 2.628719 5.972875 2.048514 2.793425 6.108046 2.048514 2.928597 6.272753 2.048514 3.029038 6.460666 2.048514 3.090889 6.664564 2.048514 3.111773 6.876609 2.048514 3.090888 7.088655 2.048514 3.029037 7.292552 2.048514 2.928595 7.480464 2.048514 2.793424 7.645171 2.048514 2.628717 7.780342 2.048514 2.440804 7.880783 2.048514 2.236907 7.942634 2.048514 1.728695 5.340144 2.048508 1.750329 5.268876 2.048508 1.785452 5.203196 2.048508 1.832713 5.145632 2.048508 1.890295 5.098395 2.048508 1.955988 5.063298 2.048508 1.955849 5.765321 2.048508 1.890171 5.730198 2.048508 1.832606 5.682938 2.048508 1.785368 5.625354 2.048508 1.750272 5.559662 2.048508 1.728666 5.488385 2.048508 1.72138 5.414262 2.048508 -2.684801 8.686542 2.746561 -3.029047 8.582118 2.746561 -3.346307 8.412539 2.746561 -3.624388 8.184325 2.746561 -3.852601 7.906244 2.746561 -4.022181 7.588986 2.746561 -1.741973 2.778566 2.746655 -1.734508 -5.801254 2.746655 -1.742003 -5.877193 2.746655 -1.764168 -5.95021 2.746655 -1.800152 -6.0175 2.746655 -1.848573 -6.076477 2.746655 -1.907569 -6.124875 2.746655 -1.974873 -6.160832 2.746655 -2.047899 -6.182969 2.746655 -2.12384 -6.190433 2.746655 -2.199779 -6.182939 2.746655 -2.272796 -6.160774 2.746655 -2.340086 -6.124789 2.746655 -2.399063 -6.076369 2.746655 -2.44746 -6.017373 2.746655 -2.483418 -5.950068 2.746655 -2.505554 -5.877042 2.746655 -2.513019 -5.801101 2.746655 -2.505524 2.778716 2.746655 -4.126607 7.244739 2.746561 -4.161867 6.886735 2.746561 -4.126608 6.528731 2.746561 -4.022182 6.184484 2.746561 -3.852604 5.867225 2.746561 -3.62439 5.589145 2.746561 -3.34631 5.36093 2.746561 -3.029051 5.191352 2.746561 -2.684804 5.086925 2.746561 -2.328001 5.051741 2.746558 -0.5269922 7.244737 2.746561 -0.6314181 7.588983 2.746561 -0.8009962 7.906242 2.746561 -0.4751588 6.870847 2.746608 -0.4684031 -5.801254 2.746655 -0.4758976 -5.877193 2.746655 -0.4980629 -5.95021 2.746655 -0.5340471 -6.0175 2.746655 -0.5824676 -6.076477 2.746655 -0.6414635 -6.124875 2.746655 -0.7087677 -6.160832 2.746655 -0.7817938 -6.182969 2.746655 -0.8577352 -6.190433 2.746655 -0.9336736 -6.182939 2.746655 -1.006691 -6.160774 2.746655 -1.073981 -6.124789 2.746655 -1.132957 -6.076369 2.746655 -1.181355 -6.017373 2.746655 -1.217313 -5.950068 2.746655 -1.239449 -5.877042 2.746655 -1.246914 -5.801101 2.746655 -1.23871 6.870997 2.746608 -1.02921 8.184323 2.746561 -1.30729 8.412537 2.746561 -1.62455 8.582118 2.746561 -1.968796 8.686542 2.746561 -2.326799 8.721802 2.746561 -2.683184 8.676417 2.048514 -3.027431 8.571991 2.048514 -3.594323 4.629346 2.746654 -3.236319 4.594085 2.746654 -2.892073 4.489659 2.746654 -2.574813 4.320081 2.746654 -2.296733 4.091866 2.746654 -2.068519 3.813786 2.746654 -1.898941 3.496527 2.746654 -1.794515 3.152281 2.746654 -2.114754 7.95276 2.746561 -3.595524 0.9592848 2.746651 -3.952327 0.9944687 2.746654 -4.296574 1.098896 2.746654 -4.613833 1.268474 2.746654 -4.891913 1.496688 2.746654 -5.120127 1.774769 2.746654 -5.289706 2.092028 2.746654 -5.394131 2.436275 2.746654 -5.42939 2.794278 2.746654 -5.39413 3.152283 2.746654 -5.289704 3.49653 2.746654 -5.120124 3.813788 2.746654 -4.891911 4.091867 2.746654 -4.61383 4.320083 2.746654 -4.29657 4.48966 2.746654 -3.952324 4.594085 2.746654 -3.594323 3.881187 2.746654 -3.382277 3.860303 2.746654 -3.17838 3.798451 2.746654 -2.990468 3.69801 2.746654 -2.825761 3.562839 2.746654 -2.69059 3.398132 2.746654 -2.590149 3.210219 2.746654 -2.528297 3.006323 2.746654 -2.326799 7.973643 2.746561 -3.59545 1.705996 2.746651 -3.806369 1.728251 2.746654 -4.010266 1.790103 2.746654 -4.198179 1.890544 2.746654 -4.362885 2.025716 2.746654 -4.498057 2.190423 2.746654 -4.598498 2.378335 2.746654 -4.660349 2.582232 2.746654 -4.681233 2.794278 2.746654 -4.660348 3.006324 2.746654 -4.598497 3.210221 2.746654 -4.498055 3.398133 2.746654 -4.362884 3.562839 2.746654 -4.198177 3.69801 2.746654 -4.010264 3.798451 2.746654 -3.806367 3.860303 2.746654 -3.298155 1.257812 2.746648 -3.319789 1.186544 2.746648 -3.354912 1.120866 2.746648 -3.402173 1.063302 2.746648 -3.459755 1.016064 2.746648 -3.525448 0.9809666 2.746648 -3.525309 1.68299 2.746648 -3.459631 1.647867 2.746648 -3.402066 1.600607 2.746648 -3.354828 1.543023 2.746648 -3.319732 1.477331 2.746648 -3.298126 1.406054 2.746648 -3.29084 1.331932 2.746648 -1.910857 7.890908 2.746561 -1.722944 7.790466 2.746561 -1.558238 7.655295 2.746561 -1.423067 7.490588 2.746561 -1.322626 7.302676 2.746561 -1.260774 7.098779 2.746561 -2.327927 5.798451 2.746558 -2.538846 5.820707 2.746561 -2.742743 5.88256 2.746561 -2.930655 5.983001 2.746561 -3.095362 6.118172 2.746561 -3.230534 6.282879 2.746561 -3.330975 6.470792 2.746561 -3.392826 6.674689 2.746561 -3.41371 6.886735 2.746561 -3.392825 7.098781 2.746561 -3.330974 7.302678 2.746561 -3.230532 7.49059 2.746561 -3.095361 7.655296 2.746561 -2.930654 7.790467 2.746561 -2.742741 7.890908 2.746561 -2.538844 7.95276 2.746561 -2.030632 5.350268 2.746555 -2.052266 5.279 2.746555 -2.087388 5.213322 2.746555 -2.134649 5.155758 2.746555 -2.192232 5.10852 2.746555 -2.257925 5.073422 2.746555 -2.257786 5.775447 2.746555 -2.192108 5.740324 2.746555 -2.134543 5.693063 2.746555 -2.087305 5.63548 2.746555 -2.052209 5.569788 2.746555 -2.030603 5.49851 2.746555 -2.023317 5.424388 2.746555 -3.34469 8.402414 2.048514 -3.622771 8.1742 2.048514 -3.850985 7.896119 2.048514 -4.020564 7.578861 2.048514 -1.740357 2.768441 2.048607 -1.732892 -5.811379 2.048607 -1.740386 -5.887319 2.048607 -1.762551 -5.960336 2.048607 -1.798536 -6.027626 2.048607 -1.846956 -6.086602 2.048607 -1.905952 -6.135 2.048607 -1.973256 -6.170958 2.048607 -2.046282 -6.193094 2.048607 -2.122224 -6.200559 2.048607 -2.198162 -6.193065 2.048607 -2.27118 -6.170899 2.048607 -2.338469 -6.134914 2.048607 -2.397446 -6.086494 2.048607 -2.445844 -6.027498 2.048607 -2.481801 -5.960194 2.048607 -2.503938 -5.887168 2.048607 -2.511403 -5.811226 2.048607 -2.503908 2.768591 2.048607 -4.12499 7.234614 2.048514 -4.160251 6.876609 2.048514 -4.124991 6.518606 2.048514 -4.020566 6.174359 2.048514 -3.850987 5.857099 2.048514 -3.622773 5.579019 2.048514 -3.344693 5.350805 2.048514 -3.027434 5.181226 2.048514 -2.683187 5.0768 2.048514 -2.326384 5.041615 2.048511 -0.5253757 7.234612 2.048514 -0.6298016 7.578858 2.048514 -0.7993797 7.896117 2.048514 -0.4735423 6.860721 2.048561 -0.4667866 -5.811379 2.048607 -0.4742811 -5.887319 2.048607 -0.4964464 -5.960336 2.048607 -0.5324307 -6.027626 2.048607 -0.5808511 -6.086602 2.048607 -0.639847 -6.135 2.048607 -0.7071512 -6.170958 2.048607 -0.7801774 -6.193094 2.048607 -0.8561187 -6.200559 2.048607 -0.9320572 -6.193065 2.048607 -1.005074 -6.170899 2.048607 -1.072364 -6.134914 2.048607 -1.131341 -6.086494 2.048607 -1.179739 -6.027498 2.048607 -1.215696 -5.960194 2.048607 -1.237833 -5.887168 2.048607 -1.245297 -5.811226 2.048607 -1.237094 6.860872 2.048561 -1.027594 8.174198 2.048514 -1.305674 8.402412 2.048514 -1.622933 8.57199 2.048514 -1.967179 8.676417 2.048514 -2.325183 8.711676 2.048514 -3.592706 4.61922 2.048607 -3.234702 4.58396 2.048607 -2.890456 4.479534 2.048607 -2.573197 4.309955 2.048607 -2.295117 4.08174 2.048607 -2.066903 3.803661 2.048607 -1.897325 3.486401 2.048607 -1.792899 3.142155 2.048607 -2.113137 7.942634 2.048514 -3.593907 0.949159 2.048604 -3.950711 0.9843429 2.048607 -4.294957 1.08877 2.048607 -4.612216 1.258348 2.048607 -4.890296 1.486562 2.048607 -5.11851 1.764643 2.048607 -5.288089 2.081902 2.048607 -5.392514 2.426149 2.048607 -5.427773 2.784153 2.048607 -5.392513 3.142157 2.048607 -5.288087 3.486404 2.048607 -5.118507 3.803663 2.048607 -4.890294 4.081742 2.048607 -4.612213 4.309957 2.048607 -4.294953 4.479535 2.048607 -3.950707 4.58396 2.048607 -3.592706 3.871062 2.048607 -3.380661 3.850177 2.048607 -3.176764 3.788326 2.048607 -2.988851 3.687885 2.048607 -2.824144 3.552713 2.048607 -2.688973 3.388007 2.048607 -2.588532 3.200095 2.048607 -2.526681 2.996197 2.048607 -2.325183 7.963519 2.048514 -3.593834 1.69587 2.048604 -3.804752 1.718126 2.048607 -4.008649 1.779978 2.048607 -4.196562 1.880418 2.048607 -4.361268 2.01559 2.048607 -4.49644 2.180297 2.048607 -4.596881 2.368209 2.048607 -4.658732 2.572107 2.048607 -4.679616 2.784152 2.048607 -4.658731 2.996198 2.048607 -4.59688 3.200096 2.048607 -4.496438 3.388008 2.048607 -4.361267 3.552714 2.048607 -4.19656 3.687886 2.048607 -4.008647 3.788327 2.048607 -3.80475 3.850177 2.048607 -3.296538 1.247687 2.048601 -3.318173 1.176419 2.048601 -3.353295 1.11074 2.048601 -3.400556 1.053176 2.048601 -3.458138 1.005938 2.048601 -3.523831 0.9708408 2.048601 -3.523692 1.672864 2.048601 -3.458014 1.637742 2.048601 -3.40045 1.590481 2.048601 -3.353212 1.532898 2.048601 -3.318115 1.467206 2.048601 -3.296509 1.395929 2.048601 -3.289223 1.321806 2.048601 -1.909241 7.880783 2.048514 -1.721328 7.780341 2.048514 -1.556621 7.64517 2.048514 -1.42145 7.480463 2.048514 -1.321009 7.292551 2.048514 -1.259158 7.088654 2.048514 -2.326311 5.788327 2.048511 -2.537229 5.810582 2.048514 -2.741127 5.872434 2.048514 -2.929039 5.972875 2.048514 -3.093745 6.108046 2.048514 -3.228917 6.272753 2.048514 -3.329358 6.460666 2.048514 -3.39121 6.664564 2.048514 -3.412093 6.876609 2.048514 -3.391209 7.088655 2.048514 -3.329357 7.292552 2.048514 -3.228915 7.480464 2.048514 -3.093744 7.645171 2.048514 -2.929037 7.780342 2.048514 -2.741125 7.880783 2.048514 -2.537227 7.942634 2.048514 -2.029015 5.340144 2.048508 -2.05065 5.268876 2.048508 -2.085772 5.203196 2.048508 -2.133033 5.145632 2.048508 -2.190615 5.098395 2.048508 -2.256308 5.063298 2.048508 -2.256169 5.765321 2.048508 -2.190491 5.730198 2.048508 -2.132927 5.682938 2.048508 -2.085689 5.625354 2.048508 -2.050592 5.559662 2.048508 -2.028986 5.488385 2.048508 -2.0217 5.414262 2.048508 @@ -58,9 +58,9 @@ - 0 0 1 0 1.91396e-6 1 -4.45071e-7 0 1 -4.45071e-7 0 1 -4.4507e-7 0 1 -4.45072e-7 0 1 2.22536e-7 0 1 -7.15887e-6 0 1 -4.45071e-7 0 1 -3.33805e-7 0 1 -8.90141e-7 0 1 4.45071e-7 0 1 0 1.26262e-4 1 -4.4507e-7 0 1 2.22536e-7 0 1 4.45071e-7 0 1 7.78873e-7 0 1 4.45073e-7 0 1 -1.11268e-6 0 1 -8.94858e-6 0 1 2.22535e-7 0 1 -2.22536e-7 0 1 1.92859e-6 0 1 -6.56232e-7 0 -1 -6.56231e-7 0 -1 0 0 -1 4.45071e-7 0 -1 3.75712e-7 0 -1 0 -1.27598e-6 -1 -4.45071e-7 0 -1 2.22536e-7 0 -1 -5.63571e-7 0 -1 -3.75715e-7 0 -1 1.44281e-5 2.86293e-6 -1 -7.51425e-7 0 -1 -3.75714e-7 0 -1 4.45072e-7 0 -1 -8.90143e-7 0 -1 3.75715e-7 0 -1 -2.22536e-7 0 -1 0 -1.25624e-4 -1 3.75714e-7 0 -1 -8.90141e-7 0 -1 8.90145e-7 0 -1 3.75713e-7 0 -1 1.40509e-5 2.86293e-6 -1 -5.63572e-7 0 -1 3.75712e-7 0 -1 -8.90141e-7 0 -1 -0.7729898 -0.6343754 0.007410407 -0.4711858 -0.8819565 0.01170164 -0.4713634 -0.8818615 0.01169937 -0.09800612 0.9950779 -0.01466393 -0.6343614 -0.7729753 0.009744048 -0.2900725 -0.9569136 0.0132085 -0.2902596 -0.9568568 0.01320743 -0.4713636 -0.8818615 0.01169937 -0.09781038 -0.9951037 0.01420867 -0.09800708 -0.9950844 0.0142067 0.7729642 -0.6343545 0.0109933 -0.2902587 -0.9568572 0.01320737 0.09819746 -0.995059 0.01466065 0.9951782 -0.09801286 0.003727376 -0.09800267 -0.9950848 0.01420432 0.2904413 -0.9567823 0.01455128 0.9569218 -0.2902752 0.006427586 0.4715325 -0.8817394 0.01388394 0.6344901 -0.7728272 0.01267927 -0.09800887 0.9950776 -0.01465928 0.7730873 -0.6342045 0.01098972 -0.290253 0.9568395 -0.01455062 0.8819795 -0.4712044 0.008877098 0.9950249 -0.09955739 0.003749012 -0.471351 0.8818365 -0.0138843 0.9569789 -0.2900865 0.006425142 -0.6343439 0.772947 -0.01268166 0.9951971 -0.09782171 0.003724277 -0.7729626 0.6343565 -0.01099205 0.999997 8.73558e-4 0.002303719 -0.8818872 0.4713769 -0.008880257 0.09800142 -0.9950784 0.01466089 -0.9569206 0.2902784 -0.006427109 0.09800755 0.9950842 -0.0142101 -0.6343429 0.772948 -0.01268184 0.2902579 0.9568574 -0.01320791 0.098122 -0.9950665 0.01466178 0.4713613 0.8818626 -0.01170098 0.2902557 -0.9568385 0.01455134 0.6343631 0.7729738 -0.009745538 0.4713512 -0.8818364 0.01388329 0.7729895 0.6343756 -0.007411658 0.6343426 -0.7729482 0.0126816 0.8819095 0.4713944 -0.004795014 0.7729655 -0.6343529 0.01099205 0.9569212 -0.2902771 0.006427526 0.8818864 -0.4713785 0.008880615 0.9569385 0.290284 -0.001993954 0.9569209 -0.2902776 0.006427168 0.9951846 0.09801536 8.8367e-4 0.9951782 -0.09801286 0.00372684 0.9951842 0.09801888 8.83475e-4 0.8818863 -0.4713787 0.008879482 0.9569378 0.2902866 -0.001994013 0.6343424 -0.7729482 0.01268213 0.8819087 0.4713962 -0.004795014 0.4713513 -0.8818364 0.0138843 0.7729886 0.6343767 -0.007411241 0.2902569 -0.9568382 0.01455324 0.6343623 0.7729746 -0.009741783 0.098122 -0.9950665 0.01466035 0.4713619 0.8818623 -0.01170003 -0.9569205 0.2902789 -0.006426632 -0.9568779 -0.2904837 0.001996874 0.2902556 0.9568581 -0.01320707 -0.9999972 5.33108e-4 -0.002324104 -0.8818197 -0.4715625 0.004797697 0.0980103 0.995084 -0.01420831 -0.9568791 -0.2904797 0.001996517 -0.9951651 -0.09821367 -8.80647e-4 -0.7728579 -0.634536 0.007413864 0.09800589 -0.9950779 0.01466089 -0.8818216 -0.4715589 0.004796683 -0.956881 -0.2904736 0.001996815 -0.6342106 -0.773099 0.009745121 0.2902542 -0.956839 0.01455187 -0.7728598 -0.6345336 0.007413923 -0.8818194 -0.471563 0.004797577 -0.4711949 -0.8819516 0.01170212 0.4713489 -0.8818376 0.0138837 -0.6342166 -0.7730941 0.009745538 -0.7728614 -0.6345316 0.007414281 -0.4715309 0.8817404 -0.01388251 0.6343439 -0.7729471 0.01268196 -0.471193 -0.8819526 0.01169973 -0.6342167 -0.773094 0.009745895 -0.6344909 0.7728263 -0.0126788 0.7729634 -0.6343557 0.0109921 -0.4715306 0.8817405 -0.01388221 -0.4711865 -0.8819561 0.0117017 -0.7730954 0.6341946 -0.01099002 0.8818865 -0.4713782 0.008880317 -0.6344964 0.7728219 -0.01267981 -0.2900727 -0.9569135 0.0132085 -0.8819799 0.4712037 -0.008877515 0.95692 -0.2902806 0.006426811 -0.7730881 0.6342035 -0.01098924 -0.9569793 0.2900853 -0.006424188 -0.4713497 0.8818371 -0.01388531 -0.8819797 0.4712039 -0.008877813 0.09819722 -0.995059 0.01466172 -0.9951978 0.09781438 -0.003724217 -0.1049248 0.994372 -0.01466685 -0.956979 0.290086 -0.006424546 0.2904428 -0.9567817 0.01455026 -0.9951653 -0.09821057 -8.80591e-4 -0.1049248 0.9943721 -0.01466512 -0.2902533 0.9568393 -0.01455026 -0.9951968 0.09782415 -0.003724038 0.4715325 -0.8817394 0.01388287 -0.2955546 -0.9552351 0.01317191 0.8818863 -0.4713788 0.008880436 -0.4713489 0.8818376 -0.01388365 -0.9951654 -0.09821003 -8.80479e-4 0.6344912 -0.7728261 0.01267933 -0.3116214 0.9500957 -0.01450371 0.7729653 -0.6343531 0.01099216 -0.634347 0.7729445 -0.01268178 -0.2955526 -0.9552357 0.01317119 0.7730862 -0.6342058 0.01098972 -0.9902516 0.1392236 -0.004313349 0.6343412 -0.7729493 0.01268213 -0.7729626 0.6343563 -0.0109921 -0.311608 0.9501002 -0.01450169 0.8819803 -0.4712026 0.008877098 -0.2902572 0.9568381 -0.01455187 0.4713531 -0.8818354 0.01388299 -0.8818861 0.4713788 -0.008880555 0.9953346 -0.09641265 0.003703951 0.9569783 -0.2900885 0.006424546 -0.7729642 0.6343544 -0.01099336 0.2902541 -0.956839 0.01455283 -0.9569209 0.2902779 -0.006427168 0.9951968 -0.09782391 0.003724277 -0.8818872 0.4713768 -0.008880138 -0.999997 8.70053e-4 -0.002328991 -0.9951783 0.09801238 -0.003726899 -0.9905179 0.1373175 -0.004285991 0.9999971 6.47395e-4 0.002306997 -0.9569209 0.2902778 -0.006427407 -0.9951652 -0.0982117 -8.80647e-4 -0.9951841 -0.09801936 -8.83446e-4 -0.8818874 0.4713765 -0.008880734 -0.9951783 0.09801226 -0.003726899 -0.9568811 -0.2904734 0.001996815 -0.9569387 -0.2902833 0.001994073 -0.7729626 0.6343563 -0.010993 -0.9951846 -0.09801614 -8.83245e-4 -0.8818187 -0.4715643 0.00479871 -0.8819069 -0.4713995 0.004795253 -0.6343436 0.7729473 -0.01268357 -0.9569387 -0.2902832 0.00199449 -0.7728623 -0.6345306 0.007414281 -0.7729864 -0.6343794 0.007411181 -0.4713531 0.8818354 -0.01388335 -0.8819096 -0.4713943 0.004795253 -0.6342183 -0.7730926 0.009745955 -0.6343606 -0.772976 0.009741663 -0.2902528 0.9568395 -0.01455348 -3.75714e-7 0 1 -3.75713e-7 0 1 -1.68294e-7 1.91396e-6 1 -2.34822e-7 0 1 8.90141e-7 0 1 1.65027e-5 -2.86292e-6 1 3.75713e-7 0 1 -1.87857e-7 0 1 1.315e-6 0 1 8.90143e-7 0 1 -2.39578e-7 1.26262e-4 1 -7.51425e-7 0 1 -2.22536e-7 0 1 4.4507e-7 0 1 7.51429e-7 0 1 -3.75716e-7 0 1 3.75714e-7 0 1 1.70685e-5 -2.86293e-6 1 -3.75714e-7 0 1 -1.12713e-6 0 1 6.1054e-7 0 1 -4.97765e-6 0 1 -4.58897e-7 0 -1 -4.45071e-7 0 -1 0 -1.27597e-6 -1 4.45071e-7 0 -1 2.22535e-7 0 -1 0 0 -1 -8.90141e-7 0 -1 -2.22535e-7 0 -1 -9.84345e-6 0 -1 8.90141e-7 0 -1 -4.45071e-7 0 -1 0 0 -1 6.67607e-7 0 -1 4.4507e-7 0 -1 -1.45954e-6 0 -1 4.45071e-7 0 -1 0 -1.25624e-4 -1 4.4507e-7 0 -1 2.22536e-7 0 -1 5.56338e-7 0 -1 -4.45073e-7 0 -1 3.33803e-7 0 -1 -9.84343e-6 0 -1 3.33806e-7 0 -1 6.67606e-7 0 -1 0.7729641 -0.6343545 0.01099127 0.4711726 -0.8819318 0.01388341 0.4713503 -0.8818368 0.01388216 0.09800702 0.9950844 -0.01421087 0.6343412 -0.7729493 0.01268029 0.2900682 -0.9568954 0.01455193 0.2902533 -0.9568392 0.01455199 0.4713497 -0.8818371 0.01388376 0.09780979 -0.9950972 0.01465946 0.09800648 -0.9950779 0.01466101 -0.77299 -0.6343749 0.007412075 0.2902532 -0.9568393 0.01455312 -0.09819847 -0.9950655 0.01420766 -0.9951846 -0.09801524 -8.82749e-4 0.09800654 -0.9950779 0.0146594 -0.2904468 -0.9568001 0.01320737 -0.9569388 -0.290283 0.001994252 -0.4715459 -0.881764 0.01169824 -0.6345131 -0.7728508 0.009741544 0.09800958 0.9950841 -0.01420867 -0.7731151 -0.6342226 0.007409751 0.2902581 0.9568574 -0.01320642 -0.8820053 -0.4712151 0.004793107 -0.9950314 -0.09955829 -8.60158e-4 0.4713637 0.8818613 -0.01170098 -0.9569962 -0.2900937 0.001991808 0.6343646 0.7729727 -0.00974214 -0.9952031 -0.09782618 -8.85537e-4 0.7729881 0.6343773 -0.007411599 -0.999997 8.73517e-4 -0.002328336 0.8819122 0.4713892 -0.004795312 -0.09800672 -0.9950844 0.01420742 0.9569386 0.2902838 -0.001994729 -0.09800696 0.9950777 -0.01466476 0.6343621 0.7729748 -0.00974369 -0.2902503 0.9568402 -0.01455348 -0.09812253 -0.995073 0.014207 -0.4713502 0.8818369 -0.01388329 -0.290263 -0.9568558 0.01320797 -0.634342 0.7729487 -0.01267975 -0.4713627 -0.8818619 0.01169973 -0.772964 0.6343548 -0.010993 -0.6343635 -0.7729735 0.009743452 -0.8818851 0.4713809 -0.00887984 -0.7729908 -0.634374 0.007411837 -0.9569386 -0.2902836 0.001994073 -0.881911 -0.4713916 0.004794836 -0.9569205 0.2902793 -0.006426155 -0.9569394 -0.2902811 0.001994013 -0.9951779 0.09801626 -0.003726303 -0.9951847 -0.0980131 -8.83518e-4 -0.9951777 0.09801846 -0.00372684 -0.8819117 -0.4713904 0.004795551 -0.95692 0.2902809 -0.006427109 -0.6343629 -0.7729741 0.00974369 -0.8818839 0.471383 -0.008880257 -0.4713649 -0.8818607 0.01170015 -0.7729637 0.6343552 -0.01099252 -0.29026 -0.9568567 0.01320558 -0.6343412 0.7729492 -0.01268255 -0.09812521 -0.9950728 0.01420611 -0.4713479 0.881838 -0.0138843 0.9569384 0.2902845 -0.001994311 0.9568626 -0.2904699 0.006429135 -0.2902526 0.9568395 -0.01455157 0.9999972 5.33122e-4 0.002307951 0.8817989 -0.4715422 0.008882164 -0.09800964 0.9950775 -0.01465976 0.9568613 -0.2904742 0.006428897 0.9951586 -0.09821212 0.003728985 0.7728368 -0.6345096 0.01099354 -0.09800654 -0.9950845 0.01420742 0.881795 -0.4715493 0.008881628 0.9568632 -0.290468 0.006429016 0.6341897 -0.7730736 0.01268237 -0.2902587 -0.9568572 0.01320815 0.772832 -0.6345155 0.01099371 0.8817949 -0.4715495 0.008882164 0.4711779 -0.881929 0.01388424 -0.4713624 -0.8818621 0.01170092 0.6341957 -0.7730687 0.0126819 0.7728356 -0.6345111 0.01099371 0.4715439 0.881765 -0.01169842 -0.634365 -0.7729722 0.009744048 0.4711798 -0.881928 0.0138815 0.6341959 -0.7730686 0.01268303 0.6345118 0.7728518 -0.009740114 -0.7729889 -0.6343763 0.007411956 0.4715437 0.8817651 -0.011698 0.4711731 -0.8819316 0.01388341 0.7731164 0.634221 -0.007409453 -0.8819103 -0.4713929 0.004794836 0.634515 0.7728492 -0.009741306 0.290067 -0.9568957 0.01455187 0.8820044 0.4712169 -0.004792153 -0.9569388 -0.2902831 0.001994848 0.7731158 0.6342217 -0.007408022 0.09780979 -0.9950972 0.01466059 0.9569971 0.2900906 -0.001991391 0.4713636 0.8818615 -0.01170122 0.8820044 0.471217 -0.004792928 -0.09819781 -0.9950656 0.0142064 0.9952034 0.09782409 8.85622e-4 0.1049255 0.9943791 -0.01418113 0.9569969 0.2900913 -0.001991987 -0.290448 -0.9567997 0.01320743 0.9951588 -0.09820991 0.003729104 0.1049255 0.9943791 -0.01417958 0.2902596 0.9568569 -0.01320612 0.9952037 0.09782022 8.85673e-4 -0.4715468 -0.8817635 0.01169824 0.2955486 -0.955217 0.01454073 -0.8819109 -0.4713919 0.004795253 0.471362 0.8818623 -0.01169985 0.9951588 -0.09820932 0.003729164 0.3116247 0.9501155 -0.01306027 -0.7729907 -0.6343742 0.007411956 0.6343632 0.7729738 -0.009742975 0.2955487 -0.955217 0.01453965 -0.7731129 -0.6342253 0.007409691 0.9902607 0.1392259 2.73571e-4 -0.6343622 -0.7729746 0.009744048 0.7729882 0.6343773 -0.007411181 0.3116145 0.950119 -0.01305913 -0.8820064 -0.4712134 0.004793107 0.290263 0.9568558 -0.01320761 -0.4713666 -0.8818598 0.01170092 0.8819122 0.4713895 -0.004794955 -0.995341 -0.09641385 -9.06116e-4 -0.9569956 -0.2900958 0.001991808 0.7729896 0.6343754 -0.007412493 -0.2902605 -0.9568566 0.01320743 0.9569387 0.2902833 -0.001994132 -0.9952036 -0.09782177 -8.85678e-4 0.8819119 0.4713901 -0.00479561 0.999997 8.70054e-4 0.002303063 0.9951848 0.09801298 8.83515e-4 0.9905268 0.1373194 3.0198e-4 -0.9999971 6.4737e-4 -0.002325057 0.9569387 0.2902833 -0.001994669 0.9951582 -0.09821546 0.003728985 0.9951783 -0.09801232 0.003727018 0.8819119 0.4713898 -0.004795551 0.995185 0.0980097 8.82794e-4 0.9569209 -0.2902779 0.006427228 0.7729883 0.634377 -0.007413327 0.9951779 -0.09801542 0.003726363 0.8817939 -0.4715512 0.008882761 0.8818861 -0.4713788 0.008880376 0.6343645 0.7729727 -0.009747147 0.9569209 -0.2902778 0.006426811 0.7728345 -0.6345125 0.01099371 0.7729656 -0.6343527 0.0109921 0.4713662 0.88186 -0.01169937 0.8818849 -0.4713813 0.00887978 0.6341975 -0.7730672 0.01268309 0.6343396 -0.7729505 0.01268041 0.2902582 0.9568573 -0.01320862 5.82296e-7 0 1 6.55927e-6 0 1 -2.62343e-5 0 1 0 0 1 3.37601e-6 0 1 0 0 1 0 3.66882e-6 1 -2.6235e-5 0 1 -4.27558e-7 3.66882e-6 1 3.75714e-7 0 1 3.75713e-7 0 1 0 3.08119e-6 1 2.34822e-7 0 1 -1.65027e-5 -2.86292e-6 1 -3.75713e-7 0 1 1.87857e-7 0 1 -1.315e-6 0 1 1.50286e-6 0 1 1.50286e-6 0 1 -4.55196e-5 0 1 2.75385e-5 0 1 -3.71933e-5 0 1 -2.75391e-5 0 1 -3.87734e-5 0 1 7.08757e-6 0 1 1.42213e-5 0 1 -5.17037e-6 0 1 7.51428e-7 0 1 4.0235e-5 2.03329e-4 1 7.51425e-7 0 1 -7.51429e-7 0 1 3.75716e-7 0 1 -1.70685e-5 -2.86292e-6 1 1.12713e-6 0 1 -6.1054e-7 0 1 -3.64157e-5 0 1 -2.75372e-5 0 1 -2.75387e-5 0 1 -3.87735e-5 0 1 1.8597e-5 0 1 -3.86689e-6 0 1 0 0 -1 -1.31179e-5 0 -1 -6.20857e-7 0 -1 -8.85771e-6 0 -1 5.67439e-7 0 -1 1.38145e-6 0 -1 0 -3.66882e-6 -1 2.6235e-5 0 -1 -1.31172e-5 0 -1 3.52991e-7 -3.66882e-6 -1 1.38146e-6 0 -1 -7.51426e-7 0 -1 -3.49922e-7 -2.05413e-6 -1 7.51431e-7 0 -1 -2.22535e-7 0 -1 3.75714e-7 0 -1 -7.04463e-7 0 -1 8.90141e-7 0 -1 3.75714e-7 0 -1 9.84345e-6 0 -1 7.04468e-7 0 -1 1.87857e-7 0 -1 -4.4507e-7 0 -1 4.55196e-5 0 -1 1.37693e-5 0 -1 2.75374e-5 0 -1 1.37694e-5 0 -1 4.36201e-5 0 -1 -1.85965e-5 0 -1 -1.03324e-6 0 -1 3.75716e-7 0 -1 7.51431e-7 0 -1 -3.9885e-5 -2.02301e-4 -1 -4.4507e-7 0 -1 -2.22536e-7 0 -1 -4.45071e-7 0 -1 5.63572e-7 0 -1 -1.315e-6 0 -1 9.84343e-6 0 -1 -3.75716e-7 0 -1 1.12715e-6 0 -1 1.87857e-7 0 -1 3.64157e-5 0 -1 1.37696e-5 0 -1 2.75361e-5 0 -1 2.7538e-5 0 -1 -1.8597e-5 0 -1 4.36202e-5 0 -1 -3.44413e-7 0 -1 -0.772989 -0.6343762 0.007411479 -0.4711875 -0.8819555 0.01170194 -0.4713636 -0.8818615 0.01169902 -0.09800636 0.9950779 -0.01465976 -0.6343607 -0.7729758 0.009742081 -0.2900724 -0.9569136 0.01320981 -0.2902546 -0.9568583 0.01320666 -0.471363 -0.8818617 0.01169973 -0.09781002 -0.9951038 0.01420658 -0.0980072 -0.9950843 0.01420748 0.7729637 -0.6343552 0.01099199 -0.2902588 -0.9568572 0.01320672 0.09819775 -0.995059 0.01466268 0.9951778 -0.0980165 0.003726899 -0.0980072 -0.9950843 0.01420837 0.2904413 -0.9567822 0.01455199 0.956921 -0.2902776 0.006426632 0.4715327 -0.8817393 0.01388198 0.6344922 -0.7728253 0.01268064 -0.09800618 0.9950779 -0.01466262 0.7730897 -0.6342017 0.01099002 -0.2902554 0.9568387 -0.01455247 0.8819807 -0.4712019 0.008878827 0.9950248 -0.09955793 0.003748893 -0.4713508 0.8818366 -0.01388245 0.9569784 -0.2900883 0.006424009 -0.6343437 0.7729471 -0.01268225 0.9951967 -0.09782558 0.003724217 -0.7729636 0.6343554 -0.01099246 0.999997 8.73517e-4 0.002303659 -0.8818874 0.4713766 -0.008880555 0.09800595 -0.995078 0.01465904 -0.9569206 0.290279 -0.006427466 0.09800767 0.9950844 -0.01420617 -0.6343422 0.7729485 -0.01268142 0.2902554 0.9568582 -0.01320946 0.09812188 -0.9950665 0.01466137 0.4713642 0.8818611 -0.01170206 0.2902576 -0.956838 0.01455223 0.634362 0.7729749 -0.009740829 0.4713495 -0.8818373 0.01388311 0.7729904 0.6343746 -0.007413089 0.6343417 -0.7729488 0.01268166 0.8819089 0.4713956 -0.004794657 0.7729644 -0.6343542 0.01099246 0.9569208 -0.2902781 0.006426632 0.8818864 -0.4713784 0.008880257 0.9569383 0.2902847 -0.001993775 0.956921 -0.2902774 0.006427228 0.9951843 0.09801882 8.83696e-4 0.9951782 -0.09801244 0.003727018 0.9951847 0.0980134 8.8358e-4 0.881887 -0.4713773 0.008880734 0.9569389 0.2902829 -0.001994252 0.634342 -0.7729486 0.0126807 0.8819109 0.4713918 -0.004795551 0.4713522 -0.8818359 0.01388239 0.7729909 0.6343739 -0.007411658 0.2902545 -0.9568389 0.01454961 0.6343641 0.7729732 -0.00974369 0.09812462 -0.9950662 0.01466071 0.4713619 0.8818623 -0.01170015 -0.9569207 0.2902785 -0.006427288 -0.956881 -0.2904737 0.001997113 0.290258 0.9568574 -0.0132066 -0.9999972 5.33106e-4 -0.002324104 -0.8818234 -0.4715553 0.004797697 0.09800767 0.9950844 -0.01420521 -0.9568791 -0.2904798 0.001996874 -0.9951651 -0.09821301 -8.80466e-4 -0.7728668 -0.634525 0.007414281 0.09800553 -0.9950779 0.01466125 -0.8818225 -0.4715573 0.004797518 -0.9568809 -0.2904738 0.001997351 -0.6342151 -0.7730954 0.009745478 0.2902551 -0.9568387 0.01455199 -0.7728618 -0.6345311 0.007413446 -0.8818193 -0.4715632 0.004797399 -0.4711911 -0.8819535 0.01170188 0.4713498 -0.8818371 0.0138837 -0.6342087 -0.7731005 0.009744703 -0.7728611 -0.634532 0.007413148 -0.4715207 0.8817458 -0.01388168 0.6343442 -0.7729468 0.01268172 -0.4711928 -0.8819527 0.01170086 -0.6342169 -0.7730939 0.009743809 -0.6344987 0.7728201 -0.01268029 0.7729643 -0.6343545 0.01099258 -0.4715304 0.8817405 -0.01388299 -0.4711862 -0.8819562 0.01170194 -0.7730859 0.6342062 -0.01098966 0.8818871 -0.4713773 0.00887978 -0.6344884 0.7728285 -0.01267975 -0.2900727 -0.9569135 0.01320987 -0.8819798 0.4712038 -0.008877635 0.9569219 -0.2902747 0.006427168 -0.773093 0.6341976 -0.01099038 -0.09781056 -0.9951037 0.01420778 -0.9569779 0.2900902 -0.006424725 -0.4713506 0.8818367 -0.0138815 -0.8819796 0.4712039 -0.008878707 0.0981971 -0.995059 0.01466149 -0.9951968 0.0978235 -0.003724277 -0.1049247 0.9943721 -0.01466763 -0.9569803 0.2900818 -0.006424546 0.2904426 -0.9567818 0.01455205 -0.9951652 -0.09821128 -8.80597e-4 -0.1049203 0.9943726 -0.01466602 -0.2902584 0.9568377 -0.01455217 -0.9951972 0.09781962 -0.003724336 0.4715331 -0.881739 0.01388198 -0.2955542 -0.9552352 0.01317191 0.8818863 -0.4713787 0.008880198 -0.471347 0.8818386 -0.01388245 -0.9951652 -0.09821128 -8.80777e-4 -0.3116158 0.9500975 -0.01450359 0.7729652 -0.6343532 0.01099097 -0.6343445 0.7729465 -0.01268112 -0.2955659 -0.9552316 0.01317071 0.7730875 -0.6342044 0.01099115 -0.9902514 0.1392245 -0.004313409 0.6343412 -0.7729492 0.01268178 -0.7729631 0.6343559 -0.01099228 -0.3116183 0.9500967 -0.01450395 0.8819826 -0.4711984 0.008878827 -0.2902579 0.9568378 -0.01455128 0.4713531 -0.8818353 0.01388365 -0.8818877 0.471376 -0.008880436 0.9953346 -0.09641301 0.003704249 0.9569771 -0.2900924 0.006424546 -0.772963 0.634356 -0.01099139 0.2902547 -0.9568389 0.01455032 -0.9569209 0.2902777 -0.006427288 0.9951971 -0.09782111 0.003724098 -0.8818874 0.4713765 -0.008880436 -0.999997 8.70054e-4 -0.002328991 -0.9951783 0.0980122 -0.003726899 -0.9905179 0.1373173 -0.004286348 0.9999972 6.47394e-4 0.002306997 -0.9569209 0.2902777 -0.006427168 -0.9951648 -0.09821552 -8.80536e-4 -0.9951848 -0.09801286 -8.83426e-4 -0.881887 0.4713773 -0.008880496 -0.9951782 0.0980122 -0.003726959 -0.9568811 -0.2904733 0.001997351 -0.9569379 -0.290286 0.001994013 -0.7729637 0.6343553 -0.0109924 -0.9951841 -0.09801924 -8.83444e-4 -0.8818167 -0.4715679 0.004797399 -0.8819123 -0.4713891 0.004794895 -0.6343423 0.7729483 -0.01268029 -0.9569388 -0.2902832 0.001993954 -0.77286 -0.6345333 0.007413148 -0.7729913 -0.6343734 0.00741136 -0.4713533 0.8818351 -0.01388621 -0.8819096 -0.4713943 0.004795014 -0.6342185 -0.7730925 0.009744942 -0.634365 -0.7729722 0.009743511 -0.290253 0.9568393 -0.01455241 2.35315e-7 0 1 -5.82296e-7 0 1 2.62357e-5 0 1 1.77173e-5 0 1 -6.55893e-6 0 1 0 0 1 -5.08188e-7 0 1 2.35311e-7 0 1 0 3.66882e-6 1 -6.55858e-6 0 1 4.27558e-7 3.66882e-6 1 -5.08192e-7 0 1 0 3.08118e-6 1 4.45071e-7 0 1 4.4507e-7 0 1 -3.75716e-7 0 1 1.87857e-7 0 1 -3.75715e-7 0 1 7.15887e-6 0 1 -1.12715e-6 0 1 2.34823e-7 0 1 -1.50286e-6 0 1 4.55196e-5 0 1 2.75383e-5 0 1 2.75374e-5 0 1 -2.75374e-5 0 1 3.87734e-5 0 1 -7.08766e-6 0 1 -3.86688e-6 0 1 -3.44414e-7 0 1 -1.12714e-6 0 1 -7.51429e-7 0 1 3.75712e-7 0 1 -3.98851e-5 2.03328e-4 1 -2.22536e-7 0 1 -6.10536e-7 0 1 -1.87857e-7 0 1 8.94858e-6 0 1 -1.315e-6 0 1 -3.75715e-7 0 1 3.64158e-5 0 1 1.89617e-5 0 1 -2.75376e-5 0 1 3.87735e-5 0 1 -1.8597e-5 0 1 3.44413e-7 0 1 1.31165e-5 0 -1 1.31172e-5 0 -1 -5.13972e-7 0 -1 6.20857e-7 0 -1 -1.34191e-7 0 -1 0 -3.66882e-6 -1 1.31179e-5 0 -1 -3.52991e-7 -3.66882e-6 -1 -1.3419e-7 0 -1 7.51425e-7 0 -1 -3.75712e-7 0 -1 3.49922e-7 -2.05414e-6 -1 -7.51431e-7 0 -1 -2.08679e-7 0 -1 5.63571e-7 0 -1 3.75715e-7 0 -1 -1.44281e-5 2.86291e-6 -1 3.75714e-7 0 -1 -3.75716e-7 0 -1 -4.55196e-5 0 -1 -4.36201e-5 0 -1 4.74044e-6 0 -1 7.4727e-7 0 -1 -7.51432e-7 0 -1 3.98849e-5 -2.02301e-4 -1 -3.75714e-7 0 -1 -3.75713e-7 0 -1 1.50286e-6 0 -1 -1.40509e-5 2.86293e-6 -1 5.63572e-7 0 -1 -3.75712e-7 0 -1 -1.50286e-6 0 -1 -3.64157e-5 0 -1 1.37673e-5 0 -1 2.75376e-5 0 -1 2.75387e-5 0 -1 -4.36203e-5 0 -1 -2.20509e-6 0 -1 0.7729627 -0.6343564 0.01099097 0.4711726 -0.8819318 0.0138843 0.4713492 -0.8818374 0.01388287 0.09800684 0.9950845 -0.01420414 0.6343397 -0.7729505 0.01268178 0.2900669 -0.9568957 0.01455312 0.2902502 -0.9568403 0.01455032 0.4713498 -0.8818371 0.0138821 0.09780931 -0.9950973 0.01466131 0.09800648 -0.9950779 0.01466089 -0.7729888 -0.6343765 0.007412195 0.2902537 -0.9568391 0.01455032 -0.09819805 -0.9950656 0.01420557 -0.9951848 -0.09801352 -8.82721e-4 0.09800201 -0.9950783 0.01466137 -0.290448 -0.9567997 0.0132063 -0.9569396 -0.2902805 0.001994788 -0.4715457 -0.8817641 0.01169836 -0.6345109 -0.7728525 0.009741365 0.09800696 0.9950845 -0.01420515 -0.7731127 -0.6342254 0.00740844 0.290261 0.9568564 -0.01320755 -0.8820041 -0.4712176 0.004791796 -0.9950314 -0.09955805 -8.60003e-4 0.4713644 0.881861 -0.01170015 -0.9569967 -0.2900919 0.001991927 0.6343645 0.7729728 -0.009744644 -0.9952036 -0.09782236 -8.85613e-4 0.772989 0.6343761 -0.007412612 -0.999997 8.73558e-4 -0.002328336 0.881912 0.4713897 -0.004795551 -0.09800201 -0.9950849 0.01420587 0.9569384 0.2902843 -0.001994729 -0.09800714 0.9950779 -0.01465797 0.6343637 0.7729733 -0.009744107 -0.2902523 0.9568396 -0.01455235 -0.09812277 -0.995073 0.01420718 -0.4713486 0.8818377 -0.01388412 -0.2902606 -0.9568566 0.01320677 -0.6343422 0.7729484 -0.01268291 -0.4713636 -0.8818615 0.01170003 -0.7729641 0.6343547 -0.01099181 -0.6343625 -0.7729743 0.009743034 -0.8818849 0.4713813 -0.00887984 -0.77299 -0.634375 0.007411301 -0.9569387 -0.2902833 0.001995086 -0.8819109 -0.4713917 0.004795014 -0.9569206 0.2902786 -0.006426632 -0.9569388 -0.290283 0.001994073 -0.9951779 0.09801661 -0.003726184 -0.9951846 -0.09801536 -8.83566e-4 -0.9951781 0.09801453 -0.003726959 -0.8819109 -0.4713919 0.004794657 -0.9569209 0.2902776 -0.006427347 -0.6343634 -0.7729737 0.009743571 -0.8818864 0.4713785 -0.008880794 -0.4713644 -0.8818609 0.01170057 -0.772965 0.6343535 -0.01099199 -0.2902626 -0.9568559 0.01320838 -0.6343433 0.7729476 -0.01268064 -0.09812253 -0.995073 0.01420605 -0.4713495 0.8818373 -0.01388251 0.9569385 0.290284 -0.001994252 0.9568605 -0.2904767 0.006429314 -0.2902496 0.9568403 -0.01455074 0.9999972 5.33125e-4 0.002307951 0.881795 -0.4715493 0.008882164 -0.09800708 0.9950777 -0.01466083 0.9568612 -0.2904744 0.006428897 0.9951584 -0.09821265 0.003729104 0.7728368 -0.6345096 0.01099377 -0.09800648 -0.9950845 0.014207 0.8818017 -0.4715369 0.008881688 0.9568629 -0.2904689 0.006429612 0.6341941 -0.7730698 0.01268273 -0.2902605 -0.9568566 0.01320737 0.7728363 -0.6345102 0.0109933 0.8817943 -0.4715505 0.008882164 0.4711817 -0.8819269 0.01388412 -0.4713634 -0.8818615 0.01170045 0.63419 -0.7730732 0.01268124 0.7728356 -0.6345111 0.01099354 0.471534 0.8817703 -0.01169794 -0.6343648 -0.7729725 0.009743452 0.4711796 -0.8819281 0.01388317 0.634196 -0.7730684 0.01268154 0.6345196 0.7728455 -0.009741485 -0.7729895 -0.6343755 0.007412075 0.4715436 0.8817652 -0.01169991 0.4711735 -0.8819314 0.0138843 0.7731158 0.6342218 -0.007408738 -0.8819124 -0.4713889 0.00479561 0.6345115 0.7728521 -0.009739816 0.2900675 -0.9568955 0.01455318 0.8820044 0.4712171 -0.004792392 -0.9569388 -0.2902831 0.001994192 0.7731186 0.6342183 -0.007410407 0.09780973 -0.9950972 0.01466137 0.9569957 0.2900956 -0.001991927 0.4713631 0.8818618 -0.01169937 0.8820044 0.4712171 -0.00479269 -0.09819781 -0.9950656 0.0142067 0.9952042 0.09781503 8.85596e-4 0.1049255 0.9943791 -0.01418179 0.9569982 0.2900872 -0.001991331 -0.290448 -0.9567997 0.01320517 0.9951587 -0.09821069 0.003729045 0.1049211 0.9943795 -0.01417982 0.2902638 0.9568556 -0.01320779 0.9952033 0.09782481 8.85638e-4 0.2955479 -0.9552173 0.01454067 -0.8819108 -0.4713919 0.00479573 0.471359 0.881864 -0.01169937 0.9951587 -0.09821069 0.003728866 -0.6345121 -0.7728517 0.009741365 0.3116239 0.9501159 -0.01306068 -0.7729912 -0.6343735 0.007411718 0.6343687 0.7729694 -0.009743273 0.2955603 -0.9552135 0.01453977 -0.7731127 -0.6342254 0.007409572 0.9902607 0.1392257 2.73546e-4 -0.6343621 -0.7729748 0.009743928 0.7729901 0.6343749 -0.007411956 0.3116259 0.9501152 -0.01306074 -0.882005 -0.4712158 0.004791796 0.2902629 0.9568558 -0.01320737 -0.4713656 -0.8818603 0.01169919 0.8819109 0.4713916 -0.004795074 -0.9953409 -0.09641474 -9.06563e-4 -0.9569955 -0.290096 0.001991927 0.7729883 0.634377 -0.007411956 -0.2902591 -0.956857 0.01320779 0.9569379 0.290286 -0.001994073 0.8819119 0.4713898 -0.004795253 0.999997 8.70054e-4 0.002303063 0.9951851 0.09800964 8.83545e-4 0.9905268 0.1373192 3.01993e-4 -0.9999971 6.47381e-4 -0.002325057 0.9569387 0.2902832 -0.001994848 0.9951588 -0.09821045 0.003729104 0.9951776 -0.09801852 0.003726959 0.8819116 0.4713905 -0.004795551 0.9951848 0.09801286 8.82844e-4 0.9568619 -0.290472 0.006429612 0.9569209 -0.2902777 0.006427168 0.7729892 0.6343759 -0.007412135 0.995178 -0.09801536 0.003726303 0.8817939 -0.4715514 0.008882164 0.8818824 -0.471386 0.008880555 0.6343634 0.7729737 -0.009740829 0.9569209 -0.2902778 0.006426572 0.7728366 -0.6345098 0.01099354 0.7729627 -0.6343564 0.01099216 0.4713664 0.8818598 -0.0117039 0.8818849 -0.4713811 0.008880138 0.6341977 -0.7730671 0.01268273 0.6343426 -0.7729481 0.01268172 0.2902585 0.9568572 -0.01320755 + 0 0 1 -4.45071e-7 0 1 0 2.55195e-6 1 -4.45071e-7 0 1 4.45069e-7 0 1 2.22537e-7 0 1 4.45069e-7 0 1 4.45072e-7 0 1 -4.45071e-7 0 1 4.45068e-7 0 1 2.22536e-7 0 1 -1.07383e-5 0 1 6.11977e-7 0 1 -4.45073e-7 0 1 -8.35161e-7 1.25625e-4 1 -1.05704e-6 0 1 4.4507e-7 0 1 4.45071e-7 0 1 -4.4507e-7 0 1 8.90137e-7 0 1 -8.94861e-6 0 1 1.7803e-6 0 1 8.90142e-7 0 1 0 0 -1 3.75714e-7 0 -1 2.22535e-7 0 -1 -2.94362e-7 0 -1 -4.4507e-7 0 -1 -3.75712e-7 0 -1 -3.75716e-7 0 -1 -2.22535e-7 0 -1 7.51434e-7 0 -1 9.39289e-7 0 -1 1.58426e-5 2.86294e-6 -1 -7.51427e-7 0 -1 -1.87856e-7 0 -1 1.87857e-7 0 -1 8.90143e-7 0 -1 3.75716e-7 0 -1 -2.22536e-7 0 -1 -4.45071e-7 0 -1 3.18486e-7 -1.26262e-4 -1 3.75712e-7 0 -1 -2.22534e-7 0 -1 4.45071e-7 0 -1 8.90145e-7 0 -1 -1.12714e-6 0 -1 3.75714e-7 0 -1 1.40509e-5 2.6427e-6 -1 -1.87857e-7 0 -1 7.51428e-7 0 -1 1.46484e-6 0 -1 -0.7729886 -0.6343768 0.007410407 -0.4711828 -0.8819581 0.01170063 -0.4713644 -0.881861 0.01169782 -0.0980063 0.9950779 -0.01466143 -0.6343619 -0.7729749 0.009742438 -0.2900795 -0.9569115 0.01320964 -0.2902606 -0.9568566 0.01320737 -0.4713642 -0.8818611 0.01169937 -0.09780335 -0.9951044 0.01420742 -0.09800481 -0.9950846 0.01420587 0.7729642 -0.6343545 0.01099234 -0.2902623 -0.956856 0.01320731 0.09819781 -0.9950589 0.01466292 0.9951781 -0.09801459 0.003727138 -0.09799861 -0.9950852 0.01420593 0.2904369 -0.9567835 0.01454955 0.9569209 -0.2902777 0.006426692 0.4715288 -0.8817414 0.01388269 0.6344916 -0.7728258 0.01267808 -0.0980075 0.9950777 -0.01465928 0.7730826 -0.6342102 0.01098978 -0.2902554 0.9568386 -0.01455157 0.8819877 -0.4711889 0.008878171 0.995025 -0.09955585 0.003749012 -0.4713492 0.8818375 -0.0138815 0.9569752 -0.2900989 0.006424546 -0.6343433 0.7729475 -0.01268166 0.9951978 -0.09781408 0.003724038 -0.772964 0.6343548 -0.01099252 0.999997 8.73439e-4 0.002303719 -0.8818858 0.4713796 -0.008878886 0.097997 -0.9950788 0.01466089 -0.9569214 0.290276 -0.006427586 0.09800779 0.9950842 -0.01421016 -0.6343434 0.7729475 -0.01268345 0.2902558 0.956858 -0.01320606 0.098122 -0.9950665 0.01466155 0.4713634 0.8818615 -0.01170092 0.2902567 -0.9568382 0.01455223 0.6343616 0.7729752 -0.009741783 0.47135 -0.8818371 0.013884 0.7729912 0.6343735 -0.007412254 0.6343418 -0.7729487 0.01268208 0.8819086 0.4713959 -0.004794061 0.7729625 -0.6343567 0.01099246 0.9569205 -0.2902792 0.006426751 0.8818878 -0.471376 0.008880853 0.9569388 0.2902832 -0.001993477 0.9569203 -0.2902795 0.006427407 0.9951842 0.098019 8.84009e-4 0.9951784 -0.09801125 0.00372678 0.9951846 0.09801506 8.83418e-4 0.8818862 -0.4713787 0.008880794 0.9569377 0.2902867 -0.001993834 0.6343441 -0.7729468 0.01268213 0.8819102 0.4713934 -0.004794597 0.4713504 -0.8818367 0.0138843 0.7729884 0.6343769 -0.007411241 0.290256 -0.9568385 0.01455229 0.6343655 0.7729719 -0.009742736 0.09812223 -0.9950665 0.01466131 0.4713611 0.8818628 -0.01170098 -0.9569206 0.2902788 -0.006427109 -0.9568778 -0.290484 0.001996874 0.2902578 0.9568574 -0.01320612 -0.9999972 5.33108e-4 -0.002324163 -0.8818178 -0.4715661 0.004796981 0.09800893 0.9950841 -0.01420831 -0.956879 -0.2904798 0.001995682 -0.9951651 -0.09821218 -8.80502e-4 -0.7728603 -0.6345331 0.007414221 0.0980035 -0.9950781 0.01466089 -0.8818185 -0.4715646 0.004797339 -0.9568809 -0.2904738 0.001997351 -0.6342155 -0.7730948 0.009745776 0.2902569 -0.9568382 0.01455193 -0.7728621 -0.6345308 0.007413864 -0.8818179 -0.4715658 0.004797637 -0.471194 -0.8819521 0.01170229 0.4713492 -0.8818374 0.01388305 -0.6342169 -0.7730939 0.009745657 -0.7728663 -0.6345255 0.007414221 -0.4715318 0.8817399 -0.01388245 0.6343417 -0.7729488 0.01268124 -0.4712028 -0.8819473 0.01170086 -0.6342166 -0.7730941 0.009744763 -0.6344877 0.772829 -0.01267969 0.7729642 -0.6343543 0.01099246 -0.4715323 0.8817395 -0.01388341 -0.4711819 -0.8819585 0.01169949 -0.7731011 0.6341876 -0.01099091 0.881888 -0.4713755 0.008879899 -0.6344916 0.7728258 -0.01267969 -0.2900782 -0.9569119 0.0132085 -0.8819758 0.471211 -0.008876621 0.9569211 -0.2902774 0.00642687 -0.7730879 0.6342038 -0.01098811 -0.09780424 -0.9951044 0.01420646 -0.9569821 0.2900756 -0.006424665 -0.4713507 0.8818365 -0.01388525 -0.8819816 0.4712003 -0.008878409 0.09819704 -0.995059 0.01466172 -0.9951967 0.09782463 -0.003724515 -0.1049204 0.9943726 -0.01466768 -0.9569796 0.2900843 -0.006424784 -0.9951646 -0.09821867 -8.80474e-4 -0.1049251 0.994372 -0.01466411 -0.290256 0.9568384 -0.0145511 -0.9951971 0.09782022 -0.003724098 0.4715334 -0.8817389 0.0138815 -0.2955551 -0.9552349 0.01317191 0.8818866 -0.4713782 0.008880436 -0.4713491 0.8818376 -0.01388448 -0.9951649 -0.09821391 -8.80472e-4 0.634496 -0.7728223 0.01267796 -0.3116257 0.9500942 -0.01450443 0.7729645 -0.6343541 0.01099163 -0.6343457 0.7729456 -0.01268219 -0.2955418 -0.9552391 0.01316899 0.7730848 -0.6342075 0.01098865 -0.9902513 0.1392259 -0.004312157 0.6343404 -0.77295 0.01268053 -0.7729637 0.6343552 -0.01099258 -0.3115991 0.9501031 -0.01450157 0.881983 -0.4711976 0.008878231 -0.2902603 0.9568372 -0.01455032 0.4713551 -0.8818343 0.0138815 -0.8818874 0.4713765 -0.008880615 0.9953346 -0.09641313 0.003704071 0.9569776 -0.2900907 0.006424844 -0.7729609 0.6343585 -0.01099336 0.2902582 -0.9568377 0.01455283 -0.9569198 0.2902816 -0.006427407 0.9951972 -0.09782069 0.003724336 -0.8818872 0.4713768 -0.008880138 -0.999997 8.70094e-4 -0.00232917 -0.9951783 0.0980122 -0.00372684 -0.9905178 0.1373177 -0.004285991 0.9999972 6.47395e-4 0.002306878 -0.9569207 0.2902786 -0.00642699 -0.9951644 -0.09821999 -8.80641e-4 -0.9951846 -0.09801596 -8.83394e-4 -0.881887 0.4713773 -0.008880794 -0.9951784 0.09801208 -0.003726899 -0.9568811 -0.2904734 0.001997351 -0.9569384 -0.2902842 0.001993894 -0.7729646 0.6343539 -0.01099389 -0.9951846 -0.0980159 -8.82241e-4 -0.8818135 -0.4715741 0.004797577 -0.8819121 -0.4713897 0.004794478 -0.6343426 0.7729481 -0.0126779 -0.9569377 -0.2902869 0.00199449 -0.7728673 -0.6345246 0.007413089 -0.7729905 -0.6343744 0.007410407 -0.4713547 0.8818345 -0.01388329 -0.8819095 -0.4713945 0.004795253 -0.6342163 -0.7730944 0.009744763 -0.6343601 -0.7729763 0.009741663 -0.2902504 0.9568402 -0.01454967 3.75713e-7 0 1 7.51427e-7 0 1 -1.79309e-7 2.55195e-6 1 4.45071e-7 0 1 -2.22535e-7 0 1 7.5143e-7 0 1 -1.78464e-6 0 1 8.90144e-7 0 1 1.49467e-5 -2.86291e-6 1 -1.50286e-6 0 1 -8.90139e-7 0 1 6.17806e-7 1.25624e-4 1 1.78029e-6 0 1 -8.90142e-7 0 1 8.90139e-7 0 1 -7.5143e-7 0 1 7.51427e-7 0 1 1.40509e-5 -2.86291e-6 1 -7.51429e-7 0 1 5.63569e-7 0 1 6.10535e-7 0 1 -4.9777e-6 0 1 8.90141e-7 0 -1 4.17777e-7 0 -1 4.4507e-7 0 -1 4.4507e-7 0 -1 2.22535e-7 0 -1 2.22535e-7 0 -1 -8.05371e-6 0 -1 -8.90141e-7 0 -1 -6.67607e-7 0 -1 5.83821e-6 0 -1 4.4507e-7 0 -1 4.45071e-7 0 -1 -4.17579e-7 -1.26262e-4 -1 2.22536e-7 0 -1 -4.45071e-7 0 -1 2.22536e-7 0 -1 -2.22536e-7 0 -1 -8.05372e-6 0 -1 -2.22538e-7 0 -1 -4.4507e-7 0 -1 0.7729632 -0.6343558 0.01099067 0.4711678 -0.8819344 0.01388275 0.4713513 -0.8818364 0.01388138 0.09800708 0.9950842 -0.01421171 0.6343411 -0.7729493 0.01268053 0.2900741 -0.9568936 0.01455229 0.290256 -0.9568384 0.01455187 0.471349 -0.8818375 0.01388287 0.09782141 -0.9950961 0.01466047 0.09800899 -0.9950776 0.01466023 -0.772989 -0.6343764 0.007411122 0.2902577 -0.956838 0.01455265 -0.09819811 -0.9950656 0.01420646 -0.9951842 -0.09801942 -8.83583e-4 0.09800869 -0.9950777 0.0146594 -0.2904584 -0.9567965 0.01320731 -0.9569394 -0.2902811 0.001995205 -0.4715498 -0.8817619 0.01169723 -0.6345111 -0.7728525 0.009740412 0.09800839 0.9950842 -0.01420724 -0.7731109 -0.6342277 0.007407426 0.2902603 0.9568566 -0.01320707 -0.8820047 -0.4712163 0.00479263 -0.9950316 -0.0995568 -8.59504e-4 0.4713615 0.8818625 -0.01169818 -0.9569931 -0.290104 0.001991212 0.6343647 0.7729725 -0.009744286 -0.9952028 -0.09783059 -8.84837e-4 0.77299 0.634375 -0.00741285 -0.999997 8.73596e-4 -0.00232768 0.8819116 0.4713904 -0.004796028 -0.09800869 -0.9950842 0.01420742 0.9569383 0.2902849 -0.001995444 -0.09800696 0.9950777 -0.0146628 0.6343604 0.7729761 -0.009742915 -0.2902518 0.9568397 -0.01455342 -0.09812241 -0.995073 0.01420676 -0.4713502 0.881837 -0.01388341 -0.2902622 -0.956856 0.01320797 -0.6343408 0.7729496 -0.01268166 -0.471364 -0.8818612 0.01170092 -0.7729651 0.6343534 -0.01099014 -0.6343631 -0.772974 0.009743452 -0.8818841 0.4713828 -0.008880794 -0.7729917 -0.6343729 0.007411837 -0.9569392 -0.2902818 0.001995682 -0.8819104 -0.4713929 0.004794359 -0.956921 0.2902774 -0.006427586 -0.9569388 -0.2902831 0.001993656 -0.9951777 0.09801805 -0.003725588 -0.9951849 -0.09801143 -8.83461e-4 -0.9951783 0.09801268 -0.00372684 -0.8819107 -0.4713923 0.004794597 -0.9569204 0.2902794 -0.006428062 -0.6343635 -0.7729735 0.009742736 -0.8818841 0.4713826 -0.008880257 -0.4713656 -0.8818603 0.0117011 -0.7729659 0.6343525 -0.01099163 -0.2902583 -0.9568572 0.01320463 -0.6343411 0.7729493 -0.0126816 -0.09812539 -0.9950727 0.01420706 -0.4713487 0.8818377 -0.01388424 0.9569385 0.2902843 -0.00199455 0.9568651 -0.2904618 0.006429612 -0.2902513 0.9568399 -0.01454967 0.9999972 5.33129e-4 0.002308011 0.8817855 -0.471567 0.008880913 -0.09800821 0.9950776 -0.0146594 0.9568663 -0.2904576 0.006428897 0.9951586 -0.09821265 0.003729045 0.7728347 -0.6345123 0.01099425 -0.09800899 -0.9950841 0.01420742 0.881794 -0.4715514 0.008879601 0.9568629 -0.2904689 0.006429672 0.6341947 -0.7730694 0.01268339 -0.2902574 -0.9568575 0.01320743 0.7728389 -0.6345071 0.01099342 0.8817935 -0.4715522 0.008882284 0.4711807 -0.8819274 0.01388496 -0.4713622 -0.8818622 0.01169854 0.6341869 -0.7730758 0.01268249 0.7728396 -0.6345062 0.01099365 0.4715449 0.8817644 -0.01169842 -0.6343645 -0.7729728 0.009744048 0.4711877 -0.8819237 0.01388329 0.6341959 -0.7730684 0.01268172 0.6344997 0.7728617 -0.009740293 -0.7729893 -0.6343759 0.007411181 0.4715435 0.8817652 -0.01169884 0.4711682 -0.8819342 0.01388317 0.7731176 0.6342197 -0.007410287 -0.8819116 -0.4713906 0.004793643 0.634517 0.7728475 -0.009741663 0.2900728 -0.956894 0.01455259 0.8820044 0.471217 -0.004793167 -0.9569394 -0.2902812 0.001995503 0.7731156 0.634222 -0.007409155 0.09782254 -0.995096 0.01465952 0.9569975 0.2900894 -0.001990914 0.4713652 0.8818606 -0.0117011 0.8820062 0.4712136 -0.004793584 -0.09819763 -0.9950655 0.01420754 0.9952033 0.09782522 8.86331e-4 0.1049208 0.9943796 -0.01418006 0.9569974 0.2900897 -0.001991093 -0.2904609 -0.9567957 0.0132063 0.995158 -0.09821802 0.003729939 0.1049255 0.9943791 -0.01417917 0.2902606 0.9568566 -0.01320648 0.9952037 0.09782087 8.86468e-4 -0.4715471 -0.8817635 0.01169604 0.2955493 -0.9552168 0.01454091 -0.8819115 -0.4713907 0.004794478 0.4713596 0.8818635 -0.01170104 0.9951585 -0.09821331 0.003730177 -0.6345111 -0.7728525 0.009739279 0.3116346 0.9501124 -0.01306122 -0.7729909 -0.6343739 0.007410347 0.6343634 0.7729737 -0.009743392 0.2955366 -0.9552208 0.01453751 -0.7731109 -0.6342277 0.007408559 0.990261 0.1392239 2.72924e-4 -0.6343614 -0.7729753 0.009742438 0.7729875 0.6343781 -0.007411599 0.3116085 0.9501209 -0.01305764 -0.8820075 -0.471211 0.00479263 0.2902656 0.956855 -0.01320683 -0.4713656 -0.8818603 0.01170092 0.881912 0.4713898 -0.004795372 -0.9953411 -0.09641325 -9.05744e-4 -0.9569943 -0.2900999 0.001991212 0.7729872 0.6343783 -0.007412195 -0.2902587 -0.9568571 0.01320749 0.9569393 0.2902812 -0.001993715 -0.9952044 -0.09781283 -8.85118e-4 0.8819119 0.47139 -0.004795014 0.999997 8.70054e-4 0.002302348 0.9951846 0.09801602 8.83457e-4 0.9905267 0.1373196 3.0198e-4 -0.9999971 6.47303e-4 -0.002325892 0.9569394 0.290281 -0.001995384 0.9951583 -0.09821486 0.003728449 0.9951777 -0.09801846 0.003727018 0.8819116 0.4713906 -0.00479561 0.9951848 0.09801268 8.83856e-4 0.9568631 -0.2904679 0.006430506 0.9569215 -0.2902758 0.006427049 0.7729905 0.6343743 -0.007413029 0.9951777 -0.0980184 0.003725588 0.8817944 -0.4715504 0.008883237 0.881886 -0.4713791 0.008879542 0.6343632 0.7729738 -0.009742975 0.9569207 -0.2902786 0.006427705 0.7728353 -0.6345115 0.01099395 0.7729649 -0.6343536 0.01099133 0.4713676 0.8818594 -0.01169902 0.8818849 -0.4713813 0.008880496 0.6341932 -0.7730706 0.01268261 0.6343393 -0.7729508 0.01268041 0.2902558 0.956858 -0.0132054 5.82295e-7 0 1 6.55927e-6 0 1 1.31151e-5 0 1 1.52833e-7 0 1 0 0 1 7.88503e-7 3.70645e-6 1 6.55893e-6 0 1 -6.69874e-7 3.70645e-6 1 0 0 1 -3.75713e-7 0 1 -7.51426e-7 0 1 1.04976e-6 4.10824e-6 1 1.50286e-6 0 1 -7.51427e-7 0 1 1.78464e-6 0 1 -3.75715e-7 0 1 -1.49468e-5 -2.86295e-6 1 1.50285e-6 0 1 1.50286e-6 0 1 -3.00574e-6 0 1 1.50285e-6 0 1 -3.64154e-5 0 1 -2.75406e-5 0 1 -4.36203e-5 0 1 7.08767e-6 0 1 -3.00572e-6 0 1 7.51432e-7 0 1 1.50285e-6 0 1 4.05846e-5 2.02301e-4 1 7.51431e-7 0 1 -1.40509e-5 -2.86292e-6 1 7.51425e-7 0 1 -5.63569e-7 0 1 -6.1054e-7 0 1 -4.55193e-5 0 1 2.75365e-5 0 1 2.7538e-5 0 1 -3.87735e-5 0 1 -1.85967e-5 0 1 3.56401e-7 0 -1 -1.31165e-5 0 -1 -3.27895e-6 0 -1 2.62343e-5 0 -1 2.28857e-7 0 -1 -5.08188e-7 0 -1 4.60483e-7 0 -1 0 -3.63119e-6 -1 -1.31179e-5 0 -1 -3.27912e-6 0 -1 2.62329e-5 0 -1 1.54951e-7 -3.63119e-6 -1 -5.08192e-7 0 -1 4.60476e-7 0 -1 -8.90142e-7 0 -1 -7.51426e-7 0 -1 3.49921e-7 0 -1 1.12714e-6 0 -1 -3.28749e-7 0 -1 -3.75715e-7 0 -1 3.75713e-7 0 -1 -9.39282e-7 0 -1 8.05371e-6 0 -1 8.90141e-7 0 -1 3.75715e-7 0 -1 3.28752e-7 0 -1 4.09674e-5 0 -1 1.37689e-5 0 -1 2.75374e-5 0 -1 -9.48074e-6 0 -1 -1.3768e-5 0 -1 4.36203e-5 0 -1 1.03324e-6 0 -1 3.75715e-7 0 -1 -4.05847e-5 -2.03328e-4 -1 -2.22536e-7 0 -1 6.57499e-7 0 -1 -7.51428e-7 0 -1 1.87857e-7 0 -1 8.05371e-6 0 -1 -3.75713e-7 0 -1 -6.57505e-7 0 -1 1.87856e-7 0 -1 4.09679e-5 0 -1 -1.37688e-5 0 -1 -2.75368e-5 0 -1 -1.8597e-5 0 -1 4.36204e-5 0 -1 -2.15801e-6 0 -1 1.03324e-6 0 -1 -0.7729897 -0.6343754 0.007411479 -0.4711928 -0.8819526 0.01170301 -0.4713648 -0.8818608 0.01169806 -0.0980035 0.9950781 -0.01466166 -0.6343605 -0.772976 0.009742081 -0.2900611 -0.956917 0.01320683 -0.2902516 -0.9568592 0.01320582 -0.4713628 -0.8818619 0.01169812 -0.09782201 -0.9951026 0.01420873 -0.09800964 -0.9950841 0.01420831 0.7729644 -0.6343543 0.01099294 -0.2902575 -0.9568575 0.01320505 0.09819787 -0.9950589 0.01466184 0.9951779 -0.09801691 0.003726899 -0.09800928 -0.9950841 0.01420837 0.2904555 -0.9567779 0.01455205 0.956922 -0.2902739 0.006427586 0.4715348 -0.8817383 0.01387977 0.6344924 -0.7728253 0.01267951 -0.09800499 0.995078 -0.01466262 0.7730855 -0.6342068 0.01098889 -0.290254 0.9568391 -0.01455152 0.8819839 -0.4711961 0.00887674 0.9950248 -0.09955763 0.003748893 -0.4713528 0.8818355 -0.01388442 0.9569752 -0.2900986 0.006425082 -0.6343441 0.7729468 -0.01268225 0.9951979 -0.09781223 0.003724098 -0.7729616 0.6343577 -0.01099056 0.999997 8.73437e-4 0.002303659 -0.8818878 0.4713757 -0.008880555 0.09800773 -0.9950777 0.01465898 -0.9569205 0.2902791 -0.006425976 0.09800505 0.9950846 -0.01420617 -0.6343436 0.7729473 -0.01268148 0.2902582 0.9568573 -0.01320946 0.09812176 -0.9950665 0.01466155 0.4713618 0.8818624 -0.01170206 0.2902573 -0.956838 0.01455205 0.6343617 0.7729751 -0.009742736 0.4713509 -0.8818365 0.01388341 0.7729916 0.6343732 -0.007410228 0.6343422 -0.7729484 0.01268166 0.8819087 0.4713959 -0.004794657 0.7729644 -0.6343542 0.01099246 0.9569207 -0.2902786 0.006427824 0.8818881 -0.4713753 0.008880555 0.9569384 0.2902846 -0.001993775 0.9569204 -0.2902794 0.006427466 0.9951842 0.0980187 8.83339e-4 0.9951784 -0.09801083 0.003727078 0.9951848 0.09801334 8.8358e-4 0.8818861 -0.4713791 0.008880734 0.9569377 0.2902866 -0.001994252 0.6343417 -0.7729488 0.0126807 0.8819111 0.4713914 -0.004794597 0.4713525 -0.8818356 0.0138843 0.7729885 0.6343768 -0.007410705 0.2902532 -0.9568393 0.01454961 0.6343621 0.7729747 -0.009742677 0.09812468 -0.9950662 0.01466089 0.4713619 0.8818624 -0.01170015 -0.9569205 0.2902789 -0.00642693 -0.9568802 -0.290476 0.001996755 0.2902567 0.9568578 -0.01320564 -0.9999972 5.33111e-4 -0.002324044 -0.8818247 -0.4715531 0.004797816 0.09800654 0.9950845 -0.01420623 -0.9568817 -0.2904714 0.001997709 -0.9951651 -0.09821254 -8.8063e-4 -0.7728602 -0.6345331 0.007414281 0.09800773 -0.9950777 0.01466047 -0.88182 -0.4715619 0.004797518 -0.956881 -0.2904737 0.001997411 -0.6342159 -0.7730947 0.009745419 0.2902538 -0.9568392 0.01455122 -0.7728621 -0.6345307 0.007414579 -0.8818176 -0.4715662 0.004797935 -0.4711959 -0.881951 0.01170194 0.4713484 -0.8818379 0.01388204 -0.6342049 -0.7731036 0.009746372 -0.7728613 -0.6345317 0.007413089 -0.4715243 0.8817439 -0.01388198 0.6343436 -0.7729473 0.01268172 -0.4711879 -0.8819554 0.0116989 -0.6342164 -0.7730942 0.009744584 -0.6344964 0.7728219 -0.01268035 0.7729638 -0.634355 0.01099222 -0.4715324 0.8817396 -0.01388311 -0.4711914 -0.8819534 0.01170277 -0.7730824 0.6342105 -0.01098865 0.8818863 -0.4713786 0.008879363 -0.6344822 0.7728335 -0.01267975 -0.2900614 -0.9569169 0.01320743 -0.8819796 0.4712042 -0.008877873 0.9569216 -0.2902758 0.006427168 -0.7730978 0.6341916 -0.01099038 -0.09782296 -0.9951024 0.01420956 -0.956977 0.2900926 -0.006424844 -0.4713483 0.8818379 -0.01388305 -0.8819835 0.4711969 -0.008878469 0.09819722 -0.995059 0.01466214 -0.9951969 0.09782338 -0.003724336 -0.1049259 0.994372 -0.0146653 -0.9569779 0.2900896 -0.006424605 0.2904543 -0.9567783 0.01455312 -0.9951652 -0.09821087 -8.80611e-4 -0.1049202 0.9943726 -0.01466435 -0.2902562 0.9568384 -0.01455098 -0.9951965 0.09782749 -0.003724277 0.4715325 -0.8817395 0.01387971 -0.2955539 -0.9552353 0.01317161 0.8818868 -0.4713776 0.008879363 -0.471345 0.8818398 -0.01388204 -0.9951646 -0.09821707 -8.80895e-4 0.6344913 -0.7728261 0.01267951 -0.3116227 0.9500953 -0.01450419 0.7729655 -0.634353 0.01099097 -0.6343458 0.7729454 -0.0126819 -0.2955718 -0.9552298 0.01317185 0.7730865 -0.6342054 0.01099002 -0.9902517 0.1392228 -0.004313349 0.6343405 -0.7729498 0.01268178 -0.7729624 0.6343566 -0.0109927 -0.3116312 0.9500925 -0.01450502 0.8819792 -0.4712049 0.008877813 -0.2902562 0.9568383 -0.01455128 0.4713545 -0.8818347 0.0138821 -0.8818863 0.4713788 -0.008880853 0.9953346 -0.09641253 0.003703892 0.9569784 -0.2900883 0.006425082 -0.7729619 0.6343574 -0.01099264 0.2902516 -0.9568398 0.01454871 -0.9569203 0.2902799 -0.006427466 0.9951969 -0.09782332 0.003724217 -0.8818891 0.4713736 -0.008880496 -0.999997 8.70053e-4 -0.00232917 -0.9951788 0.09800624 -0.003727436 -0.990518 0.1373171 -0.004286587 0.9999972 6.47386e-4 0.002307057 -0.9569219 0.2902744 -0.006427168 -0.9951645 -0.09821867 -8.80419e-4 -0.9951845 -0.09801596 -8.83432e-4 -0.8818872 0.4713769 -0.008879721 -0.9951783 0.09801274 -0.003727018 -0.9568836 -0.2904649 0.001996934 -0.9569389 -0.2902826 0.001994252 -0.7729638 0.6343549 -0.01099044 -0.9951846 -0.09801596 -8.83243e-4 -0.8818137 -0.4715736 0.004798412 -0.881907 -0.471399 0.004794478 -0.6343429 0.7729477 -0.01268208 -0.9569395 -0.2902809 0.001995623 -0.7728646 -0.6345278 0.00741434 -0.7729861 -0.6343799 0.007410526 -0.4713504 0.8818368 -0.0138843 -0.8819094 -0.4713945 0.004795014 -0.6342164 -0.7730942 0.00974375 -0.6343649 -0.7729724 0.009741902 -0.2902553 0.9568385 -0.01455616 1.27991e-7 0 1 -5.82296e-7 0 1 1.77167e-5 0 1 -6.55789e-6 0 1 -1.52833e-7 0 1 -5.08184e-7 0 1 1.27993e-7 0 1 -7.88503e-7 3.70645e-6 1 1.77179e-5 0 1 6.69873e-7 3.70645e-6 1 -5.08188e-7 0 1 -1.39968e-6 4.10823e-6 1 -7.5143e-7 0 1 -2.22537e-7 0 1 -4.45071e-7 0 1 1.50286e-6 0 1 -3.75715e-7 0 1 3.75712e-7 0 1 1.07383e-5 0 1 -7.51426e-7 0 1 1.78466e-6 0 1 -7.51427e-7 0 1 3.6416e-5 0 1 2.75389e-5 0 1 4.36203e-5 0 1 3.86685e-6 0 1 -1.37766e-6 0 1 2.25428e-6 0 1 -7.51427e-7 0 1 -4.05849e-5 2.02302e-4 1 -6.10536e-7 0 1 -5.63571e-7 0 1 -8.90137e-7 0 1 8.94861e-6 0 1 7.5143e-7 0 1 -1.78029e-6 0 1 4.552e-5 0 1 -2.75389e-5 0 1 -2.75376e-5 0 1 3.87735e-5 0 1 5.38776e-6 0 1 1.85963e-5 0 1 1.03323e-6 0 1 -1.77167e-5 0 -1 -1.31172e-5 0 -1 -1.63956e-6 0 -1 2.62357e-5 0 -1 -2.28857e-7 0 -1 2.37192e-7 0 -1 -2.58601e-7 0 -1 -5.04081e-7 0 -1 0 -3.63119e-6 -1 2.6235e-5 0 -1 -1.63973e-6 0 -1 2.62364e-5 0 -1 -1.54951e-7 -3.63119e-6 -1 2.37193e-7 0 -1 -3.75714e-7 0 -1 -3.49921e-7 0 -1 -1.50286e-6 0 -1 3.75712e-7 0 -1 3.75716e-7 0 -1 -2.08682e-7 0 -1 7.5143e-7 0 -1 -7.51429e-7 0 -1 1.50285e-6 0 -1 -9.39283e-7 0 -1 -1.58426e-5 2.86293e-6 -1 7.51426e-7 0 -1 1.87857e-7 0 -1 -3.75716e-7 0 -1 -4.09674e-5 0 -1 2.75372e-5 0 -1 -1.85967e-5 0 -1 -1.37703e-5 0 -1 -4.36201e-5 0 -1 -7.47271e-7 0 -1 -7.51432e-7 0 -1 4.05849e-5 -2.03329e-4 -1 -3.75712e-7 0 -1 1.12714e-6 0 -1 -3.75713e-7 0 -1 -1.40509e-5 2.6427e-6 -1 1.87856e-7 0 -1 -7.51425e-7 0 -1 -4.09673e-5 0 -1 1.37673e-5 0 -1 2.75372e-5 0 -1 -4.36203e-5 0 -1 -1.85957e-5 0 -1 0.7729659 -0.6343525 0.01099097 0.4711796 -0.881928 0.01388543 0.4713477 -0.8818383 0.0138812 0.0980044 0.9950847 -0.0142042 0.6343397 -0.7729505 0.01268017 0.2900556 -0.9568992 0.01455098 0.2902471 -0.9568412 0.01455032 0.4713516 -0.8818362 0.01388216 0.09780395 -0.9950978 0.01466137 0.0980041 -0.995078 0.01466107 -0.7729906 -0.6343743 0.007411777 0.2902507 -0.9568402 0.01454865 -0.09819757 -0.9950656 0.01420778 -0.9951847 -0.09801334 -8.81985e-4 0.09799748 -0.9950788 0.01466184 -0.2904436 -0.9568011 0.01320451 -0.9569388 -0.2902832 0.001993775 -0.4715457 -0.8817641 0.01169735 -0.6345147 -0.7728494 0.009738981 0.09800559 0.9950845 -0.01420611 -0.7731147 -0.6342231 0.007409274 0.2902597 0.9568568 -0.0132066 -0.8820068 -0.4712125 0.004792094 -0.9950316 -0.0995565 -8.59343e-4 0.4713651 0.8818606 -0.0117011 -0.9569979 -0.2900879 0.001992881 0.6343646 0.7729727 -0.009744644 -0.995203 -0.09782803 -8.84784e-4 0.772989 0.6343763 -0.007412135 -0.9999969 8.73558e-4 -0.00232768 0.8819125 0.4713889 -0.004796504 -0.09799784 -0.9950852 0.01420569 0.9569383 0.2902845 -0.001995444 -0.09800434 0.995078 -0.01466178 0.6343653 0.7729721 -0.009744942 -0.2902504 0.9568402 -0.01455056 -0.09812295 -0.9950729 0.01420742 -0.4713499 0.8818371 -0.01388382 -0.2902617 -0.9568562 0.01320821 -0.6343407 0.7729497 -0.0126788 -0.4713631 -0.8818616 0.01170051 -0.7729658 0.6343526 -0.01099252 -0.6343627 -0.7729742 0.009743571 -0.8818841 0.4713829 -0.00887829 -0.7729907 -0.6343743 0.007411003 -0.9569376 -0.2902868 0.001993536 -0.8819108 -0.471392 0.004794657 -0.9569214 0.2902759 -0.006426513 -0.9569392 -0.2902814 0.001994192 -0.9951777 0.09801834 -0.00372684 -0.995185 -0.09801185 -8.83624e-4 -0.9951779 0.09801626 -0.003727674 -0.8819117 -0.4713904 0.004796326 -0.9569214 0.2902761 -0.006427347 -0.634365 -0.7729724 0.009743213 -0.881883 0.4713846 -0.008880317 -0.4713637 -0.8818615 0.01170021 -0.7729649 0.6343538 -0.01099199 -0.2902613 -0.9568562 0.01320862 -0.6343455 0.7729457 -0.0126816 -0.09812277 -0.995073 0.01420575 -0.4713456 0.8818394 -0.01388341 0.9569385 0.2902843 -0.001994729 0.9568625 -0.2904705 0.00642836 -0.2902534 0.9568393 -0.01455116 0.9999973 5.33128e-4 0.002308011 0.8818 -0.47154 0.008883059 -0.09800595 0.9950779 -0.01466274 0.95686 -0.2904786 0.006428003 0.9951586 -0.09821248 0.003729164 0.7728346 -0.6345123 0.01099455 -0.09800422 -0.9950847 0.01420623 0.8817991 -0.4715417 0.008882164 0.9568632 -0.2904677 0.006429612 0.634195 -0.7730692 0.01268345 -0.2902615 -0.9568563 0.01320797 0.7728367 -0.6345097 0.01099324 0.8817937 -0.4715517 0.008882761 0.4711828 -0.8819263 0.01388466 -0.4713644 -0.881861 0.01169991 0.6341885 -0.7730745 0.01268362 0.7728363 -0.6345102 0.01099354 0.4715376 0.8817685 -0.01169747 -0.6343618 -0.7729749 0.009742259 0.4711728 -0.8819317 0.01388204 0.634196 -0.7730684 0.01268154 0.6345218 0.7728436 -0.009741842 -0.772989 -0.6343762 0.007411479 0.4715436 0.8817652 -0.01169872 0.4711783 -0.8819288 0.01388424 0.7731214 0.6342149 -0.007409632 -0.8819126 -0.4713887 0.004794716 0.6345075 0.7728554 -0.009741008 0.2900556 -0.9568992 0.01454985 0.8820004 0.4712244 -0.004791975 -0.9569371 -0.2902887 0.001993715 0.7731233 0.6342127 -0.007410347 0.09780353 -0.9950978 0.01466184 0.9569974 0.2900896 -0.001990973 0.4713642 0.8818611 -0.01169937 0.8820004 0.4712244 -0.00479269 -0.09819799 -0.9950655 0.01420742 0.9952025 0.09783309 8.86203e-4 0.1049264 0.9943789 -0.01418143 0.9569971 0.2900909 -0.001991093 -0.2904424 -0.9568014 0.01320481 0.9951579 -0.09821927 0.00372982 0.1049214 0.9943795 -0.01417821 0.2902625 0.956856 -0.01320666 0.995203 0.09782814 8.86629e-4 -0.4715429 -0.8817656 0.01169788 0.2955476 -0.9552175 0.01454097 -0.8819111 -0.4713913 0.004794955 0.4713609 0.8818629 -0.01169866 0.9951581 -0.09821641 0.003729581 -0.6345213 -0.7728441 0.009739935 0.311631 0.9501135 -0.01306092 -0.7729896 -0.6343755 0.00741136 0.6343697 0.7729684 -0.00974369 0.2955667 -0.9552115 0.01454097 -0.7731082 -0.6342311 0.007409214 0.9902608 0.139225 2.72981e-4 -0.6343644 -0.7729728 0.009742617 0.7729894 0.6343757 -0.007412374 0.3116352 0.9501121 -0.01306176 -0.882004 -0.4712178 0.004791855 0.2902603 0.9568567 -0.01320576 -0.4713656 -0.8818603 0.01169848 0.8819108 0.471392 -0.004795253 -0.995341 -0.09641373 -9.05814e-4 -0.9569973 -0.2900899 0.001992881 0.7729889 0.6343763 -0.007411181 -0.2902635 -0.9568556 0.01320809 0.9569398 0.2902795 -0.001994073 -0.995203 -0.09782803 -8.86323e-4 0.8819123 0.4713891 -0.004795253 0.999997 8.70053e-4 0.002302348 0.9951844 0.09801644 8.83648e-4 0.9905268 0.1373191 3.01993e-4 -0.9999971 6.47409e-4 -0.002324402 0.956938 0.2902857 -0.001994073 0.9951593 -0.09820473 0.003729641 0.9951774 -0.09802168 0.003727138 0.8819119 0.4713899 -0.004794597 0.995185 0.09801024 8.82047e-4 0.9568644 -0.2904636 0.006429612 0.9569219 -0.2902743 0.006427407 0.7729892 0.634376 -0.007410228 0.9951783 -0.09801208 0.003727495 0.8817909 -0.4715569 0.008882224 0.8818838 -0.4713833 0.008880138 0.6343633 0.7729738 -0.009744644 0.9569197 -0.2902814 0.006425797 0.7728391 -0.6345069 0.01099359 0.772962 -0.6343572 0.01099139 0.4713647 0.8818608 -0.01170206 0.8818849 -0.4713813 0.008880972 0.6341977 -0.7730671 0.0126816 0.6343439 -0.7729471 0.01268017 0.2902606 0.9568566 -0.01321136 - + @@ -74,7 +74,7 @@ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 -

12 0 20 0 11 0 44 0 52 0 43 0 77 0 101 0 76 0 96 0 70 0 71 0 78 0 102 0 77 0 24 1 71 1 6 1 104 2 78 2 79 2 80 0 104 0 79 0 81 3 105 3 80 3 107 0 81 0 82 0 108 0 82 0 83 0 84 4 108 4 83 4 65 0 89 0 64 0 110 5 84 5 85 5 91 6 65 6 66 6 111 0 85 0 86 0 92 4 66 4 67 4 87 0 111 0 86 0 74 7 98 7 73 7 68 0 92 0 67 0 88 0 112 0 87 0 75 0 99 0 74 0 94 8 68 8 69 8 89 9 88 9 64 9 101 2 75 2 76 2 70 0 94 0 69 0 125 0 119 0 121 0 137 10 31 10 30 10 132 0 36 0 35 0 138 11 30 11 29 11 56 12 35 12 38 12 28 0 138 0 29 0 27 13 139 13 28 13 26 14 140 14 27 14 142 0 26 0 25 0 143 13 25 13 5 13 4 15 143 15 5 15 72 16 61 16 60 16 145 17 4 17 3 17 127 18 60 18 59 18 146 0 3 0 2 0 58 0 127 0 59 0 1 0 146 0 2 0 33 19 133 19 34 19 57 0 128 0 58 0 148 20 1 20 0 20 32 0 134 0 33 0 130 3 57 3 37 3 61 0 148 0 0 0 136 21 32 21 31 21 36 0 130 0 37 0 160 22 154 22 156 22 181 23 171 23 169 23 213 24 203 24 201 24 235 25 259 25 260 25 228 26 254 26 229 26 236 27 260 27 261 27 229 28 184 28 166 28 236 29 262 29 237 29 238 25 262 25 263 25 239 25 263 25 264 25 239 30 265 30 240 30 240 25 266 25 241 25 242 25 266 25 267 25 222 25 248 25 223 25 242 25 268 25 243 25 224 31 248 31 249 31 243 25 269 25 244 25 224 25 250 25 225 25 245 32 269 32 270 32 232 33 256 33 257 33 226 34 250 34 251 34 246 35 270 35 271 35 233 25 257 25 258 25 226 36 252 36 227 36 246 25 247 25 222 25 233 37 259 37 234 37 228 38 252 38 253 38 273 25 284 25 280 25 191 25 295 25 190 25 196 39 290 39 195 39 190 25 296 25 189 25 195 40 216 40 198 40 188 41 296 41 297 41 187 25 297 25 298 25 186 25 298 25 299 25 186 25 300 25 185 25 185 25 301 25 165 25 164 25 301 25 302 25 221 42 230 42 220 42 164 43 303 43 163 43 220 25 285 25 219 25 162 44 303 44 304 44 218 44 285 44 286 44 162 25 305 25 63 25 193 45 291 45 292 45 218 25 287 25 217 25 62 46 305 46 306 46 192 47 292 47 293 47 197 25 287 25 288 25 62 25 255 25 221 25 192 48 294 48 191 48 197 25 289 25 196 25 308 25 318 25 314 25 303 49 144 49 145 49 172 50 13 50 12 50 270 51 111 51 112 51 61 52 220 52 60 52 304 53 145 53 146 53 173 54 14 54 13 54 271 55 112 55 113 55 305 56 146 56 147 56 174 57 15 57 14 57 247 58 113 58 89 58 30 59 189 59 29 59 306 60 147 60 148 60 175 61 16 61 15 61 27 62 186 62 26 62 255 63 148 63 97 63 16 64 177 64 17 64 28 65 187 65 27 65 17 66 178 66 18 66 18 67 179 67 19 67 64 68 223 68 65 68 19 69 180 69 20 69 223 70 66 70 65 70 20 71 181 71 21 71 24 72 254 72 96 72 224 73 67 73 66 73 21 74 182 74 22 74 225 75 68 75 67 75 22 76 183 76 23 76 226 77 69 77 68 77 23 78 184 78 24 78 227 79 70 79 69 79 230 80 97 80 72 80 228 81 71 81 70 81 0 82 221 82 61 82 295 83 136 83 137 83 1 84 62 84 0 84 231 85 74 85 73 85 2 86 63 86 1 86 74 87 233 87 75 87 3 88 162 88 2 88 75 89 234 89 76 89 4 90 163 90 3 90 76 91 235 91 77 91 5 92 164 92 4 92 77 93 236 93 78 93 132 94 289 94 131 94 78 95 237 95 79 95 25 96 165 96 5 96 79 97 238 97 80 97 26 98 185 98 25 98 80 99 239 99 81 99 81 100 240 100 82 100 29 101 188 101 28 101 82 102 241 102 83 102 31 103 190 103 30 103 83 104 242 104 84 104 32 105 191 105 31 105 84 106 243 106 85 106 33 107 192 107 32 107 85 108 244 108 86 108 194 109 33 109 34 109 86 110 245 110 87 110 196 111 35 111 36 111 272 112 115 112 114 112 87 113 246 113 88 113 198 114 39 114 38 114 273 115 116 115 115 115 88 116 222 116 64 116 307 117 150 117 149 117 199 118 40 118 39 118 274 119 117 119 116 119 248 120 89 120 90 120 308 121 151 121 150 121 200 122 41 122 40 122 275 123 118 123 117 123 91 124 248 124 90 124 309 125 152 125 151 125 201 126 42 126 41 126 276 127 119 127 118 127 92 128 249 128 91 128 310 129 153 129 152 129 202 130 43 130 42 130 278 131 121 131 120 131 93 132 250 132 92 132 311 133 154 133 153 133 203 134 44 134 43 134 279 135 122 135 121 135 94 136 251 136 93 136 313 137 156 137 155 137 204 138 45 138 44 138 280 139 123 139 122 139 95 140 252 140 94 140 314 141 157 141 156 141 205 142 46 142 45 142 281 143 124 143 123 143 96 144 253 144 95 144 315 145 158 145 157 145 206 57 47 57 46 57 282 146 125 146 124 146 294 147 135 147 136 147 316 148 159 148 158 148 207 149 48 149 47 149 283 150 126 150 125 150 99 151 256 151 98 151 317 152 160 152 159 152 48 153 209 153 49 153 284 154 114 154 126 154 134 155 291 155 133 155 258 156 99 156 100 156 318 157 161 157 160 157 49 158 210 158 50 158 277 159 73 159 119 159 131 160 288 160 130 160 259 161 100 161 101 161 319 162 149 162 161 162 50 163 211 163 51 163 256 164 120 164 98 164 130 165 287 165 129 165 260 166 101 166 102 166 312 167 34 167 154 167 51 168 212 168 52 168 229 169 6 169 71 169 129 170 286 170 128 170 261 171 102 171 103 171 291 172 155 172 133 172 52 173 213 173 53 173 293 174 134 174 135 174 128 175 285 175 127 175 262 176 103 176 104 176 56 177 290 177 132 177 53 178 214 178 54 178 296 179 137 179 138 179 127 180 230 180 72 180 263 181 104 181 105 181 54 182 215 182 55 182 297 183 138 183 139 183 166 184 7 184 6 184 264 185 105 185 106 185 195 186 38 186 35 186 55 187 216 187 56 187 298 188 139 188 140 188 167 189 8 189 7 189 265 190 106 190 107 190 197 191 36 191 37 191 299 192 140 192 141 192 168 193 9 193 8 193 266 194 107 194 108 194 217 195 37 195 57 195 300 196 141 196 142 196 169 197 10 197 9 197 267 198 108 198 109 198 218 199 57 199 58 199 301 200 142 200 143 200 170 201 11 201 10 201 268 202 109 202 110 202 219 203 58 203 59 203 302 204 143 204 144 204 171 205 12 205 11 205 269 206 110 206 111 206 220 207 59 207 60 207 341 0 331 0 329 0 373 0 363 0 361 0 397 208 421 208 422 208 390 0 416 0 391 0 398 209 422 209 423 209 391 210 344 210 326 210 398 15 424 15 399 15 400 0 424 0 425 0 401 0 425 0 426 0 401 0 427 0 402 0 402 0 428 0 403 0 404 0 428 0 429 0 385 211 409 211 410 211 404 0 430 0 405 0 385 0 411 0 386 0 405 0 431 0 406 0 386 212 412 212 387 212 406 0 432 0 407 0 394 213 418 213 419 213 388 214 412 214 413 214 408 215 432 215 433 215 395 216 419 216 420 216 388 0 414 0 389 0 408 0 409 0 384 0 395 217 421 217 396 217 390 0 414 0 415 0 437 0 446 0 441 0 351 212 457 212 350 212 356 6 452 6 355 6 350 0 458 0 349 0 355 218 376 218 358 218 348 219 458 219 459 219 347 0 459 0 460 0 346 0 460 0 461 0 346 220 462 220 345 220 345 221 463 221 325 221 324 222 463 222 464 222 381 0 392 0 380 0 324 0 465 0 323 0 380 212 447 212 379 212 323 0 466 0 322 0 378 223 447 223 448 223 321 224 466 224 467 224 353 225 453 225 454 225 377 226 448 226 449 226 321 0 468 0 320 0 352 227 454 227 455 227 377 0 450 0 357 0 381 228 468 228 417 228 352 0 456 0 351 0 356 222 450 222 451 222 470 229 481 229 477 229 492 230 500 230 491 230 524 230 532 230 523 230 555 42 579 42 554 42 574 231 548 231 549 231 556 25 580 25 555 25 504 232 549 232 486 232 582 233 556 233 557 233 558 25 582 25 557 25 559 234 583 234 558 234 585 25 559 25 560 25 586 25 560 25 561 25 562 25 586 25 561 25 568 235 542 235 543 235 588 25 562 25 563 25 544 236 568 236 543 236 589 25 563 25 564 25 570 237 544 237 545 237 565 25 589 25 564 25 552 238 576 238 551 238 546 239 570 239 545 239 566 25 590 25 565 25 553 25 577 25 552 25 572 240 546 240 547 240 567 241 566 241 542 241 579 242 553 242 554 242 548 243 572 243 547 243 603 244 598 244 599 244 615 25 511 25 510 25 610 245 516 245 515 245 616 25 510 25 509 25 536 246 515 246 518 246 508 25 616 25 509 25 507 247 617 247 508 247 506 248 618 248 507 248 620 25 506 25 505 25 621 25 505 25 485 25 484 26 621 26 485 26 550 249 541 249 540 249 623 250 484 250 483 250 605 251 540 251 539 251 482 25 623 25 483 25 538 25 605 25 539 25 625 237 482 237 383 237 513 252 611 252 514 252 607 25 538 25 537 25 382 25 625 25 383 25 512 25 612 25 513 25 517 25 607 25 537 25 575 253 382 253 541 253 614 254 512 254 511 254 609 25 517 25 516 25 638 25 632 25 634 25 464 255 623 255 465 255 333 256 492 256 332 256 431 257 590 257 432 257 380 258 541 258 381 258 465 259 624 259 466 259 334 260 493 260 333 260 432 261 591 261 433 261 466 262 625 262 467 262 334 263 495 263 494 263 409 264 591 264 567 264 350 265 509 265 510 265 467 266 626 266 468 266 335 267 496 267 495 267 347 268 506 268 507 268 417 269 626 269 575 269 336 270 497 270 496 270 348 271 507 271 508 271 337 272 498 272 497 272 338 273 499 273 498 273 385 274 542 274 384 274 339 275 500 275 499 275 386 276 543 276 385 276 340 277 501 277 500 277 344 278 574 278 504 278 387 279 544 279 386 279 341 280 502 280 501 280 388 281 545 281 387 281 342 282 503 282 502 282 389 283 546 283 388 283 343 284 504 284 503 284 390 285 547 285 389 285 392 286 575 286 550 286 391 287 548 287 390 287 381 288 382 288 320 288 456 289 615 289 457 289 321 290 382 290 383 290 393 291 552 291 551 291 322 292 383 292 482 292 394 293 553 293 552 293 323 294 482 294 483 294 395 295 554 295 553 295 324 296 483 296 484 296 396 297 555 297 554 297 325 298 484 298 485 298 397 299 556 299 555 299 452 300 609 300 610 300 398 301 557 301 556 301 345 302 485 302 505 302 399 303 558 303 557 303 346 304 505 304 506 304 400 305 559 305 558 305 401 306 560 306 559 306 349 307 508 307 509 307 402 308 561 308 560 308 351 309 510 309 511 309 403 310 562 310 561 310 352 311 511 311 512 311 404 312 563 312 562 312 353 313 512 313 513 313 405 314 564 314 563 314 354 315 513 315 514 315 406 316 565 316 564 316 355 317 516 317 356 317 435 318 592 318 434 318 407 319 566 319 565 319 359 320 518 320 358 320 436 321 593 321 435 321 384 322 566 322 408 322 470 323 627 323 469 323 360 324 519 324 359 324 437 325 594 325 436 325 410 326 567 326 568 326 471 327 628 327 470 327 361 328 520 328 360 328 438 329 595 329 437 329 411 330 568 330 569 330 472 331 629 331 471 331 362 332 521 332 361 332 439 333 596 333 438 333 412 334 569 334 570 334 473 335 630 335 472 335 363 336 522 336 362 336 441 337 598 337 440 337 413 338 570 338 571 338 474 339 631 339 473 339 364 340 523 340 363 340 442 341 599 341 441 341 414 342 571 342 572 342 476 343 633 343 475 343 365 344 524 344 364 344 443 345 600 345 442 345 415 346 572 346 573 346 477 347 634 347 476 347 366 348 525 348 365 348 444 349 601 349 443 349 416 350 573 350 574 350 478 351 635 351 477 351 366 352 527 352 526 352 445 353 602 353 444 353 455 354 614 354 456 354 479 355 636 355 478 355 367 356 528 356 527 356 446 357 603 357 445 357 418 358 577 358 419 358 480 359 637 359 479 359 368 360 529 360 528 360 434 361 604 361 446 361 453 362 612 362 454 362 419 363 578 363 420 363 481 364 638 364 480 364 369 365 530 365 529 365 393 366 597 366 439 366 451 367 608 367 609 367 420 368 579 368 421 368 469 369 639 369 481 369 370 273 531 273 530 273 440 370 576 370 418 370 450 371 607 371 608 371 421 372 580 372 422 372 354 373 632 373 474 373 371 374 532 374 531 374 326 375 549 375 391 375 449 376 606 376 607 376 422 377 581 377 423 377 475 378 611 378 453 378 372 379 533 379 532 379 454 380 613 380 455 380 448 381 605 381 606 381 423 382 582 382 424 382 376 383 610 383 536 383 373 384 534 384 533 384 457 385 616 385 458 385 447 386 550 386 605 386 424 387 583 387 425 387 374 388 535 388 534 388 458 389 617 389 459 389 327 390 486 390 326 390 425 391 584 391 426 391 358 392 515 392 355 392 375 393 536 393 535 393 459 394 618 394 460 394 328 395 487 395 327 395 426 396 585 396 427 396 356 397 517 397 357 397 460 398 619 398 461 398 329 328 488 328 328 328 427 399 586 399 428 399 357 400 537 400 377 400 461 401 620 401 462 401 330 402 489 402 329 402 428 403 587 403 429 403 377 404 538 404 378 404 462 405 621 405 463 405 331 406 490 406 330 406 429 407 588 407 430 407 378 408 539 408 379 408 463 409 622 409 464 409 332 410 491 410 331 410 430 411 589 411 431 411 379 412 540 412 380 412 6 413 23 413 24 413 8 0 9 0 10 0 10 0 11 0 8 0 12 414 13 414 14 414 14 0 15 0 16 0 16 0 17 0 18 0 18 0 19 0 20 0 20 415 21 415 22 415 22 0 23 0 8 0 6 416 7 416 23 416 8 0 11 0 20 0 12 0 14 0 18 0 16 417 18 417 14 417 20 418 22 418 8 418 7 0 8 0 23 0 12 0 18 0 20 0 38 419 55 419 56 419 40 0 41 0 42 0 42 0 43 0 40 0 44 414 45 414 46 414 46 0 47 0 48 0 48 0 49 0 50 0 50 0 51 0 52 0 52 420 53 420 54 420 54 0 55 0 40 0 38 421 39 421 55 421 40 0 43 0 52 0 44 0 46 0 50 0 48 417 50 417 46 417 52 418 54 418 40 418 39 0 40 0 55 0 44 0 50 0 52 0 77 422 102 422 101 422 96 0 95 0 70 0 78 423 103 423 102 423 24 424 96 424 71 424 104 0 103 0 78 0 80 0 105 0 104 0 81 0 106 0 105 0 107 0 106 0 81 0 108 0 107 0 82 0 84 0 109 0 108 0 65 425 90 425 89 425 110 0 109 0 84 0 91 0 90 0 65 0 111 0 110 0 85 0 92 0 91 0 66 0 87 0 112 0 111 0 74 426 99 426 98 426 68 427 93 427 92 427 88 428 113 428 112 428 75 429 100 429 99 429 94 430 93 430 68 430 89 0 113 0 88 0 101 431 100 431 75 431 70 0 95 0 94 0 98 432 120 432 73 432 121 0 122 0 123 0 123 0 124 0 125 0 125 433 126 433 114 433 114 434 115 434 125 434 116 435 117 435 118 435 118 0 119 0 125 0 73 436 120 436 119 436 121 437 123 437 125 437 125 438 115 438 116 438 116 0 118 0 125 0 120 439 121 439 119 439 137 430 136 430 31 430 132 440 131 440 36 440 138 0 137 0 30 0 56 441 132 441 35 441 28 442 139 442 138 442 27 0 140 0 139 0 26 0 141 0 140 0 142 0 141 0 26 0 143 224 142 224 25 224 4 443 144 443 143 443 72 0 97 0 61 0 145 0 144 0 4 0 127 0 72 0 60 0 146 0 145 0 3 0 58 444 128 444 127 444 1 226 147 226 146 226 33 445 134 445 133 445 57 224 129 224 128 224 148 430 147 430 1 430 32 446 135 446 134 446 130 0 129 0 57 0 61 447 97 447 148 447 136 0 135 0 32 0 36 443 131 443 130 443 133 448 155 448 34 448 156 0 157 0 160 0 158 449 159 449 160 449 160 450 161 450 149 450 149 0 150 0 160 0 151 0 152 0 150 0 153 0 154 0 160 0 34 451 155 451 154 451 157 452 158 452 160 452 160 453 150 453 152 453 152 0 153 0 160 0 155 0 156 0 154 0 168 454 167 454 183 454 166 25 184 25 183 25 183 25 182 25 169 25 181 455 180 455 179 455 179 25 178 25 181 25 177 25 176 25 175 25 175 25 174 25 173 25 173 25 172 25 171 25 171 25 170 25 169 25 169 25 168 25 183 25 166 456 183 456 167 456 181 25 178 25 173 25 177 457 175 457 178 457 173 25 171 25 181 25 169 458 182 458 181 458 178 459 175 459 173 459 200 454 199 454 215 454 198 460 216 460 215 460 215 461 214 461 213 461 213 462 212 462 211 462 211 25 210 25 213 25 209 25 208 25 207 25 207 25 206 25 205 25 205 25 204 25 203 25 203 25 202 25 201 25 201 25 200 25 215 25 198 463 215 463 199 463 213 25 210 25 205 25 209 457 207 457 210 457 205 25 203 25 213 25 201 25 215 25 213 25 210 464 207 464 205 464 235 239 234 239 259 239 228 465 253 465 254 465 236 25 235 25 260 25 229 466 254 466 184 466 236 467 261 467 262 467 238 25 237 25 262 25 239 468 238 468 263 468 239 469 264 469 265 469 240 25 265 25 266 25 242 25 241 25 266 25 222 470 247 470 248 470 242 25 267 25 268 25 224 471 223 471 248 471 243 25 268 25 269 25 224 472 249 472 250 472 245 25 244 25 269 25 232 473 231 473 256 473 226 48 225 48 250 48 246 25 245 25 270 25 233 25 232 25 257 25 226 25 251 25 252 25 246 474 271 474 247 474 233 475 258 475 259 475 228 476 227 476 252 476 279 25 278 25 280 25 256 477 231 477 278 477 277 478 276 478 275 478 275 479 274 479 273 479 273 25 272 25 284 25 284 25 283 25 280 25 282 480 281 480 280 480 280 25 278 25 275 25 231 481 277 481 278 481 275 25 273 25 280 25 283 482 282 482 280 482 278 483 277 483 275 483 191 484 294 484 295 484 196 485 289 485 290 485 190 25 295 25 296 25 195 486 290 486 216 486 188 25 189 25 296 25 187 487 188 487 297 487 186 488 187 488 298 488 186 25 299 25 300 25 185 25 300 25 301 25 164 489 165 489 301 489 221 41 255 41 230 41 164 25 302 25 303 25 220 490 230 490 285 490 162 25 163 25 303 25 218 25 219 25 285 25 162 491 304 491 305 491 193 492 194 492 291 492 218 493 286 493 287 493 62 25 63 25 305 25 192 25 193 25 292 25 197 25 217 25 287 25 62 494 306 494 255 494 192 495 293 495 294 495 197 25 288 25 289 25 314 25 313 25 310 25 291 496 194 496 313 496 312 497 311 497 310 497 310 498 309 498 308 498 308 499 307 499 319 499 319 500 318 500 308 500 317 25 316 25 314 25 315 25 314 25 316 25 194 501 312 501 313 501 310 25 308 25 314 25 318 25 317 25 314 25 313 502 312 502 310 502 303 503 302 503 144 503 172 504 173 504 13 504 270 505 269 505 111 505 61 506 221 506 220 506 304 507 303 507 145 507 173 508 174 508 14 508 271 509 270 509 112 509 305 510 304 510 146 510 174 511 175 511 15 511 247 512 271 512 113 512 30 513 190 513 189 513 306 514 305 514 147 514 175 515 176 515 16 515 27 516 187 516 186 516 255 517 306 517 148 517 16 518 176 518 177 518 28 519 188 519 187 519 17 520 177 520 178 520 18 521 178 521 179 521 64 522 222 522 223 522 19 523 179 523 180 523 223 524 224 524 66 524 20 525 180 525 181 525 24 526 184 526 254 526 224 527 225 527 67 527 21 528 181 528 182 528 225 529 226 529 68 529 22 530 182 530 183 530 226 531 227 531 69 531 23 532 183 532 184 532 227 533 228 533 70 533 230 534 255 534 97 534 228 535 229 535 71 535 0 536 62 536 221 536 295 537 294 537 136 537 1 538 63 538 62 538 231 539 232 539 74 539 2 540 162 540 63 540 74 541 232 541 233 541 3 542 163 542 162 542 75 543 233 543 234 543 4 544 164 544 163 544 76 545 234 545 235 545 5 546 165 546 164 546 77 547 235 547 236 547 132 548 290 548 289 548 78 549 236 549 237 549 25 550 185 550 165 550 79 551 237 551 238 551 26 552 186 552 185 552 80 553 238 553 239 553 81 554 239 554 240 554 29 555 189 555 188 555 82 556 240 556 241 556 31 557 191 557 190 557 83 558 241 558 242 558 32 559 192 559 191 559 84 560 242 560 243 560 33 561 193 561 192 561 85 562 243 562 244 562 194 563 193 563 33 563 86 564 244 564 245 564 196 565 195 565 35 565 272 566 273 566 115 566 87 567 245 567 246 567 198 568 199 568 39 568 273 569 274 569 116 569 88 570 246 570 222 570 307 571 308 571 150 571 199 572 200 572 40 572 274 573 275 573 117 573 248 574 247 574 89 574 308 575 309 575 151 575 200 576 201 576 41 576 275 577 276 577 118 577 91 578 249 578 248 578 309 579 310 579 152 579 201 580 202 580 42 580 276 581 277 581 119 581 92 582 250 582 249 582 310 583 311 583 153 583 202 584 203 584 43 584 278 585 279 585 121 585 93 586 251 586 250 586 311 587 312 587 154 587 203 588 204 588 44 588 279 589 280 589 122 589 94 590 252 590 251 590 313 591 314 591 156 591 204 592 205 592 45 592 280 593 281 593 123 593 95 594 253 594 252 594 314 595 315 595 157 595 205 596 206 596 46 596 281 597 282 597 124 597 96 598 254 598 253 598 315 599 316 599 158 599 206 600 207 600 47 600 282 601 283 601 125 601 294 602 293 602 135 602 316 603 317 603 159 603 207 604 208 604 48 604 283 605 284 605 126 605 99 606 257 606 256 606 317 607 318 607 160 607 48 608 208 608 209 608 284 609 272 609 114 609 134 610 292 610 291 610 258 611 257 611 99 611 318 612 319 612 161 612 49 613 209 613 210 613 277 614 231 614 73 614 131 615 289 615 288 615 259 616 258 616 100 616 319 617 307 617 149 617 50 521 210 521 211 521 256 618 278 618 120 618 130 619 288 619 287 619 260 620 259 620 101 620 312 621 194 621 34 621 51 622 211 622 212 622 229 623 166 623 6 623 129 624 287 624 286 624 261 625 260 625 102 625 291 626 313 626 155 626 52 627 212 627 213 627 293 628 292 628 134 628 128 629 286 629 285 629 262 630 261 630 103 630 56 631 216 631 290 631 53 632 213 632 214 632 296 633 295 633 137 633 127 634 285 634 230 634 263 635 262 635 104 635 54 636 214 636 215 636 297 637 296 637 138 637 166 638 167 638 7 638 264 639 263 639 105 639 195 640 198 640 38 640 55 641 215 641 216 641 298 642 297 642 139 642 167 643 168 643 8 643 265 644 264 644 106 644 197 645 196 645 36 645 299 646 298 646 140 646 168 647 169 647 9 647 266 648 265 648 107 648 217 649 197 649 37 649 300 650 299 650 141 650 169 651 170 651 10 651 267 652 266 652 108 652 218 653 217 653 57 653 301 654 300 654 142 654 170 655 171 655 11 655 268 656 267 656 109 656 219 657 218 657 58 657 302 658 301 658 143 658 171 659 172 659 12 659 269 660 268 660 110 660 220 661 219 661 59 661 328 662 327 662 343 662 326 663 344 663 343 663 343 0 342 0 329 0 341 664 340 664 339 664 339 665 338 665 341 665 337 0 336 0 335 0 335 666 334 666 333 666 333 0 332 0 331 0 331 0 330 0 329 0 329 0 328 0 343 0 326 667 343 667 327 667 341 668 338 668 333 668 337 0 335 0 338 0 333 0 331 0 341 0 329 0 342 0 341 0 338 0 335 0 333 0 360 669 359 669 375 669 358 670 376 670 375 670 375 0 374 0 373 0 373 664 372 664 371 664 371 665 370 665 373 665 369 0 368 0 367 0 367 671 366 671 365 671 365 0 364 0 363 0 363 0 362 0 361 0 361 0 360 0 375 0 358 672 375 672 359 672 373 673 370 673 365 673 369 0 367 0 370 0 365 0 363 0 373 0 361 0 375 0 373 0 370 0 367 0 365 0 397 0 396 0 421 0 390 0 415 0 416 0 398 0 397 0 422 0 391 674 416 674 344 674 398 0 423 0 424 0 400 0 399 0 424 0 401 675 400 675 425 675 401 0 426 0 427 0 402 0 427 0 428 0 404 676 403 676 428 676 385 0 384 0 409 0 404 677 429 677 430 677 385 678 410 678 411 678 405 679 430 679 431 679 386 0 411 0 412 0 406 0 431 0 432 0 394 680 393 680 418 680 388 0 387 0 412 0 408 0 407 0 432 0 395 0 394 0 419 0 388 681 413 681 414 681 408 682 433 682 409 682 395 683 420 683 421 683 390 0 389 0 414 0 441 0 440 0 437 0 418 684 393 684 440 684 439 685 438 685 437 685 437 686 436 686 435 686 435 687 434 687 446 687 446 0 445 0 444 0 444 0 443 0 446 0 442 0 441 0 443 0 393 688 439 688 440 688 437 689 435 689 446 689 446 690 443 690 441 690 440 691 439 691 437 691 351 692 456 692 457 692 356 693 451 693 452 693 350 694 457 694 458 694 355 695 452 695 376 695 348 0 349 0 458 0 347 221 348 221 459 221 346 696 347 696 460 696 346 0 461 0 462 0 345 0 462 0 463 0 324 8 325 8 463 8 381 697 417 697 392 697 324 0 464 0 465 0 380 698 392 698 447 698 323 224 465 224 466 224 378 0 379 0 447 0 321 0 322 0 466 0 353 699 354 699 453 699 377 0 378 0 448 0 321 700 467 700 468 700 352 0 353 0 454 0 377 701 449 701 450 701 381 0 320 0 468 0 352 224 455 224 456 224 356 0 357 0 450 0 476 0 475 0 472 0 453 702 354 702 475 702 474 0 473 0 472 0 472 0 471 0 470 0 470 686 469 686 481 686 481 703 480 703 477 703 479 704 478 704 477 704 477 0 476 0 472 0 354 705 474 705 475 705 472 0 470 0 477 0 480 706 479 706 477 706 475 707 474 707 472 707 486 25 503 25 504 25 488 461 489 461 490 461 490 25 491 25 488 25 492 25 493 25 494 25 494 25 495 25 496 25 496 708 497 708 498 708 498 709 499 709 500 709 500 25 501 25 502 25 502 710 503 710 488 710 486 711 487 711 503 711 488 25 491 25 500 25 492 25 494 25 498 25 496 25 498 25 494 25 500 712 502 712 488 712 487 25 488 25 503 25 492 25 498 25 500 25 518 713 535 713 536 713 520 461 521 461 522 461 522 25 523 25 520 25 524 25 525 25 526 25 526 25 527 25 528 25 528 708 529 708 530 708 530 714 531 714 532 714 532 25 533 25 534 25 534 710 535 710 520 710 518 715 519 715 535 715 520 25 523 25 532 25 524 25 526 25 530 25 528 25 530 25 526 25 532 716 534 716 520 716 519 25 520 25 535 25 524 25 530 25 532 25 555 25 580 25 579 25 574 717 573 717 548 717 556 718 581 718 580 718 504 719 574 719 549 719 582 720 581 720 556 720 558 25 583 25 582 25 559 25 584 25 583 25 585 721 584 721 559 721 586 44 585 44 560 44 562 25 587 25 586 25 568 25 567 25 542 25 588 25 587 25 562 25 544 722 569 722 568 722 589 25 588 25 563 25 570 25 569 25 544 25 565 723 590 723 589 723 552 724 577 724 576 724 546 717 571 717 570 717 566 725 591 725 590 725 553 25 578 25 577 25 572 25 571 25 546 25 567 25 591 25 566 25 579 25 578 25 553 25 548 726 573 726 572 726 576 727 598 727 551 727 599 25 600 25 603 25 601 25 602 25 603 25 603 25 604 25 592 25 592 25 593 25 603 25 594 25 595 25 596 25 596 25 597 25 603 25 551 728 598 728 597 728 600 25 601 25 603 25 603 729 593 729 594 729 594 25 596 25 603 25 598 730 603 730 597 730 615 25 614 25 511 25 610 731 609 731 516 731 616 25 615 25 510 25 536 732 610 732 515 732 508 733 617 733 616 733 507 25 618 25 617 25 506 25 619 25 618 25 620 25 619 25 506 25 621 25 620 25 505 25 484 25 622 25 621 25 550 25 575 25 541 25 623 25 622 25 484 25 605 25 550 25 540 25 482 734 624 734 623 734 538 734 606 734 605 734 625 735 624 735 482 735 513 736 612 736 611 736 607 25 606 25 538 25 382 737 626 737 625 737 512 738 613 738 612 738 517 25 608 25 607 25 575 739 626 739 382 739 614 25 613 25 512 25 609 25 608 25 517 25 611 740 633 740 514 740 634 741 635 741 636 741 636 742 637 742 638 742 638 743 639 743 627 743 627 25 628 25 638 25 629 25 630 25 628 25 631 25 632 25 638 25 514 744 633 744 632 744 634 25 636 25 638 25 638 745 628 745 631 745 630 25 631 25 628 25 633 25 634 25 632 25 464 746 622 746 623 746 333 747 493 747 492 747 431 748 589 748 590 748 380 749 540 749 541 749 465 750 623 750 624 750 334 751 494 751 493 751 432 752 590 752 591 752 466 753 624 753 625 753 334 754 335 754 495 754 409 755 433 755 591 755 350 756 349 756 509 756 467 757 625 757 626 757 335 758 336 758 496 758 347 759 346 759 506 759 417 760 468 760 626 760 336 761 337 761 497 761 348 762 347 762 507 762 337 763 338 763 498 763 338 764 339 764 499 764 385 765 543 765 542 765 339 766 340 766 500 766 386 767 544 767 543 767 340 768 341 768 501 768 344 769 416 769 574 769 387 770 545 770 544 770 341 771 342 771 502 771 388 772 546 772 545 772 342 773 343 773 503 773 389 774 547 774 546 774 343 775 344 775 504 775 390 776 548 776 547 776 392 777 417 777 575 777 391 778 549 778 548 778 381 779 541 779 382 779 456 780 614 780 615 780 321 781 320 781 382 781 393 782 394 782 552 782 322 783 321 783 383 783 394 784 395 784 553 784 323 785 322 785 482 785 395 786 396 786 554 786 324 787 323 787 483 787 396 788 397 788 555 788 325 789 324 789 484 789 397 790 398 790 556 790 452 791 451 791 609 791 398 792 399 792 557 792 345 793 325 793 485 793 399 794 400 794 558 794 346 795 345 795 505 795 400 796 401 796 559 796 401 797 402 797 560 797 349 798 348 798 508 798 402 799 403 799 561 799 351 800 350 800 510 800 403 801 404 801 562 801 352 802 351 802 511 802 404 803 405 803 563 803 353 804 352 804 512 804 405 805 406 805 564 805 354 806 353 806 513 806 406 807 407 807 565 807 355 808 515 808 516 808 435 809 593 809 592 809 407 810 408 810 566 810 359 811 519 811 518 811 436 812 594 812 593 812 384 813 542 813 566 813 470 814 628 814 627 814 360 815 520 815 519 815 437 816 595 816 594 816 410 817 409 817 567 817 471 818 629 818 628 818 361 819 521 819 520 819 438 820 596 820 595 820 411 821 410 821 568 821 472 822 630 822 629 822 362 823 522 823 521 823 439 824 597 824 596 824 412 825 411 825 569 825 473 826 631 826 630 826 363 827 523 827 522 827 441 828 599 828 598 828 413 829 412 829 570 829 474 830 632 830 631 830 364 831 524 831 523 831 442 832 600 832 599 832 414 833 413 833 571 833 476 834 634 834 633 834 365 835 525 835 524 835 443 836 601 836 600 836 415 837 414 837 572 837 477 838 635 838 634 838 366 839 526 839 525 839 444 840 602 840 601 840 416 841 415 841 573 841 478 842 636 842 635 842 366 843 367 843 527 843 445 844 603 844 602 844 455 845 613 845 614 845 479 846 637 846 636 846 367 847 368 847 528 847 446 848 604 848 603 848 418 849 576 849 577 849 480 850 638 850 637 850 368 851 369 851 529 851 434 852 592 852 604 852 453 853 611 853 612 853 419 854 577 854 578 854 481 855 639 855 638 855 369 763 370 763 530 763 393 856 551 856 597 856 451 857 450 857 608 857 420 858 578 858 579 858 469 859 627 859 639 859 370 860 371 860 531 860 440 861 598 861 576 861 450 862 449 862 607 862 421 863 579 863 580 863 354 864 514 864 632 864 371 865 372 865 532 865 326 866 486 866 549 866 449 867 448 867 606 867 422 868 580 868 581 868 475 869 633 869 611 869 372 870 373 870 533 870 454 871 612 871 613 871 448 872 447 872 605 872 423 873 581 873 582 873 376 874 452 874 610 874 373 875 374 875 534 875 457 876 615 876 616 876 447 877 392 877 550 877 424 878 582 878 583 878 374 773 375 773 535 773 458 879 616 879 617 879 327 880 487 880 486 880 425 881 583 881 584 881 358 882 518 882 515 882 375 883 376 883 536 883 459 884 617 884 618 884 328 885 488 885 487 885 426 886 584 886 585 886 356 887 516 887 517 887 460 888 618 888 619 888 329 889 489 889 488 889 427 890 585 890 586 890 357 891 517 891 537 891 461 892 619 892 620 892 330 893 490 893 489 893 428 894 586 894 587 894 377 895 537 895 538 895 462 896 620 896 621 896 331 897 491 897 490 897 429 898 587 898 588 898 378 899 538 899 539 899 463 900 621 900 622 900 332 901 492 901 491 901 430 902 588 902 589 902 379 903 539 903 540 903

+

12 0 20 0 11 0 44 0 52 0 43 0 77 0 101 0 76 0 96 1 70 1 71 1 78 0 102 0 77 0 24 2 71 2 6 2 104 3 78 3 79 3 80 4 104 4 79 4 81 5 105 5 80 5 107 6 81 6 82 6 108 0 82 0 83 0 84 7 108 7 83 7 65 0 89 0 64 0 110 8 84 8 85 8 91 0 65 0 66 0 111 9 85 9 86 9 92 10 66 10 67 10 87 0 111 0 86 0 74 11 98 11 73 11 68 0 92 0 67 0 88 0 112 0 87 0 75 0 99 0 74 0 94 0 68 0 69 0 89 12 88 12 64 12 101 13 75 13 76 13 70 0 94 0 69 0 125 0 119 0 121 0 137 4 31 4 30 4 132 1 36 1 35 1 138 0 30 0 29 0 56 14 35 14 38 14 28 0 138 0 29 0 27 0 139 0 28 0 26 0 140 0 27 0 142 0 26 0 25 0 143 0 25 0 5 0 4 0 143 0 5 0 72 15 61 15 60 15 145 16 4 16 3 16 127 17 60 17 59 17 146 18 3 18 2 18 58 0 127 0 59 0 1 19 146 19 2 19 33 20 133 20 34 20 57 0 128 0 58 0 148 13 1 13 0 13 32 0 134 0 33 0 130 0 57 0 37 0 61 21 148 21 0 21 136 22 32 22 31 22 36 0 130 0 37 0 160 0 154 0 156 0 181 23 171 23 169 23 213 23 203 23 201 23 235 24 259 24 260 24 228 25 254 25 229 25 236 23 260 23 261 23 229 26 184 26 166 26 236 27 262 27 237 27 238 28 262 28 263 28 239 29 263 29 264 29 239 30 265 30 240 30 240 23 266 23 241 23 242 23 266 23 267 23 222 23 248 23 223 23 242 23 268 23 243 23 224 31 248 31 249 31 243 23 269 23 244 23 224 23 250 23 225 23 245 32 269 32 270 32 232 33 256 33 257 33 226 34 250 34 251 34 246 35 270 35 271 35 233 36 257 36 258 36 226 23 252 23 227 23 246 23 247 23 222 23 233 37 259 37 234 37 228 38 252 38 253 38 273 23 284 23 280 23 191 23 295 23 190 23 196 39 290 39 195 39 190 40 296 40 189 40 195 41 216 41 198 41 188 42 296 42 297 42 187 23 297 23 298 23 186 23 298 23 299 23 186 43 300 43 185 43 185 44 301 44 165 44 164 23 301 23 302 23 221 23 230 23 220 23 164 45 303 45 163 45 220 23 285 23 219 23 162 46 303 46 304 46 218 47 285 47 286 47 162 23 305 23 63 23 193 48 291 48 292 48 218 23 287 23 217 23 62 49 305 49 306 49 192 50 292 50 293 50 197 23 287 23 288 23 62 23 255 23 221 23 192 23 294 23 191 23 197 44 289 44 196 44 308 51 318 51 314 51 303 52 144 52 145 52 172 53 13 53 12 53 270 54 111 54 112 54 61 55 220 55 60 55 304 56 145 56 146 56 173 57 14 57 13 57 271 58 112 58 113 58 305 59 146 59 147 59 174 60 15 60 14 60 247 61 113 61 89 61 30 62 189 62 29 62 306 63 147 63 148 63 175 64 16 64 15 64 27 65 186 65 26 65 255 66 148 66 97 66 16 67 177 67 17 67 28 68 187 68 27 68 17 69 178 69 18 69 18 70 179 70 19 70 64 71 223 71 65 71 19 72 180 72 20 72 223 73 66 73 65 73 20 74 181 74 21 74 24 75 254 75 96 75 224 76 67 76 66 76 21 77 182 77 22 77 225 78 68 78 67 78 22 79 183 79 23 79 226 80 69 80 68 80 23 81 184 81 24 81 227 82 70 82 69 82 230 83 97 83 72 83 228 84 71 84 70 84 0 85 221 85 61 85 295 86 136 86 137 86 1 87 62 87 0 87 231 88 74 88 73 88 2 89 63 89 1 89 74 90 233 90 75 90 3 91 162 91 2 91 75 92 234 92 76 92 4 93 163 93 3 93 76 94 235 94 77 94 5 95 164 95 4 95 77 96 236 96 78 96 132 97 289 97 131 97 78 98 237 98 79 98 25 99 165 99 5 99 79 100 238 100 80 100 26 101 185 101 25 101 80 102 239 102 81 102 81 103 240 103 82 103 29 104 188 104 28 104 82 105 241 105 83 105 31 106 190 106 30 106 83 107 242 107 84 107 32 108 191 108 31 108 84 109 243 109 85 109 33 110 192 110 32 110 85 111 244 111 86 111 194 112 33 112 34 112 86 113 245 113 87 113 196 114 35 114 36 114 272 115 115 115 114 115 87 116 246 116 88 116 198 117 39 117 38 117 273 118 116 118 115 118 88 119 222 119 64 119 307 120 150 120 149 120 199 121 40 121 39 121 274 122 117 122 116 122 248 123 89 123 90 123 308 124 151 124 150 124 200 125 41 125 40 125 275 126 118 126 117 126 91 127 248 127 90 127 309 128 152 128 151 128 201 129 42 129 41 129 276 130 119 130 118 130 92 131 249 131 91 131 310 132 153 132 152 132 202 133 43 133 42 133 278 134 121 134 120 134 93 135 250 135 92 135 311 136 154 136 153 136 203 137 44 137 43 137 279 138 122 138 121 138 94 139 251 139 93 139 313 140 156 140 155 140 204 141 45 141 44 141 280 142 123 142 122 142 95 143 252 143 94 143 314 144 157 144 156 144 205 145 46 145 45 145 281 146 124 146 123 146 96 147 253 147 95 147 315 148 158 148 157 148 206 149 47 149 46 149 282 150 125 150 124 150 294 151 135 151 136 151 316 152 159 152 158 152 207 153 48 153 47 153 283 154 126 154 125 154 99 155 256 155 98 155 317 156 160 156 159 156 48 67 209 67 49 67 284 157 114 157 126 157 134 158 291 158 133 158 258 159 99 159 100 159 318 160 161 160 160 160 49 161 210 161 50 161 277 162 73 162 119 162 131 163 288 163 130 163 259 164 100 164 101 164 319 165 149 165 161 165 50 166 211 166 51 166 256 167 120 167 98 167 130 168 287 168 129 168 260 169 101 169 102 169 312 170 34 170 154 170 51 171 212 171 52 171 229 172 6 172 71 172 129 173 286 173 128 173 261 174 102 174 103 174 291 175 155 175 133 175 52 176 213 176 53 176 293 177 134 177 135 177 128 178 285 178 127 178 262 179 103 179 104 179 56 180 290 180 132 180 53 181 214 181 54 181 296 182 137 182 138 182 127 183 230 183 72 183 263 184 104 184 105 184 54 185 215 185 55 185 297 186 138 186 139 186 166 187 7 187 6 187 264 188 105 188 106 188 195 189 38 189 35 189 55 190 216 190 56 190 298 191 139 191 140 191 167 192 8 192 7 192 265 193 106 193 107 193 197 194 36 194 37 194 299 195 140 195 141 195 168 196 9 196 8 196 266 197 107 197 108 197 217 198 37 198 57 198 300 199 141 199 142 199 169 200 10 200 9 200 267 201 108 201 109 201 218 202 57 202 58 202 301 203 142 203 143 203 170 204 11 204 10 204 268 205 109 205 110 205 219 206 58 206 59 206 302 207 143 207 144 207 171 208 12 208 11 208 269 209 110 209 111 209 220 210 59 210 60 210 341 0 331 0 329 0 373 0 363 0 361 0 397 211 421 211 422 211 390 10 416 10 391 10 398 212 422 212 423 212 391 213 344 213 326 213 398 214 424 214 399 214 400 0 424 0 425 0 401 0 425 0 426 0 401 215 427 215 402 215 402 18 428 18 403 18 404 216 428 216 429 216 385 217 409 217 410 217 404 218 430 218 405 218 385 0 411 0 386 0 405 0 431 0 406 0 386 0 412 0 387 0 406 0 432 0 407 0 394 219 418 219 419 219 388 0 412 0 413 0 408 220 432 220 433 220 395 0 419 0 420 0 388 0 414 0 389 0 408 0 409 0 384 0 395 0 421 0 396 0 390 0 414 0 415 0 437 0 446 0 441 0 351 221 457 221 350 221 356 17 452 17 355 17 350 0 458 0 349 0 355 222 376 222 358 222 348 0 458 0 459 0 347 0 459 0 460 0 346 0 460 0 461 0 346 0 462 0 345 0 345 0 463 0 325 0 324 0 463 0 464 0 381 223 392 223 380 223 324 0 465 0 323 0 380 224 447 224 379 224 323 225 466 225 322 225 378 226 447 226 448 226 321 227 466 227 467 227 353 228 453 228 454 228 377 229 448 229 449 229 321 0 468 0 320 0 352 230 454 230 455 230 377 0 450 0 357 0 381 231 468 231 417 231 352 224 456 224 351 224 356 0 450 0 451 0 470 232 481 232 477 232 492 23 500 23 491 23 524 23 532 23 523 23 555 233 579 233 554 233 574 23 548 23 549 23 556 23 580 23 555 23 504 234 549 234 486 234 582 235 556 235 557 235 558 23 582 23 557 23 559 23 583 23 558 23 585 236 559 236 560 236 586 23 560 23 561 23 562 23 586 23 561 23 568 23 542 23 543 23 588 23 562 23 563 23 544 23 568 23 543 23 589 237 563 237 564 237 570 238 544 238 545 238 565 23 589 23 564 23 552 239 576 239 551 239 546 240 570 240 545 240 566 23 590 23 565 23 553 23 577 23 552 23 572 23 546 23 547 23 567 23 566 23 542 23 579 241 553 241 554 241 548 23 572 23 547 23 603 242 598 242 599 242 615 23 511 23 510 23 610 243 516 243 515 243 616 244 510 244 509 244 536 245 515 245 518 245 508 23 616 23 509 23 507 23 617 23 508 23 506 246 618 246 507 246 620 23 506 23 505 23 621 247 505 247 485 247 484 23 621 23 485 23 550 248 541 248 540 248 623 247 484 247 483 247 605 249 540 249 539 249 482 23 623 23 483 23 538 23 605 23 539 23 625 23 482 23 383 23 513 250 611 250 514 250 607 23 538 23 537 23 382 23 625 23 383 23 512 23 612 23 513 23 517 23 607 23 537 23 575 251 382 251 541 251 614 236 512 236 511 236 609 252 517 252 516 252 638 23 632 23 634 23 464 253 623 253 465 253 333 254 492 254 332 254 431 255 590 255 432 255 380 256 541 256 381 256 465 257 624 257 466 257 334 258 493 258 333 258 432 259 591 259 433 259 466 260 625 260 467 260 334 261 495 261 494 261 409 262 591 262 567 262 350 263 509 263 510 263 467 264 626 264 468 264 335 265 496 265 495 265 347 266 506 266 507 266 417 267 626 267 575 267 336 268 497 268 496 268 348 269 507 269 508 269 337 270 498 270 497 270 338 271 499 271 498 271 385 272 542 272 384 272 339 273 500 273 499 273 386 274 543 274 385 274 340 275 501 275 500 275 344 276 574 276 504 276 387 277 544 277 386 277 341 278 502 278 501 278 388 279 545 279 387 279 342 280 503 280 502 280 389 281 546 281 388 281 343 282 504 282 503 282 390 283 547 283 389 283 392 284 575 284 550 284 391 285 548 285 390 285 381 286 382 286 320 286 456 287 615 287 457 287 321 288 382 288 383 288 393 289 552 289 551 289 322 290 383 290 482 290 394 291 553 291 552 291 323 292 482 292 483 292 395 293 554 293 553 293 324 294 483 294 484 294 396 295 555 295 554 295 325 296 484 296 485 296 397 297 556 297 555 297 452 298 609 298 610 298 398 299 557 299 556 299 345 300 485 300 505 300 399 301 558 301 557 301 346 302 505 302 506 302 400 303 559 303 558 303 401 304 560 304 559 304 349 305 508 305 509 305 402 306 561 306 560 306 351 307 510 307 511 307 403 308 562 308 561 308 352 309 511 309 512 309 404 310 563 310 562 310 353 311 512 311 513 311 405 312 564 312 563 312 354 313 513 313 514 313 406 314 565 314 564 314 355 315 516 315 356 315 435 316 592 316 434 316 407 317 566 317 565 317 359 318 518 318 358 318 436 319 593 319 435 319 384 320 566 320 408 320 470 321 627 321 469 321 360 322 519 322 359 322 437 323 594 323 436 323 410 324 567 324 568 324 471 325 628 325 470 325 361 326 520 326 360 326 438 327 595 327 437 327 411 328 568 328 569 328 472 329 629 329 471 329 362 330 521 330 361 330 439 331 596 331 438 331 412 332 569 332 570 332 473 333 630 333 472 333 363 334 522 334 362 334 441 335 598 335 440 335 413 336 570 336 571 336 474 337 631 337 473 337 364 338 523 338 363 338 442 339 599 339 441 339 414 340 571 340 572 340 476 341 633 341 475 341 365 342 524 342 364 342 443 343 600 343 442 343 415 344 572 344 573 344 477 345 634 345 476 345 366 346 525 346 365 346 444 347 601 347 443 347 416 348 573 348 574 348 478 349 635 349 477 349 366 350 527 350 526 350 445 351 602 351 444 351 455 352 614 352 456 352 479 353 636 353 478 353 367 354 528 354 527 354 446 355 603 355 445 355 418 356 577 356 419 356 480 357 637 357 479 357 368 358 529 358 528 358 434 359 604 359 446 359 453 360 612 360 454 360 419 361 578 361 420 361 481 362 638 362 480 362 369 363 530 363 529 363 393 364 597 364 439 364 451 365 608 365 609 365 420 366 579 366 421 366 469 367 639 367 481 367 370 368 531 368 530 368 440 369 576 369 418 369 450 370 607 370 608 370 421 371 580 371 422 371 354 372 632 372 474 372 371 373 532 373 531 373 326 374 549 374 391 374 449 375 606 375 607 375 422 376 581 376 423 376 475 377 611 377 453 377 372 378 533 378 532 378 454 379 613 379 455 379 448 380 605 380 606 380 423 381 582 381 424 381 376 382 610 382 536 382 373 383 534 383 533 383 457 384 616 384 458 384 447 385 550 385 605 385 424 386 583 386 425 386 374 387 535 387 534 387 458 388 617 388 459 388 327 389 486 389 326 389 425 390 584 390 426 390 358 391 515 391 355 391 375 392 536 392 535 392 459 393 618 393 460 393 328 394 487 394 327 394 426 395 585 395 427 395 356 396 517 396 357 396 460 397 619 397 461 397 329 398 488 398 328 398 427 399 586 399 428 399 357 400 537 400 377 400 461 401 620 401 462 401 330 402 489 402 329 402 428 403 587 403 429 403 377 404 538 404 378 404 462 405 621 405 463 405 331 406 490 406 330 406 429 407 588 407 430 407 378 408 539 408 379 408 463 409 622 409 464 409 332 410 491 410 331 410 430 411 589 411 431 411 379 412 540 412 380 412 6 413 23 413 24 413 8 0 9 0 10 0 10 0 11 0 8 0 12 414 13 414 14 414 14 0 15 0 16 0 16 415 17 415 18 415 18 0 19 0 20 0 20 0 21 0 22 0 22 0 23 0 8 0 6 416 7 416 23 416 8 0 11 0 20 0 12 0 14 0 18 0 16 0 18 0 14 0 20 417 22 417 8 417 7 0 8 0 23 0 12 0 18 0 20 0 38 418 55 418 56 418 40 0 41 0 42 0 42 0 43 0 40 0 44 419 45 419 46 419 46 0 47 0 48 0 48 415 49 415 50 415 50 0 51 0 52 0 52 0 53 0 54 0 54 0 55 0 40 0 38 420 39 420 55 420 40 0 43 0 52 0 44 0 46 0 50 0 48 0 50 0 46 0 52 421 54 421 40 421 39 0 40 0 55 0 44 0 50 0 52 0 77 422 102 422 101 422 96 0 95 0 70 0 78 423 103 423 102 423 24 424 96 424 71 424 104 425 103 425 78 425 80 0 105 0 104 0 81 0 106 0 105 0 107 0 106 0 81 0 108 0 107 0 82 0 84 426 109 426 108 426 65 427 90 427 89 427 110 0 109 0 84 0 91 0 90 0 65 0 111 0 110 0 85 0 92 0 91 0 66 0 87 428 112 428 111 428 74 429 99 429 98 429 68 0 93 0 92 0 88 430 113 430 112 430 75 0 100 0 99 0 94 431 93 431 68 431 89 432 113 432 88 432 101 433 100 433 75 433 70 0 95 0 94 0 98 434 120 434 73 434 121 0 122 0 123 0 123 0 124 0 125 0 125 0 126 0 114 0 114 0 115 0 125 0 116 435 117 435 118 435 118 0 119 0 125 0 73 436 120 436 119 436 121 437 123 437 125 437 125 0 115 0 116 0 116 0 118 0 125 0 120 0 121 0 119 0 137 438 136 438 31 438 132 439 131 439 36 439 138 440 137 440 30 440 56 441 132 441 35 441 28 0 139 0 138 0 27 0 140 0 139 0 26 0 141 0 140 0 142 0 141 0 26 0 143 0 142 0 25 0 4 0 144 0 143 0 72 0 97 0 61 0 145 0 144 0 4 0 127 0 72 0 60 0 146 0 145 0 3 0 58 442 128 442 127 442 1 226 147 226 146 226 33 443 134 443 133 443 57 444 129 444 128 444 148 0 147 0 1 0 32 445 135 445 134 445 130 0 129 0 57 0 61 446 97 446 148 446 136 0 135 0 32 0 36 0 131 0 130 0 133 447 155 447 34 447 156 0 157 0 160 0 158 448 159 448 160 448 160 449 161 449 149 449 149 0 150 0 160 0 151 0 152 0 150 0 153 0 154 0 160 0 34 450 155 450 154 450 157 451 158 451 160 451 160 0 150 0 152 0 152 0 153 0 160 0 155 0 156 0 154 0 168 452 167 452 183 452 166 23 184 23 183 23 183 23 182 23 169 23 181 453 180 453 179 453 179 23 178 23 181 23 177 454 176 454 175 454 175 23 174 23 173 23 173 23 172 23 171 23 171 455 170 455 169 455 169 23 168 23 183 23 166 456 183 456 167 456 181 457 178 457 173 457 177 23 175 23 178 23 173 23 171 23 181 23 169 23 182 23 181 23 178 458 175 458 173 458 200 452 199 452 215 452 198 459 216 459 215 459 215 23 214 23 213 23 213 460 212 460 211 460 211 23 210 23 213 23 209 461 208 461 207 461 207 23 206 23 205 23 205 23 204 23 203 23 203 462 202 462 201 462 201 23 200 23 215 23 198 463 215 463 199 463 213 464 210 464 205 464 209 23 207 23 210 23 205 23 203 23 213 23 201 23 215 23 213 23 210 465 207 465 205 465 235 466 234 466 259 466 228 467 253 467 254 467 236 23 235 23 260 23 229 468 254 468 184 468 236 469 261 469 262 469 238 23 237 23 262 23 239 23 238 23 263 23 239 47 264 47 265 47 240 23 265 23 266 23 242 23 241 23 266 23 222 470 247 470 248 470 242 471 267 471 268 471 224 23 223 23 248 23 243 472 268 472 269 472 224 473 249 473 250 473 245 23 244 23 269 23 232 474 231 474 256 474 226 475 225 475 250 475 246 23 245 23 270 23 233 23 232 23 257 23 226 476 251 476 252 476 246 477 271 477 247 477 233 23 258 23 259 23 228 23 227 23 252 23 279 23 278 23 280 23 256 478 231 478 278 478 277 479 276 479 275 479 275 23 274 23 273 23 273 480 272 480 284 480 284 481 283 481 280 481 282 482 281 482 280 482 280 23 278 23 275 23 231 483 277 483 278 483 275 23 273 23 280 23 283 23 282 23 280 23 278 484 277 484 275 484 191 38 294 38 295 38 196 485 289 485 290 485 190 24 295 24 296 24 195 486 290 486 216 486 188 23 189 23 296 23 187 23 188 23 297 23 186 487 187 487 298 487 186 23 299 23 300 23 185 23 300 23 301 23 164 23 165 23 301 23 221 488 255 488 230 488 164 489 302 489 303 489 220 490 230 490 285 490 162 23 163 23 303 23 218 23 219 23 285 23 162 490 304 490 305 490 193 491 194 491 291 491 218 492 286 492 287 492 62 23 63 23 305 23 192 23 193 23 292 23 197 23 217 23 287 23 62 493 306 493 255 493 192 494 293 494 294 494 197 23 288 23 289 23 314 23 313 23 310 23 291 495 194 495 313 495 312 496 311 496 310 496 310 497 309 497 308 497 308 23 307 23 319 23 319 498 318 498 308 498 317 23 316 23 314 23 315 23 314 23 316 23 194 499 312 499 313 499 310 500 308 500 314 500 318 23 317 23 314 23 313 501 312 501 310 501 303 502 302 502 144 502 172 503 173 503 13 503 270 504 269 504 111 504 61 505 221 505 220 505 304 506 303 506 145 506 173 507 174 507 14 507 271 508 270 508 112 508 305 509 304 509 146 509 174 510 175 510 15 510 247 511 271 511 113 511 30 512 190 512 189 512 306 513 305 513 147 513 175 514 176 514 16 514 27 515 187 515 186 515 255 516 306 516 148 516 16 517 176 517 177 517 28 518 188 518 187 518 17 519 177 519 178 519 18 520 178 520 179 520 64 521 222 521 223 521 19 522 179 522 180 522 223 523 224 523 66 523 20 524 180 524 181 524 24 525 184 525 254 525 224 526 225 526 67 526 21 527 181 527 182 527 225 528 226 528 68 528 22 529 182 529 183 529 226 530 227 530 69 530 23 531 183 531 184 531 227 532 228 532 70 532 230 533 255 533 97 533 228 534 229 534 71 534 0 535 62 535 221 535 295 536 294 536 136 536 1 537 63 537 62 537 231 538 232 538 74 538 2 539 162 539 63 539 74 540 232 540 233 540 3 541 163 541 162 541 75 542 233 542 234 542 4 543 164 543 163 543 76 544 234 544 235 544 5 545 165 545 164 545 77 546 235 546 236 546 132 547 290 547 289 547 78 548 236 548 237 548 25 549 185 549 165 549 79 550 237 550 238 550 26 551 186 551 185 551 80 552 238 552 239 552 81 553 239 553 240 553 29 554 189 554 188 554 82 555 240 555 241 555 31 556 191 556 190 556 83 557 241 557 242 557 32 558 192 558 191 558 84 559 242 559 243 559 33 560 193 560 192 560 85 561 243 561 244 561 194 562 193 562 33 562 86 563 244 563 245 563 196 564 195 564 35 564 272 565 273 565 115 565 87 566 245 566 246 566 198 567 199 567 39 567 273 568 274 568 116 568 88 569 246 569 222 569 307 570 308 570 150 570 199 571 200 571 40 571 274 572 275 572 117 572 248 573 247 573 89 573 308 574 309 574 151 574 200 575 201 575 41 575 275 576 276 576 118 576 91 577 249 577 248 577 309 578 310 578 152 578 201 579 202 579 42 579 276 580 277 580 119 580 92 581 250 581 249 581 310 582 311 582 153 582 202 583 203 583 43 583 278 584 279 584 121 584 93 585 251 585 250 585 311 586 312 586 154 586 203 587 204 587 44 587 279 588 280 588 122 588 94 589 252 589 251 589 313 590 314 590 156 590 204 591 205 591 45 591 280 592 281 592 123 592 95 593 253 593 252 593 314 594 315 594 157 594 205 595 206 595 46 595 281 596 282 596 124 596 96 597 254 597 253 597 315 598 316 598 158 598 206 599 207 599 47 599 282 600 283 600 125 600 294 601 293 601 135 601 316 602 317 602 159 602 207 603 208 603 48 603 283 604 284 604 126 604 99 605 257 605 256 605 317 606 318 606 160 606 48 607 208 607 209 607 284 608 272 608 114 608 134 609 292 609 291 609 258 610 257 610 99 610 318 611 319 611 161 611 49 612 209 612 210 612 277 613 231 613 73 613 131 614 289 614 288 614 259 615 258 615 100 615 319 616 307 616 149 616 50 617 210 617 211 617 256 618 278 618 120 618 130 619 288 619 287 619 260 620 259 620 101 620 312 621 194 621 34 621 51 622 211 622 212 622 229 623 166 623 6 623 129 624 287 624 286 624 261 625 260 625 102 625 291 626 313 626 155 626 52 627 212 627 213 627 293 628 292 628 134 628 128 629 286 629 285 629 262 630 261 630 103 630 56 631 216 631 290 631 53 632 213 632 214 632 296 633 295 633 137 633 127 634 285 634 230 634 263 635 262 635 104 635 54 636 214 636 215 636 297 637 296 637 138 637 166 638 167 638 7 638 264 639 263 639 105 639 195 640 198 640 38 640 55 641 215 641 216 641 298 642 297 642 139 642 167 643 168 643 8 643 265 644 264 644 106 644 197 645 196 645 36 645 299 646 298 646 140 646 168 647 169 647 9 647 266 648 265 648 107 648 217 649 197 649 37 649 300 650 299 650 141 650 169 651 170 651 10 651 267 652 266 652 108 652 218 653 217 653 57 653 301 654 300 654 142 654 170 655 171 655 11 655 268 656 267 656 109 656 219 657 218 657 58 657 302 658 301 658 143 658 171 659 172 659 12 659 269 660 268 660 110 660 220 661 219 661 59 661 328 662 327 662 343 662 326 663 344 663 343 663 343 0 342 0 329 0 341 0 340 0 339 0 339 664 338 664 341 664 337 419 336 419 335 419 335 665 334 665 333 665 333 0 332 0 331 0 331 0 330 0 329 0 329 0 328 0 343 0 326 666 343 666 327 666 341 667 338 667 333 667 337 0 335 0 338 0 333 0 331 0 341 0 329 0 342 0 341 0 338 0 335 0 333 0 360 668 359 668 375 668 358 669 376 669 375 669 375 0 374 0 373 0 373 0 372 0 371 0 371 670 370 670 373 670 369 419 368 419 367 419 367 665 366 665 365 665 365 0 364 0 363 0 363 0 362 0 361 0 361 0 360 0 375 0 358 671 375 671 359 671 373 672 370 672 365 672 369 0 367 0 370 0 365 0 363 0 373 0 361 0 375 0 373 0 370 0 367 0 365 0 397 0 396 0 421 0 390 0 415 0 416 0 398 0 397 0 422 0 391 673 416 673 344 673 398 674 423 674 424 674 400 18 399 18 424 18 401 675 400 675 425 675 401 0 426 0 427 0 402 0 427 0 428 0 404 676 403 676 428 676 385 0 384 0 409 0 404 0 429 0 430 0 385 677 410 677 411 677 405 0 430 0 431 0 386 678 411 678 412 678 406 679 431 679 432 679 394 680 393 680 418 680 388 0 387 0 412 0 408 0 407 0 432 0 395 0 394 0 419 0 388 681 413 681 414 681 408 682 433 682 409 682 395 683 420 683 421 683 390 0 389 0 414 0 441 0 440 0 437 0 418 684 393 684 440 684 439 0 438 0 437 0 437 685 436 685 435 685 435 0 434 0 446 0 446 0 445 0 444 0 444 0 443 0 446 0 442 0 441 0 443 0 393 686 439 686 440 686 437 0 435 0 446 0 446 687 443 687 441 687 440 688 439 688 437 688 351 689 456 689 457 689 356 426 451 426 452 426 350 690 457 690 458 690 355 691 452 691 376 691 348 0 349 0 458 0 347 0 348 0 459 0 346 0 347 0 460 0 346 0 461 0 462 0 345 0 462 0 463 0 324 0 325 0 463 0 381 692 417 692 392 692 324 0 464 0 465 0 380 693 392 693 447 693 323 439 465 439 466 439 378 0 379 0 447 0 321 694 322 694 466 694 353 695 354 695 453 695 377 0 378 0 448 0 321 230 467 230 468 230 352 0 353 0 454 0 377 696 449 696 450 696 381 697 320 697 468 697 352 696 455 696 456 696 356 0 357 0 450 0 476 0 475 0 472 0 453 698 354 698 475 698 474 0 473 0 472 0 472 0 471 0 470 0 470 699 469 699 481 699 481 0 480 0 477 0 479 700 478 700 477 700 477 0 476 0 472 0 354 701 474 701 475 701 472 702 470 702 477 702 480 703 479 703 477 703 475 704 474 704 472 704 486 23 503 23 504 23 488 462 489 462 490 462 490 705 491 705 488 705 492 706 493 706 494 706 494 707 495 707 496 707 496 23 497 23 498 23 498 23 499 23 500 23 500 708 501 708 502 708 502 23 503 23 488 23 486 709 487 709 503 709 488 710 491 710 500 710 492 23 494 23 498 23 496 23 498 23 494 23 500 711 502 711 488 711 487 712 488 712 503 712 492 23 498 23 500 23 518 713 535 713 536 713 520 714 521 714 522 714 522 705 523 705 520 705 524 706 525 706 526 706 526 715 527 715 528 715 528 23 529 23 530 23 530 23 531 23 532 23 532 716 533 716 534 716 534 23 535 23 520 23 518 717 519 717 535 717 520 718 523 718 532 718 524 23 526 23 530 23 528 23 530 23 526 23 532 711 534 711 520 711 519 712 520 712 535 712 524 23 530 23 532 23 555 719 580 719 579 719 574 50 573 50 548 50 556 23 581 23 580 23 504 720 574 720 549 720 582 721 581 721 556 721 558 722 583 722 582 722 559 723 584 723 583 723 585 724 584 724 559 724 586 23 585 23 560 23 562 23 587 23 586 23 568 23 567 23 542 23 588 725 587 725 562 725 544 726 569 726 568 726 589 23 588 23 563 23 570 727 569 727 544 727 565 728 590 728 589 728 552 729 577 729 576 729 546 730 571 730 570 730 566 731 591 731 590 731 553 49 578 49 577 49 572 23 571 23 546 23 567 23 591 23 566 23 579 23 578 23 553 23 548 732 573 732 572 732 576 733 598 733 551 733 599 23 600 23 603 23 601 23 602 23 603 23 603 734 604 734 592 734 592 735 593 735 603 735 594 736 595 736 596 736 596 23 597 23 603 23 551 737 598 737 597 737 600 23 601 23 603 23 603 23 593 23 594 23 594 23 596 23 603 23 598 738 603 738 597 738 615 23 614 23 511 23 610 739 609 739 516 739 616 23 615 23 510 23 536 740 610 740 515 740 508 741 617 741 616 741 507 23 618 23 617 23 506 23 619 23 618 23 620 23 619 23 506 23 621 23 620 23 505 23 484 23 622 23 621 23 550 23 575 23 541 23 623 50 622 50 484 50 605 23 550 23 540 23 482 742 624 742 623 742 538 743 606 743 605 743 625 23 624 23 482 23 513 744 612 744 611 744 607 23 606 23 538 23 382 745 626 745 625 745 512 746 613 746 612 746 517 23 608 23 607 23 575 23 626 23 382 23 614 23 613 23 512 23 609 23 608 23 517 23 611 747 633 747 514 747 634 748 635 748 636 748 636 23 637 23 638 23 638 749 639 749 627 749 627 23 628 23 638 23 629 23 630 23 628 23 631 23 632 23 638 23 514 750 633 750 632 750 634 23 636 23 638 23 638 23 628 23 631 23 630 751 631 751 628 751 633 23 634 23 632 23 464 752 622 752 623 752 333 753 493 753 492 753 431 754 589 754 590 754 380 755 540 755 541 755 465 756 623 756 624 756 334 757 494 757 493 757 432 758 590 758 591 758 466 759 624 759 625 759 334 760 335 760 495 760 409 761 433 761 591 761 350 762 349 762 509 762 467 763 625 763 626 763 335 764 336 764 496 764 347 765 346 765 506 765 417 766 468 766 626 766 336 767 337 767 497 767 348 768 347 768 507 768 337 769 338 769 498 769 338 770 339 770 499 770 385 771 543 771 542 771 339 772 340 772 500 772 386 773 544 773 543 773 340 774 341 774 501 774 344 775 416 775 574 775 387 776 545 776 544 776 341 777 342 777 502 777 388 778 546 778 545 778 342 779 343 779 503 779 389 780 547 780 546 780 343 781 344 781 504 781 390 782 548 782 547 782 392 783 417 783 575 783 391 784 549 784 548 784 381 785 541 785 382 785 456 786 614 786 615 786 321 787 320 787 382 787 393 788 394 788 552 788 322 789 321 789 383 789 394 790 395 790 553 790 323 791 322 791 482 791 395 792 396 792 554 792 324 793 323 793 483 793 396 794 397 794 555 794 325 795 324 795 484 795 397 796 398 796 556 796 452 797 451 797 609 797 398 798 399 798 557 798 345 799 325 799 485 799 399 800 400 800 558 800 346 801 345 801 505 801 400 802 401 802 559 802 401 803 402 803 560 803 349 804 348 804 508 804 402 805 403 805 561 805 351 806 350 806 510 806 403 807 404 807 562 807 352 808 351 808 511 808 404 809 405 809 563 809 353 810 352 810 512 810 405 811 406 811 564 811 354 812 353 812 513 812 406 813 407 813 565 813 355 814 515 814 516 814 435 815 593 815 592 815 407 816 408 816 566 816 359 817 519 817 518 817 436 818 594 818 593 818 384 819 542 819 566 819 470 820 628 820 627 820 360 821 520 821 519 821 437 822 595 822 594 822 410 823 409 823 567 823 471 824 629 824 628 824 361 825 521 825 520 825 438 826 596 826 595 826 411 827 410 827 568 827 472 828 630 828 629 828 362 829 522 829 521 829 439 830 597 830 596 830 412 831 411 831 569 831 473 832 631 832 630 832 363 833 523 833 522 833 441 834 599 834 598 834 413 835 412 835 570 835 474 836 632 836 631 836 364 837 524 837 523 837 442 838 600 838 599 838 414 839 413 839 571 839 476 840 634 840 633 840 365 841 525 841 524 841 443 842 601 842 600 842 415 843 414 843 572 843 477 844 635 844 634 844 366 845 526 845 525 845 444 846 602 846 601 846 416 847 415 847 573 847 478 848 636 848 635 848 366 849 367 849 527 849 445 850 603 850 602 850 455 851 613 851 614 851 479 852 637 852 636 852 367 853 368 853 528 853 446 854 604 854 603 854 418 855 576 855 577 855 480 856 638 856 637 856 368 857 369 857 529 857 434 858 592 858 604 858 453 859 611 859 612 859 419 860 577 860 578 860 481 861 639 861 638 861 369 862 370 862 530 862 393 863 551 863 597 863 451 864 450 864 608 864 420 865 578 865 579 865 469 866 627 866 639 866 370 867 371 867 531 867 440 868 598 868 576 868 450 869 449 869 607 869 421 870 579 870 580 870 354 871 514 871 632 871 371 872 372 872 532 872 326 873 486 873 549 873 449 874 448 874 606 874 422 875 580 875 581 875 475 876 633 876 611 876 372 877 373 877 533 877 454 878 612 878 613 878 448 879 447 879 605 879 423 880 581 880 582 880 376 881 452 881 610 881 373 882 374 882 534 882 457 883 615 883 616 883 447 884 392 884 550 884 424 885 582 885 583 885 374 886 375 886 535 886 458 887 616 887 617 887 327 888 487 888 486 888 425 889 583 889 584 889 358 890 518 890 515 890 375 891 376 891 536 891 459 892 617 892 618 892 328 893 488 893 487 893 426 894 584 894 585 894 356 895 516 895 517 895 460 896 618 896 619 896 329 897 489 897 488 897 427 898 585 898 586 898 357 899 517 899 537 899 461 900 619 900 620 900 330 901 490 901 489 901 428 902 586 902 587 902 377 903 537 903 538 903 462 904 620 904 621 904 331 905 491 905 490 905 429 906 587 906 588 906 378 907 538 907 539 907 463 908 621 908 622 908 332 909 492 909 491 909 430 910 588 910 589 910 379 911 539 911 540 911

@@ -83,7 +83,7 @@ - -0.4872915 0.001167275 -0.001704162 -0.03608463 -6.52886e-4 -0.2967522 -0.1222778 0.5328419 -0.003067414 -0.1222718 0.2967505 -0.558305 0 0 0 1 + -0.4872915 0.001167276 -0.001704162 -0.03608463 -6.52886e-4 -0.2967522 -0.1222778 0.5328419 -0.003067415 -0.1222718 0.2967505 -0.558305 0 0 0 1 From 77ee1ebbc008e5d8bf26ca291c0bbf6ade9d3699 Mon Sep 17 00:00:00 2001 From: Kusal Ekanayake Date: Thu, 28 Sep 2017 15:35:58 +1300 Subject: [PATCH 17/26] Fixed faulty tests. --- src/main/java/seng302/visualiser/MapMaker.java | 2 +- src/test/java/seng302/serverDiscovery/ServerTableTest.java | 3 ++- src/test/java/steps/CustomMapsSteps.java | 7 +++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/seng302/visualiser/MapMaker.java b/src/main/java/seng302/visualiser/MapMaker.java index 5bda5b7e..946d36e6 100644 --- a/src/main/java/seng302/visualiser/MapMaker.java +++ b/src/main/java/seng302/visualiser/MapMaker.java @@ -35,7 +35,7 @@ public class MapMaker { private XMLGenerator xmlGenerator = new XMLGenerator(); private List maps = new ArrayList<>( - Arrays.asList("default.xml", "horseshoe.xml", "madagascar.xml", "loop.xml")); + Arrays.asList("default.xml", "horseshoe.xml", "loop.xml", "madagascar.xml")); public static MapMaker getInstance() { if (instance == null) { diff --git a/src/test/java/seng302/serverDiscovery/ServerTableTest.java b/src/test/java/seng302/serverDiscovery/ServerTableTest.java index 320b1ad4..0f3e7cf4 100644 --- a/src/test/java/seng302/serverDiscovery/ServerTableTest.java +++ b/src/test/java/seng302/serverDiscovery/ServerTableTest.java @@ -48,9 +48,10 @@ public class ServerTableTest { serverTable.addServer(listing); + listing.decrementTtl(); listing.decrementTtl(); - Thread.sleep(1000); + Thread.sleep(1500); assertTrue(!serverTable.getAllServers().contains(listing)); } diff --git a/src/test/java/steps/CustomMapsSteps.java b/src/test/java/steps/CustomMapsSteps.java index 42e9314b..c8e5a3ce 100644 --- a/src/test/java/steps/CustomMapsSteps.java +++ b/src/test/java/steps/CustomMapsSteps.java @@ -3,6 +3,9 @@ package steps; import cucumber.api.java.en.Given; import cucumber.api.java.en.Then; import java.io.File; +import java.lang.reflect.Array; +import java.util.Arrays; +import java.util.Comparator; import org.junit.Assert; import seng302.visualiser.MapMaker; @@ -29,11 +32,11 @@ public class CustomMapsSteps { @Then("^all of them can be seen$") public void all_of_them_can_be_seen() throws Throwable { File[] files = new File(this.getClass().getResource("/maps/").getPath()).listFiles(); + Arrays.sort(files); for (File file : files) { if (file.isFile()) { - Assert.assertTrue(file.getAbsolutePath().equals(mapMaker.getCurrentRacePath())); + Assert.assertTrue(file.getAbsolutePath().endsWith(mapMaker.getCurrentRacePath())); mapMaker.next(); - System.out.println(file.getAbsolutePath()); } } } From 7620f0023e340a3993564fbc98d73048ed3d874d Mon Sep 17 00:00:00 2001 From: Haoming Yin Date: Thu, 28 Sep 2017 15:43:35 +1300 Subject: [PATCH 18/26] Removed dead code in MainServerThread tags: #story[1273] --- .../seng302/gameServer/MainServerThread.java | 173 +++--------------- 1 file changed, 30 insertions(+), 143 deletions(-) diff --git a/src/main/java/seng302/gameServer/MainServerThread.java b/src/main/java/seng302/gameServer/MainServerThread.java index e67a9567..1da16205 100644 --- a/src/main/java/seng302/gameServer/MainServerThread.java +++ b/src/main/java/seng302/gameServer/MainServerThread.java @@ -5,7 +5,6 @@ import java.net.ServerSocket; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Random; import java.util.Timer; import java.util.TimerTask; import org.slf4j.Logger; @@ -19,12 +18,6 @@ import seng302.model.stream.xml.parser.RaceXMLData; import seng302.model.stream.xml.parser.RegattaXMLData; import seng302.utilities.GeoUtility; -import java.io.IOException; -import java.net.ServerSocket; -import java.util.ArrayList; -import java.util.Random; -import java.util.Timer; -import java.util.TimerTask; /** * A class describing the overall server, which creates and collects server threads for each client @@ -32,22 +25,30 @@ import java.util.TimerTask; */ public class MainServerThread implements Runnable, ClientConnectionDelegate { - private Logger logger = LoggerFactory.getLogger(MainServerThread.class); - private static final int PORT = 4942; private static final Integer CLIENT_UPDATES_PER_SECOND = 60; - + private Logger logger = LoggerFactory.getLogger(MainServerThread.class); private boolean terminated; - private Thread thread; private boolean hasStarted = false; private ServerSocket serverSocket = null; private ArrayList serverToClientThreads = new ArrayList<>(); - private static Integer capacity; private RaceXMLData raceXMLData; private RegattaXMLData regattaXMLData; - private boolean serverStarted = false; + + public MainServerThread() { + new GameState(); + try { + serverSocket = new ServerSocket(PORT); + } catch (IOException e) { + logger.trace("IO error in server thread handler upon trying to make new server socket", + 0); + } + terminated = false; + Thread thread = new Thread(this, "MainServer"); + thread.start(); + } private void startAdvertisingServer() { Integer capacity = GameState.getCapacity(); @@ -71,19 +72,6 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { } } - public MainServerThread() { - new GameState(); - try { - serverSocket = new ServerSocket(PORT); - } catch (IOException e) { - logger.trace("IO error in server thread handler upon trying to make new server socket", - 0); - } - terminated = false; - thread = new Thread(this, "MainServer"); - thread.start(); - } - private void startServer() { PolarTable.parsePolarFile(getClass().getResourceAsStream("/server_config/acc_polars.csv")); MessageFactory.updateXMLGenerator(raceXMLData, regattaXMLData); @@ -122,7 +110,8 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { } catch (InterruptedException e) { logger.trace("Interrupted exception in Main Server Thread thread sleep", 1); } - if (GameState.getCurrentStage() == GameStages.LOBBYING && GameState.getCustomizationFlag()) { + if (GameState.getCurrentStage() == GameStages.LOBBYING && GameState + .getCustomizationFlag()) { MessageFactory.updateBoats(new ArrayList<>(GameState.getYachts().values())); sendSetupMessages(); GameState.resetCustomizationFlag(); @@ -141,7 +130,8 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { else if (GameState.getCurrentStage() == GameStages.FINISHED) { broadcastMessage(MessageFactory.getRaceStatusMessage()); try { - Thread.sleep(1000); //Hackish fix to make sure all threads have sent closing RaceStatus + Thread.sleep( + 1000); //Hackish fix to make sure all threads have sent closing RaceStatus terminate(); } catch (InterruptedException ie) { logger.trace("Thread interrupted while waiting to terminate clients", 1); @@ -149,7 +139,7 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { } } try { - synchronized (this){ + synchronized (this) { for (ServerToClientThread serverToClientThread : serverToClientThreads) { serverToClientThread.terminate(); } @@ -205,9 +195,8 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { startServer(); } }); - } else { - //serverToClientThread.addConnectionListener(this::sendSetupMessages); } + serverToClientThreads.add(serverToClientThread); try { @@ -216,7 +205,7 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { logger.warn("Couldn't update advertisement"); } - while (regattaXMLData == null && raceXMLData == null){ + while (regattaXMLData == null && raceXMLData == null) { try { Thread.sleep(50); } catch (InterruptedException e) { @@ -242,7 +231,7 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { for (ServerToClientThread serverToClientThread : serverToClientThreads) { if (serverToClientThread.getSocket() == player.getSocket()) { closedConnection = serverToClientThread; - } else if (GameState.getCurrentStage() != GameStages.RACING){ + } else if (GameState.getCurrentStage() != GameStages.RACING) { serverToClientThread.sendSetupMessages(); } } @@ -255,7 +244,9 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { logger.warn("Couldn't update advertisement"); } - closedConnection.terminate(); + if (closedConnection != null) { + closedConnection.terminate(); + } } public void startGame() { @@ -273,16 +264,12 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { public void run() { broadcastMessage(MessageFactory.getRaceStatusMessage()); if (GameState.getCurrentStage() == GameStages.PRE_RACE - || GameState.getCurrentStage() == GameStages.LOBBYING) { + || GameState.getCurrentStage() == GameStages.LOBBYING) { broadcastMessage(MessageFactory.getRaceStartStatusMessage()); } } }, 0, 500); - -// if (GameState.getCurrentStage() == GameStages.LOBBYING) { -// sendSetupMessages(); -// } } public void terminate() { @@ -293,108 +280,6 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { * Initialise boats to specific spaced out geopoints behind starting line. */ private void initialiseBoatPositions() { -// CompoundMark cm = GameState.getMarkOrder().getMarkOrder().get(0); -// GeoPoint startMark1 = cm.getSubMark(1); -// GeoPoint startMark2 = cm.getSubMark(2); -// -// // Calculating midpoint -// Double perpendicularAngle = GeoUtility.getBearing(startMark1, startMark2); -// Double length = GeoUtility.getDistance(startMark1, startMark2); -// GeoPoint midpoint = GeoUtility.getGeoCoordinate(startMark1, perpendicularAngle, length / 2); -// -// // Setting each boats position side by side -// final double SEPARATION = 50.0; // distance apart in meters -// -// int boatIndex = 0; -// for (ServerYacht yacht : GameState.getYachts().values()) { -// int distanceApart = boatIndex / 2; -// -// if (boatIndex % 2 == 1 && boatIndex != 0) { -// distanceApart++; -// distanceApart *= -1; -// } -// -// GeoPoint spawnMark = GeoUtility -// .getGeoCoordinate(midpoint, perpendicularAngle, distanceApart * SEPARATION); -// -// if (yacht.getHeading() < perpendicularAngle) { -// spawnMark = GeoUtility -// .getGeoCoordinate(spawnMark, perpendicularAngle + 90, SEPARATION); -// } else { -// spawnMark = GeoUtility -// .getGeoCoordinate(spawnMark, perpendicularAngle + 270, SEPARATION); -// } -// -// yacht.setLocation(spawnMark); -// boatIndex++; -// } - -// final double SEPARATION = 50.0; // distance apart in meters -// -// //Reverse of the angle from start to first mark -// double angleToFirstMark = 360 - GeoUtility.getBearing( -// GameState.getMarkOrder().getMarkOrder().get(0).getMidPoint(), -// GameState.getMarkOrder().getMarkOrder().get(1).getMidPoint() -// ); -// -// //Length of start line -// double startLineLength = GeoUtility.getDistance( -// GameState.getMarkOrder().getMarkOrder().get(0).getSubMark(1), -// GameState.getMarkOrder().getMarkOrder().get(0).getSubMark(2) -// ); -// -// //Angle of start line -// double startMarkToMarkAngle = GeoUtility.getBearing( -// GameState.getMarkOrder().getMarkOrder().get(0).getSubMark(1), -// GameState.getMarkOrder().getMarkOrder().get(0).getSubMark(2) -// ); -// -// //How many yachts can fit along the start line -// int spacesAlongLine = (int) Math.round(startLineLength / SEPARATION); -// //The free space left by the boats. -// double buffer = (startLineLength % SEPARATION) / 2; -// -// //Randomize starting order. -// List serverYachtList = new ArrayList<>(GameState.getYachts().values()); -// Collections.shuffle(serverYachtList); -// -// //set the starting point away from start line. -// GeoPoint startingPoint = GeoUtility.getGeoCoordinate( -// GameState.getMarkOrder().getMarkOrder().get(0).getSubMark(1), -// angleToFirstMark, SEPARATION -// ); -// -// //Move it along the start line -// startingPoint = GeoUtility.getGeoCoordinate( -// startingPoint, startMarkToMarkAngle, buffer -// ); -// -// int yachtCount = 0; -// int repeats = 0; -// -// GeoPoint yachtLocation; -// -// for (ServerYacht serverYacht : serverYachtList) { -// -// //Move away from start line -// yachtLocation = GeoUtility.getGeoCoordinate( -// startingPoint, angleToFirstMark,repeats * SEPARATION -// ); -// //Move along start line -// yachtLocation = GeoUtility.getGeoCoordinate( -// yachtLocation, startMarkToMarkAngle, yachtCount * SEPARATION -// ); -// serverYacht.setLocation(yachtLocation); -// serverYacht.setHeading(GeoUtility.getBearing( -// yachtLocation, GameState.getMarkOrder().getMarkOrder().get(1).getMidPoint() -// )); -// //Set location for next yacht -// yachtCount++; -// if (yachtCount > spacesAlongLine) { -// yachtCount = 0; -// repeats++; -// } -// } final double DISTANCE_TO_START = 75d; final double YACHT_SEPARATION = 20d; @@ -434,14 +319,16 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { Collections.shuffle(randomisedYachts); while (randomisedYachts.size() > 0) { - int numYachtsInLine = spacesAlongLine > randomisedYachts.size() ? randomisedYachts.size() : spacesAlongLine; + int numYachtsInLine = + spacesAlongLine > randomisedYachts.size() ? randomisedYachts.size() + : spacesAlongLine; double yachtSpace = numYachtsInLine * YACHT_SEPARATION / 2; GeoPoint firstYachtPoint = GeoUtility.getGeoCoordinate( startingPoint, startMarkToMarkAngle + 180, yachtSpace ); - for (int i=0; i Date: Thu, 28 Sep 2017 15:54:09 +1300 Subject: [PATCH 19/26] Removed dead code in MeesageFactory and redundant classes tags: #story[1273] --- .../seng302/gameServer/MessageFactory.java | 7 - .../visualiser/ClientToServerThread.java | 11 +- .../java/seng302/visualiser/MapMaker.java | 4 - .../seng302/visualiser/ServerListener.java | 27 +- .../controllers/SplashScreenController.java | 18 +- .../fxObjects/assets_2D/AnnotationBox.java | 230 ------------------ .../visualiser/fxObjects/assets_2D/Wake.java | 32 --- .../fxObjects/assets_2D/WindArrow.java | 25 -- .../java/seng302/visualiser/map/Boundary.java | 44 ---- .../seng302/visualiser/map/CanvasMap.java | 103 -------- .../visualiser/map/MercatorProjection.java | 55 ----- .../visualiser/map/TestMapController.java | 22 -- .../map/MercatorProjectionTest.java | 43 ---- 13 files changed, 19 insertions(+), 602 deletions(-) delete mode 100644 src/main/java/seng302/visualiser/fxObjects/assets_2D/AnnotationBox.java delete mode 100644 src/main/java/seng302/visualiser/fxObjects/assets_2D/WindArrow.java delete mode 100644 src/main/java/seng302/visualiser/map/Boundary.java delete mode 100644 src/main/java/seng302/visualiser/map/CanvasMap.java delete mode 100644 src/main/java/seng302/visualiser/map/MercatorProjection.java delete mode 100644 src/main/java/seng302/visualiser/map/TestMapController.java delete mode 100644 src/test/java/seng302/visualiser/map/MercatorProjectionTest.java diff --git a/src/main/java/seng302/gameServer/MessageFactory.java b/src/main/java/seng302/gameServer/MessageFactory.java index 03840c4c..b164dbf8 100644 --- a/src/main/java/seng302/gameServer/MessageFactory.java +++ b/src/main/java/seng302/gameServer/MessageFactory.java @@ -1,6 +1,5 @@ package seng302.gameServer; -import seng302.gameServer.messages.*; import java.util.ArrayList; import java.util.List; import seng302.gameServer.messages.BoatLocationMessage; @@ -25,9 +24,6 @@ import seng302.model.token.Token; import seng302.model.token.TokenType; import seng302.utilities.XMLGenerator; -import java.util.ArrayList; -import java.util.List; - /** * A Class for interfacing between the data we have in the GameState to the messages we need to send * through the MainServerThread. @@ -77,9 +73,6 @@ public class MessageFactory { } public static void updateBoats(List yachts) { -// for (ServerYacht serverYacht : yachts) { -// System.out.println(serverYacht); -// } xmlGenerator.getRace().setBoats(yachts); String xmlStr = xmlGenerator.getBoatsAsXml(); MessageFactory.boats = new XMLMessage(xmlStr, XMLMessageSubType.BOAT, xmlStr.length()); diff --git a/src/main/java/seng302/visualiser/ClientToServerThread.java b/src/main/java/seng302/visualiser/ClientToServerThread.java index b4840004..ceae1b09 100644 --- a/src/main/java/seng302/visualiser/ClientToServerThread.java +++ b/src/main/java/seng302/visualiser/ClientToServerThread.java @@ -1,14 +1,5 @@ package seng302.visualiser; -import javafx.application.Platform; -import javafx.util.Pair; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import seng302.gameServer.messages.*; -import seng302.model.stream.packets.PacketType; -import seng302.model.stream.packets.StreamPacket; -import seng302.utilities.XMLParser; - import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; @@ -43,7 +34,7 @@ import seng302.model.stream.xml.generator.RaceXMLTemplate; import seng302.model.stream.xml.generator.RegattaXMLTemplate; import seng302.utilities.XMLGenerator; import seng302.utilities.XMLParser; -import seng302.visualiser.controllers.ViewManager; + /** * A class describing a single connection to a Server for the purposes of sending and receiving on diff --git a/src/main/java/seng302/visualiser/MapMaker.java b/src/main/java/seng302/visualiser/MapMaker.java index 946d36e6..051379cc 100644 --- a/src/main/java/seng302/visualiser/MapMaker.java +++ b/src/main/java/seng302/visualiser/MapMaker.java @@ -108,10 +108,6 @@ public class MapMaker { return mapPreviews.get(index).getAssets(); } - public RaceXMLData getCurrentRace() { - return races.get(index); - } - public RegattaXMLData getCurrentRegatta() { return regattas.get(index); } diff --git a/src/main/java/seng302/visualiser/ServerListener.java b/src/main/java/seng302/visualiser/ServerListener.java index b6c31141..32938edd 100644 --- a/src/main/java/seng302/visualiser/ServerListener.java +++ b/src/main/java/seng302/visualiser/ServerListener.java @@ -1,17 +1,17 @@ package seng302.visualiser; -import seng302.gameServer.ServerAdvertiser; -import seng302.gameServer.ServerDescription; +import static seng302.gameServer.ServerAdvertiser.getLocalHostIp; +import java.io.IOException; +import java.net.InetAddress; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Set; import javax.jmdns.JmDNS; import javax.jmdns.ServiceEvent; import javax.jmdns.ServiceListener; -import javax.jmdns.impl.JmDNSImpl; -import java.io.IOException; -import java.net.InetAddress; -import java.util.*; - -import static seng302.gameServer.ServerAdvertiser.getLocalHostIp; +import seng302.gameServer.ServerAdvertiser; +import seng302.gameServer.ServerDescription; /** * Listens for servers on the local network @@ -58,7 +58,7 @@ public class ServerListener{ servers.remove(toRemove); } - delegate.serverRemoved(new ArrayList(servers)); + delegate.serverRemoved(new ArrayList<>(servers)); // Get all other servers with the same name to respond if they are up jmdns.requestServiceInfo(ServerAdvertiser.SERVICE_TYPE, serverName); @@ -94,13 +94,6 @@ public class ServerListener{ listener = new GameServeMonitor(); jmdns.addServiceListener(ServerAdvertiser.SERVICE_TYPE, listener); - - /*new Timer().schedule(new TimerTask() { - @Override - public void run() { - refresh(); - } - }, 50, SERVICE_REFRESH_INTERVAL);*/ } public static ServerListener getInstance() throws IOException { @@ -134,7 +127,7 @@ public class ServerListener{ for (ServerDescription server : servers){ if (server.serverShouldBeRemoved()){ listener.servers.remove(server); - delegate.serverRemoved(new ArrayList(listener.servers)); + delegate.serverRemoved(new ArrayList<>(listener.servers)); } } diff --git a/src/main/java/seng302/visualiser/controllers/SplashScreenController.java b/src/main/java/seng302/visualiser/controllers/SplashScreenController.java index 68082869..5c392a6e 100644 --- a/src/main/java/seng302/visualiser/controllers/SplashScreenController.java +++ b/src/main/java/seng302/visualiser/controllers/SplashScreenController.java @@ -9,6 +9,7 @@ import javafx.scene.layout.StackPane; import javafx.stage.Stage; /** + * The pre loading screen before launch the start view * Created by Kusal on 26-Sep-17. */ public class SplashScreenController implements Initializable{ @@ -26,17 +27,14 @@ public class SplashScreenController implements Initializable{ public void run(){ try { Thread.sleep(3000); - Platform.runLater(new Runnable() { - @Override - public void run() { - try { - Stage stage = new Stage(); - ViewManager.getInstance().initialStartView(stage); - } catch (Exception e) { - e.printStackTrace(); - } - rootPane.getScene().getWindow().hide(); + Platform.runLater(() -> { + try { + Stage stage = new Stage(); + ViewManager.getInstance().initialStartView(stage); + } catch (Exception e) { + e.printStackTrace(); } + rootPane.getScene().getWindow().hide(); }); } catch (InterruptedException e) { e.printStackTrace(); diff --git a/src/main/java/seng302/visualiser/fxObjects/assets_2D/AnnotationBox.java b/src/main/java/seng302/visualiser/fxObjects/assets_2D/AnnotationBox.java deleted file mode 100644 index 994430e3..00000000 --- a/src/main/java/seng302/visualiser/fxObjects/assets_2D/AnnotationBox.java +++ /dev/null @@ -1,230 +0,0 @@ -package seng302.visualiser.fxObjects.assets_2D; - -import java.util.HashMap; -import java.util.Map; -import javafx.application.Platform; -import javafx.beans.value.ObservableValue; -import javafx.scene.CacheHint; -import javafx.scene.Group; -import javafx.scene.paint.Color; -import javafx.scene.paint.Paint; -import javafx.scene.shape.Rectangle; -import javafx.scene.text.Text; - -/** - * Grouping of string objects over a semi transparent background. - */ -public class AnnotationBox extends Group { - - @FunctionalInterface - public interface AnnotationFormatter { - String transformString (T input); - } - - /** - * Class stores a text object and relationship for updating the text object if needed - * - * @param The type of observable value passed to the annotation, if there is one. - */ - public class Annotation { - private Text text; - private ObservableValue source; - private AnnotationFormatter format; - - /** - * Constructor for observing annotation - * @param textObject the javaFX text object the annotation is displayed in - * @param source observable value that the annotation is taken from - * @param formatter interface describing how to format the source data if needed - */ - public Annotation (Text textObject, ObservableValue source, AnnotationFormatter formatter) { - this.text = textObject; - this.source = source; - this.format = formatter; - source.addListener((obs, oldVal, newVal) -> - Platform.runLater(() -> text.setText(format.transformString(newVal))) - ); - } - - /** - * Constructor for a static annotation - * @param textObject the javaFX text object the annotation is displayed in - * @param annotationText the static value of the test object - */ - public Annotation (Text textObject, String annotationText) { - textObject.setText(annotationText); - text = textObject; - } - - private Text getText () { - return text; - } - } - - //Text offset constants - private static final double X_OFFSET_TEXT = 20d; - private static final double Y_OFFSET_TEXT_INIT = -35d; - private static final double Y_OFFSET_PER_TEXT = 12d; - //Background constants - private static final double TEXT_BUFFER = 3; - private static final double BACKGROUND_X = X_OFFSET_TEXT - TEXT_BUFFER; - private static final double BACKGROUND_Y = Y_OFFSET_TEXT_INIT - TEXT_BUFFER; - private static final double BACKGROUND_H_PER_TEXT = 9.5d; - private static final double BACKGROUND_ARC_SIZE = 10; - - private int visibleAnnotations = 0; - private double backgroundWidth = 145d; - - private Rectangle background = new Rectangle(); - private Paint theme = Color.BLACK; - - private Map annotationsByName = new HashMap<>(); - - /** - * Creates an empty annotation box. The box is offset from (0,0) by (17, -38). - */ - public AnnotationBox() { - this.setCache(true); - background.setX(BACKGROUND_X); - background.setY(BACKGROUND_Y); - background.setWidth(backgroundWidth); - background.setHeight(Math.abs(BACKGROUND_X) + TEXT_BUFFER + BACKGROUND_H_PER_TEXT * 4); - background.setArcHeight(BACKGROUND_ARC_SIZE); - background.setArcWidth(BACKGROUND_ARC_SIZE); - background.setFill(new Color(1, 1, 1, 0.75)); - background.setStroke(theme); - background.setStrokeWidth(2); - background.setCache(true); - background.setCacheHint(CacheHint.SCALE); - this.getChildren().add(background); - } - - /** - * Adds an annotation to the box. Use the name to reference the annotation for removal or\ - * changing visibility. - * @param annotationName the name of the annotation. - * @param annotation the annotation. - */ - public void addAnnotation (String annotationName, Annotation annotation) { - annotationsByName.put(annotationName, annotation); - Platform.runLater(() -> { - this.getChildren().add(annotation.getText()); - visibleAnnotations++; - update(); - }); - } - - /** - * Adds an annotation with a constant text. - * @param annotationName The name of the annotation. Will be used to reference it later. - * @param annotationText The desired text. - */ - public void addAnnotation (String annotationName, String annotationText) { - Text text = getTextObject(); - addAnnotation(annotationName, new Annotation(text, annotationText)); - } - - /** - * Adds an annotation with the given name. The annotation will contain the value of the given - * ObservableValue. The formatter should return a String and takes an object of the same type as - * the ObservableValue as a parameter. The String is how you want the annotation to look. - * @param annotationName The annotation name. - * @param observable The observable value the annotation will display. - * @param formatter A formatting function for the observable value. - * @param The type of ObservableValue. - */ - public void addAnnotation (String annotationName, ObservableValue observable, - AnnotationFormatter formatter) { - Text newText = getTextObject(); - addAnnotation(annotationName, new Annotation<>(newText, observable, formatter)); - } - - /** - * Sets the visibility of the annotation with the given name if it exists. - * @param annotationName The name of the annotation - * @param visibility the desired visibility - */ - public void setAnnotationVisibility (String annotationName, boolean visibility) { - if (annotationsByName.containsKey(annotationName)) { - Text textField = annotationsByName.get(annotationName).text; - boolean currentState = textField.visibleProperty().get(); - if (visibility != currentState) { - if (visibility) - visibleAnnotations++; - else - visibleAnnotations--; - } - textField.setVisible(visibility); - update(); - } - } - - /** - * Removes the annotation with the given name if it exits. - * @param annotationName The name given when the annotation was created. - */ - public void removeAnnotation (String annotationName) { - if (annotationName.contains(annotationName)) { - Platform.runLater(() -> { - this.getChildren().remove(annotationsByName.remove(annotationName).getText()); - visibleAnnotations--; - update(); - }); - annotationsByName.remove(annotationName); - } - } - - /** - * Moves the annotation. - * @param x x location - * @param y y location - */ - public void setLocation (double x, double y) { - Platform.runLater(()-> this.relocate(x + BACKGROUND_X, y + BACKGROUND_Y)); - } - - /** - * Changes the width of the annotation box. Default is 145. - * @param width new width. - */ - public void setWidth (double width) { - backgroundWidth = width; - Platform.runLater(() -> background.setWidth(backgroundWidth)); - } - - private void update () { - background.setVisible(visibleAnnotations != 0); - background.setHeight(Math.abs(BACKGROUND_X) + TEXT_BUFFER + BACKGROUND_H_PER_TEXT * visibleAnnotations); - for (int i = 1; i <= visibleAnnotations; i++) { - Text text = (Text) this.getChildren().get(i); - if (text.visibleProperty().get()) { - text.setX(X_OFFSET_TEXT); - text.setY(Y_OFFSET_TEXT_INIT + Y_OFFSET_PER_TEXT * i); -// }); - } - } - } - - /** - * Returns a text object for an annotation. - * @return The text object - */ - private Text getTextObject() { - Text text = new Text(); - text.setFill(theme); - text.setStrokeWidth(2); -// text.setCacheHint(CacheHint.QUALITY); - text.setCache(true); - return text; - } - - /** - * Set the colour of the annotation box's border and text colour. - * @param value desired colour. - */ - public void setFill (Paint value) { - theme = value; - background.setStroke(theme); - annotationsByName.forEach((name, annotation) -> annotation.getText().setFill(theme)); - } -} diff --git a/src/main/java/seng302/visualiser/fxObjects/assets_2D/Wake.java b/src/main/java/seng302/visualiser/fxObjects/assets_2D/Wake.java index 58cd1718..0e164305 100644 --- a/src/main/java/seng302/visualiser/fxObjects/assets_2D/Wake.java +++ b/src/main/java/seng302/visualiser/fxObjects/assets_2D/Wake.java @@ -16,10 +16,6 @@ public class Wake extends Group { //The number of wakes private int numWakes = 8; - //The total possible difference between the first wake and the last. Increasing/Decreasing this will make wakes fan out more/less. - private final double MAX_DIFF = 75; - //Increasing/decreasing this will alter the speed that wakes converge when the heading stop changing. Anything over about 1500 may cause oscillation. - private final int UNIFICATION_SPEED = 45; private Arc[] arcs = new Arc[numWakes]; @@ -69,34 +65,6 @@ public class Wake extends Group { rad += (14 / numWakes) + (velocity / 2.5); } }); -// } else { -// rotations[0] = rotation; -// ((Rotate) arcs[0].getTransforms().get(0)).setAngle(rotation); -// for (int i = 1; i < numWakes; i++) { -// double wakeSeparationRad = Math.toRadians(rotations[i - 1] - rotations[i]); -// double shortestDistance = Math.atan2( -// Math.sin(wakeSeparationRad), -// Math.cos(wakeSeparationRad) -// ); -// double distDeg = Math.toDegrees(shortestDistance); -// if (rotationalVelocities[i - 1] < 0.01 && rotationalVelocities[i - 1] > -0.01) { -// rotationalVelocities[i] = distDeg / UNIFICATION_SPEED * 2 * Math.log(Math.abs(distDeg) + 1) / Math.log(MAX_DIFF / numWakes); -// -// } else { -// if (distDeg < (MAX_DIFF / numWakes)) { -// rotationalVelocities[i] = distDeg / UNIFICATION_SPEED * Math.log(Math.abs(distDeg) + 1) / Math.log(MAX_DIFF / numWakes); -// } else -// rotationalVelocities[i] = rotationalVelocities[i - 1]; -// } -// } -// } - -// double rad = (14 / numWakes) + velocity; -// for (Arc arc : arcs) { -// arc.setRadiusX(rad); -// arc.setRadiusY(rad); -// rad += (14 / numWakes) + (velocity / 2.5); -// } } /** diff --git a/src/main/java/seng302/visualiser/fxObjects/assets_2D/WindArrow.java b/src/main/java/seng302/visualiser/fxObjects/assets_2D/WindArrow.java deleted file mode 100644 index e77ced81..00000000 --- a/src/main/java/seng302/visualiser/fxObjects/assets_2D/WindArrow.java +++ /dev/null @@ -1,25 +0,0 @@ -package seng302.visualiser.fxObjects.assets_2D; - -import javafx.scene.paint.Paint; -import javafx.scene.shape.Polyline; -import javafx.scene.shape.StrokeLineCap; -import javafx.scene.shape.StrokeLineJoin; - -/** - * Created by cir27 on 5/09/17. - */ -public class WindArrow extends Polyline { - public WindArrow(Paint fill) { - this.getPoints().addAll( - -10d, 15d, - 0d, 25d, - 0d, -25d, - 0d, 25d, - 10d, 15d - ); - this.setStrokeLineCap(StrokeLineCap.ROUND); - this.setStroke(fill); - this.setStrokeWidth(5); - this.setStrokeLineJoin(StrokeLineJoin.ROUND); - } -} diff --git a/src/main/java/seng302/visualiser/map/Boundary.java b/src/main/java/seng302/visualiser/map/Boundary.java deleted file mode 100644 index 21f2661d..00000000 --- a/src/main/java/seng302/visualiser/map/Boundary.java +++ /dev/null @@ -1,44 +0,0 @@ -package seng302.visualiser.map; - -/** - * The Boundary class represents a rectangle territorial boundary on a map. It - * contains four extremity double values(N, E, S, W). N and S are represented as - * latitudes in radians. E and W are represented as longitudes in radians. - * - * Created by Haoming on 10/5/17 - */ -public class Boundary { - - private double northLat, eastLng, southLat, westLng; - - public Boundary(double northLat, double eastLng, double southLat, double westLng) { - this.northLat = northLat; - this.eastLng = eastLng; - this.southLat = southLat; - this.westLng = westLng; - } - - double getCentreLat() { - return (northLat + southLat) / 2; - } - - double getCentreLng() { - return (eastLng + westLng) / 2; - } - - double getNorthLat() { - return northLat; - } - - double getEastLng() { - return eastLng; - } - - double getSouthLat() { - return southLat; - } - - double getWestLng() { - return westLng; - } -} diff --git a/src/main/java/seng302/visualiser/map/CanvasMap.java b/src/main/java/seng302/visualiser/map/CanvasMap.java deleted file mode 100644 index e79805e4..00000000 --- a/src/main/java/seng302/visualiser/map/CanvasMap.java +++ /dev/null @@ -1,103 +0,0 @@ -package seng302.visualiser.map; - -import java.net.URL; -import javafx.geometry.Point2D; -import javafx.scene.image.Image; -import javax.net.ssl.HttpsURLConnection; -import seng302.model.GeoPoint; - -/** - * CanvasMap retrieves a map image with given geo boundary from Google Map server. - * By passing a rectangle like geo boundary, it returns a map image with the - * highest resolution. However, due to free quote account usage limit, the maximum - * resolution is only 1280 * 1280. - * - * Created by Haoming on 15/5/2017 - */ -public class CanvasMap { - - private Boundary boundary; - private long width, height; // desired image size - private int zoom; - - private String KEY = "AIzaSyC-5oOShMCY5Oy_9L7guYMPUPFHDMr37wE"; - - public CanvasMap(Boundary boundary) { - this.boundary = boundary; - calculateOptimalMapSize(); - } - - public Image getMapImage() { - try { - URL url = new URL(getRequest()); - HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); - - return new Image(connection.getInputStream()); - } catch (Exception e) { - System.out.println("[CanvasMap] Exception"); - return null; - } - } - - private String getRequest() { - StringBuilder sb = new StringBuilder(); - sb.append("https://maps.googleapis.com/maps/api/staticmap?"); - sb.append(String.format("center=%f,%f", boundary.getCentreLat(), boundary.getCentreLng())); - sb.append(String.format("&zoom=%d", zoom)); - sb.append(String.format("&size=%dx%d&scale=2", width, height)); - sb.append("&style=feature:all|element:labels|visibility:off"); // hide all labels on map -// sb.append(String.format("&markers=%f,%f", boundary.getSouthLat(), boundary.getWestLng())); -// sb.append(String.format("&key=%s", KEY)); - return sb.toString(); - } - - private void calculateOptimalMapSize() { - for (int z = 20; z > 0; z--) { - MapSize mapSize = getMapSize(z, boundary); - zoom = z; - width = mapSize.width; - height = mapSize.height; - // if map size is valid, exit the loop as we have the highest resolution - if (mapSize.isValid()) break; - } - } - - private MapSize getMapSize(int zoom, Boundary boundary) { - double scale = Math.pow(2, zoom); - GeoPoint geoSW = new GeoPoint(boundary.getSouthLat(), boundary.getWestLng()); - GeoPoint geoNE = new GeoPoint(boundary.getNorthLat(), boundary.getEastLng()); - Point2D pointSW = MercatorProjection.toMapPoint(geoSW); - Point2D pointNE = MercatorProjection.toMapPoint(geoNE); - return new MapSize(Math.abs(pointNE.getX() - pointSW.getX()) * scale, - Math.abs(pointNE.getY() - pointSW.getY()) * scale); - } - - class MapSize { - long width, height; - - MapSize(double width, double height) { - this.width = Math.round(width); - this.height = Math.round(height); - } - - /** - * Map size is valid when width and height are both less than 640 pixels - * @return true if both dimensions are less than 640px - */ - boolean isValid() { - return Math.max(width, height) <= 640; - } - } - - public long getWidth() { - return width; - } - - public long getHeight() { - return height; - } - - public int getZoom() { - return zoom; - } -} diff --git a/src/main/java/seng302/visualiser/map/MercatorProjection.java b/src/main/java/seng302/visualiser/map/MercatorProjection.java deleted file mode 100644 index 5a7f7741..00000000 --- a/src/main/java/seng302/visualiser/map/MercatorProjection.java +++ /dev/null @@ -1,55 +0,0 @@ -package seng302.visualiser.map; - -import javafx.geometry.Point2D; -import seng302.model.GeoPoint; - -/** - * An utility class useful to convert between Geo locations and Mercator projection - * planar coordinates. - * Created by Haoming on 15/5/2017 - */ -public class MercatorProjection { - - private static final double MERCATOR_RANGE = 256; - private static final double pixelsPerLngDegree = MERCATOR_RANGE / 360.0; - private static final double pixelsPerLngRadian = MERCATOR_RANGE / (2 * Math.PI); - - /** - * A help function keeps the value in bound between -0.9999 and 0.9999. - * @param value in bound value - * @return the value in bound - */ - private static double bound(double value) { - return Math.min(Math.max(value, -0.9999), 0.9999); - } - - /** - * Projects a Geo Location (lat, lng) on a planar - * @param geo GeoPoint (lat, lng) location to be projected - * @return the projection Point2D (x, y) on planar - */ - public static Point2D toMapPoint(GeoPoint geo) { - double x, y; - Point2D origin = new Point2D(MERCATOR_RANGE / 2.0, MERCATOR_RANGE / 2.0); - x = (origin.getX() + geo.getLng() * pixelsPerLngDegree); - -// NOTE(appleton): Truncating to 0.9999 effectively limits latitude to -// 89.189. This is about a third of a tile past the edge of the world tile. - double sinY = bound(Math.sin(Math.toRadians(geo.getLat()))); - y = origin.getY() + 0.5 * Math.log((1 + sinY) / (1 - sinY)) * (-pixelsPerLngRadian); - return new Point2D(x, y); - } - - /** - * Converts the planar projection (x, y) back to Geo Location (lat, lng) - * @param point Point2D (x, y) to be converted back - * @return the original Geo location converted from the given projection point - */ - public static GeoPoint toMapGeo(Point2D point) { - Point2D origin = new Point2D(MERCATOR_RANGE / 2.0, MERCATOR_RANGE / 2.0); - double lng = (point.getX() - origin.getX()) / pixelsPerLngDegree; - double latRadians = (point.getY() - origin.getY()) / (-pixelsPerLngRadian); - double lat = Math.toDegrees(2 * Math.atan(Math.exp(latRadians)) - Math.PI / 2.0); - return new GeoPoint(lat, lng); - } -} diff --git a/src/main/java/seng302/visualiser/map/TestMapController.java b/src/main/java/seng302/visualiser/map/TestMapController.java deleted file mode 100644 index cd0b4c60..00000000 --- a/src/main/java/seng302/visualiser/map/TestMapController.java +++ /dev/null @@ -1,22 +0,0 @@ -package seng302.visualiser.map; - -import java.net.URL; -import java.util.ResourceBundle; -import javafx.fxml.FXML; -import javafx.fxml.Initializable; -import javafx.scene.canvas.Canvas; -import javafx.scene.canvas.GraphicsContext; - -public class TestMapController implements Initializable{ - - @FXML - private Canvas mapCanvas; - - @Override - public void initialize(URL location, ResourceBundle resources) { - GraphicsContext gc = mapCanvas.getGraphicsContext2D(); - Boundary bound = new Boundary(57.662943, 11.848501, 57.673945, 11.824966); - CanvasMap canvasMap = new CanvasMap(bound); - gc.drawImage(canvasMap.getMapImage(), 0, 0, canvasMap.getWidth(), canvasMap.getHeight()); - } -} diff --git a/src/test/java/seng302/visualiser/map/MercatorProjectionTest.java b/src/test/java/seng302/visualiser/map/MercatorProjectionTest.java deleted file mode 100644 index 03dcaccd..00000000 --- a/src/test/java/seng302/visualiser/map/MercatorProjectionTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package seng302.visualiser.map; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import seng302.model.GeoPoint; - -/** - * Unit test for Mercator Project class. - * Created by hyi25 on 15/05/17. - */ -public class MercatorProjectionTest { - @Test - public void toMapPoint() throws Exception { - GeoPoint geo1 = new GeoPoint(12.485394, 19.38947); - javafx.geometry.Point2D actualPoint1 = MercatorProjection.toMapPoint(geo1); - javafx.geometry.Point2D expectedPoint1 = new javafx.geometry.Point2D(141.78806755555556, 119.0503853635612); - assertEquals(expectedPoint1.getX(), actualPoint1.getX(), 0.0001); - assertEquals(expectedPoint1.getY(), actualPoint1.getY(), 0.0001); - - GeoPoint geo2 = new GeoPoint(77.456432, -23.456462); - javafx.geometry.Point2D actualPoint2 = MercatorProjection.toMapPoint(geo2); - javafx.geometry.Point2D expectedPoint2 = new javafx.geometry.Point2D(111.31984924444444, 38.03143323746788); - assertEquals(expectedPoint2.getX(), actualPoint2.getX(), 0.0001); - assertEquals(expectedPoint2.getY(), actualPoint2.getY(), 0.0001); - } - - @Test - public void toMapGeo() throws Exception { - javafx.geometry.Point2D point1 = new javafx.geometry.Point2D(123.1234, 25.4565); - GeoPoint actualGeo1 = MercatorProjection.toMapGeo(point1); - GeoPoint expectedGeo1 = new GeoPoint(80.77043127275441, -6.857718749999995); - assertEquals(expectedGeo1.getLat(), actualGeo1.getLat(), 0.0001); - assertEquals(expectedGeo1.getLng(), actualGeo1.getLng(), 0.0001); - - javafx.geometry.Point2D point2 = new javafx.geometry.Point2D(1.235, 255.4565); - GeoPoint actualGeo2 = MercatorProjection.toMapGeo(point2); - GeoPoint expectedGeo2 = new GeoPoint(-84.98475532898011, -178.26328125); - assertEquals(expectedGeo2.getLat(), actualGeo2.getLat(), 0.0001); - assertEquals(expectedGeo2.getLng(), actualGeo2.getLng(), 0.0001); - } - -} \ No newline at end of file From a05a41d5ecbce9037a2f2ca0cded082a2eedb670 Mon Sep 17 00:00:00 2001 From: Michael Rausch Date: Thu, 28 Sep 2017 15:57:59 +1300 Subject: [PATCH 20/26] Added port number randomization - Servers all run on different ports, so multiple servers can run on one host - Port is displayed in lobby Tags: #story[1281] --- .../DiscoveryServerClient.java | 2 +- .../seng302/gameServer/MainServerThread.java | 12 +- .../java/seng302/visualiser/GameClient.java | 6 +- .../controllers/LobbyController.java | 8 ++ .../dialogs/ServerCreationController.java | 2 +- src/main/resources/views/LobbyView.fxml | 114 +++++++----------- .../DisconnectionTest.java | 2 +- .../RegularPacketsTest.java | 2 +- src/test/java/steps/SendChatSteps.java | 4 +- src/test/java/steps/ToggleSailSteps.java | 2 +- 10 files changed, 75 insertions(+), 79 deletions(-) diff --git a/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java b/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java index 4454d25c..80521951 100644 --- a/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java +++ b/src/main/java/seng302/discoveryServer/DiscoveryServerClient.java @@ -19,7 +19,7 @@ import java.util.Timer; import java.util.TimerTask; public class DiscoveryServerClient { - private final Integer UPDATE_INTERVAL_MS = 700; + private final Integer UPDATE_INTERVAL_MS = 1000; private static String roomCode = null; private Timer serverListingUpdateTimer; diff --git a/src/main/java/seng302/gameServer/MainServerThread.java b/src/main/java/seng302/gameServer/MainServerThread.java index e67a9567..b8afa377 100644 --- a/src/main/java/seng302/gameServer/MainServerThread.java +++ b/src/main/java/seng302/gameServer/MainServerThread.java @@ -35,6 +35,7 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { private Logger logger = LoggerFactory.getLogger(MainServerThread.class); private static final int PORT = 4942; + private static int selectedPort = PORT; private static final Integer CLIENT_UPDATES_PER_SECOND = 60; private boolean terminated; @@ -65,7 +66,7 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { .setMapName(regattaXMLData.getCourseName()) .setCapacity(capacity) .setNumberOfPlayers(numPlayers - 1) - .registerGame(PORT, regattaXMLData.getRegattaName()); + .registerGame(selectedPort, regattaXMLData.getRegattaName()); } catch (IOException e) { logger.warn("Could not register server"); } @@ -74,7 +75,10 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { public MainServerThread() { new GameState(); try { - serverSocket = new ServerSocket(PORT); + serverSocket = new ServerSocket(0); + selectedPort = serverSocket.getLocalPort(); + System.out.println("selectedPort = " + selectedPort); + } catch (IOException e) { logger.trace("IO error in server thread handler upon trying to make new server socket", 0); @@ -459,4 +463,8 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { public boolean hasStarted() { return hasStarted; } + + public int getPortNumber() { + return selectedPort; + } } diff --git a/src/main/java/seng302/visualiser/GameClient.java b/src/main/java/seng302/visualiser/GameClient.java index 63df3d27..95ff2ea1 100644 --- a/src/main/java/seng302/visualiser/GameClient.java +++ b/src/main/java/seng302/visualiser/GameClient.java @@ -165,7 +165,7 @@ public class GameClient { } try { - startClientToServerThread(ipAddress, 4942); + startClientToServerThread(ipAddress, server.getPortNumber()); } catch (IOException e) { showConnectionError("Cannot connect to server as host"); } @@ -199,8 +199,10 @@ public class GameClient { this.lobbyController = ViewManager.getInstance().goToLobby(false); + lobbyController.setPortNumber(""+server.getPortNumber()); + ViewManager.getInstance().setPlayerList(clientLobbyList); - return new ServerDescription(serverName, regattaData.getCourseName(), GameState.getNumberOfPlayers(), GameState.getCapacity(), ipAddress, 4942); + return new ServerDescription(serverName, regattaData.getCourseName(), GameState.getNumberOfPlayers(), GameState.getCapacity(), ipAddress, server.getPortNumber()); } private void tearDownConnection() { diff --git a/src/main/java/seng302/visualiser/controllers/LobbyController.java b/src/main/java/seng302/visualiser/controllers/LobbyController.java index 84be615c..9035085d 100644 --- a/src/main/java/seng302/visualiser/controllers/LobbyController.java +++ b/src/main/java/seng302/visualiser/controllers/LobbyController.java @@ -71,6 +71,8 @@ public class LobbyController implements Initializable { @FXML private Label roomLabel; @FXML + private Label portNumber; + @FXML private Pane speedTokenPane, handlingTokenPane, windWalkerTokenPane, bumperTokenPane, randomTokenPane; //---------FXML END---------// @@ -85,6 +87,8 @@ public class LobbyController implements Initializable { @Override public void initialize(URL location, ResourceBundle resources) { roomLabel.setText(""); + portNumber.setText(""); + this.playerBoats = ViewManager.getInstance().getGameClient().getAllBoatsMap(); if (this.playersColor == null) { @@ -376,4 +380,8 @@ public class LobbyController implements Initializable { public void setRoomCode(String roomCode) { roomLabel.setText("Room: " + roomCode); } + + public void setPortNumber(String p){ + portNumber.setText("Port: " + p); + } } diff --git a/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java b/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java index fcd33e0d..5c023e24 100644 --- a/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java +++ b/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java @@ -115,7 +115,7 @@ public class ServerCreationController implements Initializable { */ private void createServer() { ServerDescription serverDescription = ViewManager.getInstance().getGameClient() - .runAsHost("localhost", 4941, serverName.getText(), (int) maxPlayersSlider + .runAsHost("localhost", 0, serverName.getText(), (int) maxPlayersSlider .getValue(), mapMaker.getCurrentRacePath(), (int) legsSlider.getValue(), pickupsCheckBox.isSelected()); if (serverDescription == null){ diff --git a/src/main/resources/views/LobbyView.fxml b/src/main/resources/views/LobbyView.fxml index 08f135c7..432fd4e7 100644 --- a/src/main/resources/views/LobbyView.fxml +++ b/src/main/resources/views/LobbyView.fxml @@ -66,6 +66,11 @@ + + @@ -80,12 +85,9 @@
- - - + + + @@ -110,116 +112,92 @@ - + - + - + - + - - + - - + - - + - - + - - + - + - - - - - - + + + + + + @@ -236,7 +214,7 @@ - - + + diff --git a/src/test/java/seng302/visualiser/ClientToServerTests/DisconnectionTest.java b/src/test/java/seng302/visualiser/ClientToServerTests/DisconnectionTest.java index 6bc3e9ad..01dfc8f9 100644 --- a/src/test/java/seng302/visualiser/ClientToServerTests/DisconnectionTest.java +++ b/src/test/java/seng302/visualiser/ClientToServerTests/DisconnectionTest.java @@ -12,7 +12,7 @@ public class DisconnectionTest { @Test public void testServerDisconnection () throws Exception { MainServerThread serverThread = new MainServerThread(); - ClientToServerThread clientThread = new ClientToServerThread("localhost", 4942); + ClientToServerThread clientThread = new ClientToServerThread("localhost", serverThread.getPortNumber()); Thread.sleep(1000); clientThread.addDisconnectionListener(message -> Assert.assertTrue(message != null)); serverThread.terminate(); diff --git a/src/test/java/seng302/visualiser/ClientToServerTests/RegularPacketsTest.java b/src/test/java/seng302/visualiser/ClientToServerTests/RegularPacketsTest.java index 9dc6fd30..c96cede2 100644 --- a/src/test/java/seng302/visualiser/ClientToServerTests/RegularPacketsTest.java +++ b/src/test/java/seng302/visualiser/ClientToServerTests/RegularPacketsTest.java @@ -20,7 +20,7 @@ public class RegularPacketsTest { public void setup() throws Exception { new GameState(); serverThread = new MainServerThread(); - clientThread = new ClientToServerThread("localhost", 4942); + clientThread = new ClientToServerThread("localhost", serverThread.getPortNumber()); GameState.setCurrentStage(GameStages.RACING); } diff --git a/src/test/java/steps/SendChatSteps.java b/src/test/java/steps/SendChatSteps.java index 9f915333..87a224ad 100644 --- a/src/test/java/steps/SendChatSteps.java +++ b/src/test/java/steps/SendChatSteps.java @@ -45,7 +45,7 @@ public class SendChatSteps { } catch (InterruptedException ie) { ie.printStackTrace(); } - host = new ClientToServerThread("localhost", 4942); + host = new ClientToServerThread("localhost", mst.getPortNumber()); host.addStreamObserver(() -> { while (host.getPacketQueue().peek() != null) { StreamPacket packet = host.getPacketQueue().poll(); @@ -68,7 +68,7 @@ public class SendChatSteps { } catch (InterruptedException ie) { ie.printStackTrace(); } - client = new ClientToServerThread("localhost", 4942); + client = new ClientToServerThread("localhost", mst.getPortNumber()); try { Thread.sleep(1000); } catch (InterruptedException ie) { diff --git a/src/test/java/steps/ToggleSailSteps.java b/src/test/java/steps/ToggleSailSteps.java index 3899e29b..1c6c173c 100644 --- a/src/test/java/steps/ToggleSailSteps.java +++ b/src/test/java/steps/ToggleSailSteps.java @@ -44,7 +44,7 @@ public class ToggleSailSteps { } catch (InterruptedException ie) { ie.printStackTrace(); } - client = new ClientToServerThread("localhost", 4942); + client = new ClientToServerThread("localhost", mst.getPortNumber()); try { Thread.sleep(100); } catch (InterruptedException ie) { From 0231c43a2cf9f918b96cb46aee5b40c4307d58b9 Mon Sep 17 00:00:00 2001 From: Calum Date: Thu, 28 Sep 2017 16:01:24 +1300 Subject: [PATCH 21/26] Arrows work. mark arrow thinner. refactored marker class. #fix --- .../java/seng302/visualiser/GameView.java | 33 +++++++++++++++ .../java/seng302/visualiser/GameView3D.java | 35 +--------------- .../java/seng302/visualiser/MapPreview.java | 5 +-- src/main/java/seng302/visualiser/MiniMap.java | 35 ---------------- .../visualiser/cameras/IsometricCamera.java | 6 +-- .../visualiser/cameras/TopDownCamera.java | 6 +-- .../seng302/visualiser/fxObjects/Marker.java | 38 ++++++++++++++++++ .../fxObjects/assets_2D/Marker2D.java | 11 ++--- .../fxObjects/assets_3D/Marker3D.java | 28 ++----------- src/main/resources/meshes/mark_pointer.stl | Bin 3184 -> 3184 bytes src/main/resources/meshes/player_circle.stl | Bin 57684 -> 57684 bytes 11 files changed, 88 insertions(+), 109 deletions(-) create mode 100644 src/main/java/seng302/visualiser/fxObjects/Marker.java diff --git a/src/main/java/seng302/visualiser/GameView.java b/src/main/java/seng302/visualiser/GameView.java index db8a7686..37d579b7 100644 --- a/src/main/java/seng302/visualiser/GameView.java +++ b/src/main/java/seng302/visualiser/GameView.java @@ -1,13 +1,18 @@ package seng302.visualiser; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import javafx.scene.Group; import javafx.scene.Node; +import seng302.model.ClientYacht; import seng302.model.Limit; import seng302.model.ScaledPoint; import seng302.model.mark.CompoundMark; import seng302.model.mark.Corner; +import seng302.model.mark.Mark; +import seng302.utilities.Sounds; +import seng302.visualiser.fxObjects.Marker; /** * Abstract class for keeping functionality common between race visualisation. @@ -24,8 +29,36 @@ public abstract class GameView { List course = new ArrayList<>(); List compoundMarks = new ArrayList<>(); List courseOrder = new ArrayList<>(); + HashMap markerObjects = new HashMap<>(); public abstract Node getAssets(); public abstract void updateCourse(List newCourse, List sequence); public abstract void updateBorder(List border); + + void updateMarkArrows (ClientYacht yacht, int legNumber) { + CompoundMark compoundMark; + if (legNumber - 1 >= 0 && legNumber-1 < course.size()) { + Sounds.playMarkRoundingSound(); + compoundMark = course.get(legNumber-1); + for (Mark mark : compoundMark.getMarks()) { + markerObjects.get(mark).showNextExitArrow(); + } + } + CompoundMark nextMark = null; + if (legNumber < course.size()) { + Sounds.playMarkRoundingSound(); + nextMark = course.get(legNumber); + for (Mark mark : nextMark.getMarks()) { + markerObjects.get(mark).showNextEnterArrow(); + } + } + if (legNumber - 2 >= 0) { + CompoundMark lastMark = course.get(Math.max(0, legNumber - 2)); + if (lastMark != nextMark) { + for (Mark mark : lastMark.getMarks()) { + markerObjects.get(mark).hideAllArrows(); + } + } + } + } } diff --git a/src/main/java/seng302/visualiser/GameView3D.java b/src/main/java/seng302/visualiser/GameView3D.java index 29c12074..6851d2be 100644 --- a/src/main/java/seng302/visualiser/GameView3D.java +++ b/src/main/java/seng302/visualiser/GameView3D.java @@ -34,7 +34,6 @@ import seng302.model.mark.Corner; import seng302.model.mark.Mark; import seng302.model.token.Token; import seng302.utilities.GeoUtility; -import seng302.utilities.Sounds; import seng302.visualiser.cameras.ChaseCamera; import seng302.visualiser.cameras.IsometricCamera; import seng302.visualiser.cameras.RaceCamera; @@ -55,7 +54,7 @@ public class GameView3D extends GameView { private final double FOV = 60; private final double DEFAULT_CAMERA_X = 0; - private final double DEFAULT_CAMERA_Y = 100; + private final double DEFAULT_CAMERA_Y = 160; private Group root3D; private SubScene view; @@ -66,11 +65,6 @@ public class GameView3D extends GameView { private PerspectiveCamera isometricCam; private PerspectiveCamera topDownCam; private PerspectiveCamera chaseCam; - - /* Note that if either of these is null then values for it have not been added and the other - should be used as the limits of the map. */ - private Map markerObjects; - private BoatObject playerBoat; private Map boatObjects = new HashMap<>(); private Group wakesGroup = new Group(); @@ -535,31 +529,4 @@ public class GameView3D extends GameView { public void setWindDir(double windDir) { this.windDir = windDir; } - - private void updateMarkArrows (ClientYacht yacht, int legNumber) { - CompoundMark compoundMark; - if (legNumber - 1 >= 0) { - Sounds.playMarkRoundingSound(); - compoundMark = course.get(legNumber-1); - for (Mark mark : compoundMark.getMarks()) { - markerObjects.get(mark).showNextExitArrow(); - } - } - CompoundMark nextMark = null; - if (legNumber < course.size() - 1) { - Sounds.playMarkRoundingSound(); - nextMark = course.get(legNumber); - for (Mark mark : nextMark.getMarks()) { - markerObjects.get(mark).showNextEnterArrow(); - } - } - if (legNumber - 2 >= 0) { - CompoundMark lastMark = course.get(Math.max(0, legNumber - 2)); - if (lastMark != nextMark) { - for (Mark mark : lastMark.getMarks()) { - markerObjects.get(mark).hideAllArrows(); - } - } - } - } } \ No newline at end of file diff --git a/src/main/java/seng302/visualiser/MapPreview.java b/src/main/java/seng302/visualiser/MapPreview.java index 4c2c3a38..9725e526 100644 --- a/src/main/java/seng302/visualiser/MapPreview.java +++ b/src/main/java/seng302/visualiser/MapPreview.java @@ -3,7 +3,6 @@ package seng302.visualiser; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.Map; import javafx.application.Platform; import javafx.geometry.Point2D; import javafx.scene.Node; @@ -19,6 +18,7 @@ import seng302.model.mark.Corner; import seng302.model.mark.Mark; import seng302.utilities.GeoUtility; import seng302.visualiser.fxObjects.MarkArrowFactory; +import seng302.visualiser.fxObjects.Marker; import seng302.visualiser.fxObjects.assets_2D.CourseBoundary; import seng302.visualiser.fxObjects.assets_2D.Gate; import seng302.visualiser.fxObjects.assets_2D.Marker2D; @@ -29,7 +29,6 @@ import seng302.visualiser.fxObjects.assets_2D.Marker2D; public class MapPreview extends GameView { private Polygon raceBorder = new CourseBoundary(); - protected Map markerObjects; public MapPreview(List marks, List course, List border) { this.compoundMarks = marks; @@ -240,7 +239,7 @@ public class MapPreview extends GameView { * @param colour The desired colour of the gate. * @return the new gate. */ - private Gate makeAndBindGate(Marker2D m1, Marker2D m2, Paint colour) { + private Gate makeAndBindGate(Marker m1, Marker m2, Paint colour) { Gate gate = new Gate(colour); gate.startXProperty().bind( m1.layoutXProperty() diff --git a/src/main/java/seng302/visualiser/MiniMap.java b/src/main/java/seng302/visualiser/MiniMap.java index 8c9377dd..092f6c17 100644 --- a/src/main/java/seng302/visualiser/MiniMap.java +++ b/src/main/java/seng302/visualiser/MiniMap.java @@ -11,8 +11,6 @@ import seng302.model.ClientYacht; import seng302.model.Limit; import seng302.model.mark.CompoundMark; import seng302.model.mark.Corner; -import seng302.model.mark.Mark; -import seng302.utilities.Sounds; /** * Class converts a map preview to a minimap by adding boats. @@ -20,15 +18,9 @@ import seng302.utilities.Sounds; public class MiniMap extends MapPreview { private HashMap boatIcons = new HashMap<>(); - private Polygon playerBoat; - private double playerRotation; - private List boats; - private ClientYacht player; public MiniMap (List marks, List course, List border, List boats, ClientYacht player) { super(marks, course, border); - this.boats = boats; - this.player = player; setBoats(boats); player.addMarkRoundingListener(this::updateMarkArrows); } @@ -56,31 +48,4 @@ public class MiniMap extends MapPreview { gameObjects.getChildren().addAll(boatIcons.values()); }); } - - private void updateMarkArrows (ClientYacht yacht, int legNumber) { - CompoundMark compoundMark; - if (legNumber - 1 >= 0) { - Sounds.playMarkRoundingSound(); - compoundMark = course.get(legNumber-1); - for (Mark mark : compoundMark.getMarks()) { - markerObjects.get(mark).showNextExitArrow(); - } - } - CompoundMark nextMark = null; - if (legNumber < course.size() - 1) { - Sounds.playMarkRoundingSound(); - nextMark = course.get(legNumber); - for (Mark mark : nextMark.getMarks()) { - markerObjects.get(mark).showNextEnterArrow(); - } - } - if (legNumber - 2 >= 0) { - CompoundMark lastMark = course.get(Math.max(0, legNumber - 2)); - if (lastMark != nextMark) { - for (Mark mark : lastMark.getMarks()) { - markerObjects.get(mark).hideAllArrows(); - } - } - } - } } diff --git a/src/main/java/seng302/visualiser/cameras/IsometricCamera.java b/src/main/java/seng302/visualiser/cameras/IsometricCamera.java index 85a0e502..2ba1bc8d 100644 --- a/src/main/java/seng302/visualiser/cameras/IsometricCamera.java +++ b/src/main/java/seng302/visualiser/cameras/IsometricCamera.java @@ -16,8 +16,8 @@ public class IsometricCamera extends PerspectiveCamera implements RaceCamera { private final Double MAX_Y = 170.0; private final Double PAN_LIMIT = 160.0; - private final Double NEAR_ZOOM_LIMIT = -50.0; - private final Double FAR_ZOOM_LIMIT = -160.0; + private final Double NEAR_ZOOM_LIMIT = -30.0; + private final Double FAR_ZOOM_LIMIT = -180.0; private Double horizontalPan; private Double verticalPan; @@ -29,7 +29,7 @@ public class IsometricCamera extends PerspectiveCamera implements RaceCamera { super(true); transforms = this.getTransforms(); - zoomFactor = (FAR_ZOOM_LIMIT + NEAR_ZOOM_LIMIT) / 2.0; + zoomFactor = FAR_ZOOM_LIMIT; horizontalPan = cameraStartX; verticalPan = cameraStartY; diff --git a/src/main/java/seng302/visualiser/cameras/TopDownCamera.java b/src/main/java/seng302/visualiser/cameras/TopDownCamera.java index 72d58707..d01decd4 100644 --- a/src/main/java/seng302/visualiser/cameras/TopDownCamera.java +++ b/src/main/java/seng302/visualiser/cameras/TopDownCamera.java @@ -11,9 +11,9 @@ import seng302.visualiser.fxObjects.assets_3D.BoatObject; public class TopDownCamera extends PerspectiveCamera implements RaceCamera { - private final Double PAN_LIMIT = 30.0; - private final Double NEAR_ZOOM_LIMIT = -30.0; - private final Double FAR_ZOOM_LIMIT = -130.0; + private final Double PAN_LIMIT = 40d; + private final Double NEAR_ZOOM_LIMIT = -20.0; + private final Double FAR_ZOOM_LIMIT = -145d; private final Double ZOOM_STEP = 2.5; private ObservableList transforms; diff --git a/src/main/java/seng302/visualiser/fxObjects/Marker.java b/src/main/java/seng302/visualiser/fxObjects/Marker.java new file mode 100644 index 00000000..53dcda32 --- /dev/null +++ b/src/main/java/seng302/visualiser/fxObjects/Marker.java @@ -0,0 +1,38 @@ +package seng302.visualiser.fxObjects; + +import java.util.ArrayList; +import java.util.List; +import javafx.scene.Group; +import seng302.visualiser.fxObjects.MarkArrowFactory.RoundingSide; + +/** + * Created by cir27 on 28/09/17. + */ +public abstract class Marker extends Group{ + + protected List enterArrows = new ArrayList<>(); + protected List exitArrows = new ArrayList<>(); + protected int enterArrowIndex = 0; + protected int exitArrowIndex = 0; + + public abstract void addArrows(RoundingSide roundingSide, double entryAngle, double exitAngle); + /** + * Shows the next EnterArrow. Does nothing if there are no more enter arrows. Other arrows become hidden. + */ + public void showNextEnterArrow() { + showArrow(enterArrows, enterArrowIndex); + enterArrowIndex++; + } + + /** + * Shows the next ExitArrow. Does nothing if there are no more enter arrows. Other arrows become hidden. + */ + public void showNextExitArrow() { + showArrow(exitArrows, exitArrowIndex); + exitArrowIndex++; + } + + protected abstract void showArrow(List arrowList, int arrowListIndex); + + public abstract void hideAllArrows(); +} diff --git a/src/main/java/seng302/visualiser/fxObjects/assets_2D/Marker2D.java b/src/main/java/seng302/visualiser/fxObjects/assets_2D/Marker2D.java index d45b1341..e32023dc 100644 --- a/src/main/java/seng302/visualiser/fxObjects/assets_2D/Marker2D.java +++ b/src/main/java/seng302/visualiser/fxObjects/assets_2D/Marker2D.java @@ -1,6 +1,5 @@ package seng302.visualiser.fxObjects.assets_2D; -import java.util.ArrayList; import java.util.List; import javafx.application.Platform; import javafx.scene.Group; @@ -8,18 +7,15 @@ import javafx.scene.paint.Color; import javafx.scene.paint.Paint; import javafx.scene.shape.Circle; import seng302.visualiser.fxObjects.MarkArrowFactory; +import seng302.visualiser.fxObjects.Marker; /** * Visual object for a mark. Contains a coloured circle and any specified arrows. */ -public class Marker2D extends Group { +public class Marker2D extends Marker { private Circle mark = new Circle(); private Paint colour = Color.BLACK; - private List enterArrows = new ArrayList<>(); - private List exitArrows = new ArrayList<>(); - private int enterArrowIndex = 0; - private int exitArrowIndex = 0; /** * Creates a new Marker containing only a circle. The default colour is black. @@ -79,7 +75,8 @@ public class Marker2D extends Group { exitArrowIndex++; } - private void showArrow(List arrowList, int arrowListIndex) { + @Override + protected void showArrow(List arrowList, int arrowListIndex) { if (arrowListIndex < arrowList.size()) { Platform.runLater(() -> this.getChildren().setAll(mark, arrowList.get(arrowListIndex)) diff --git a/src/main/java/seng302/visualiser/fxObjects/assets_3D/Marker3D.java b/src/main/java/seng302/visualiser/fxObjects/assets_3D/Marker3D.java index 2766edfc..aa2420e1 100644 --- a/src/main/java/seng302/visualiser/fxObjects/assets_3D/Marker3D.java +++ b/src/main/java/seng302/visualiser/fxObjects/assets_3D/Marker3D.java @@ -1,22 +1,17 @@ package seng302.visualiser.fxObjects.assets_3D; - -import java.util.ArrayList; import java.util.List; import javafx.application.Platform; import javafx.scene.Group; import seng302.visualiser.fxObjects.MarkArrowFactory; import seng302.visualiser.fxObjects.MarkArrowFactory.RoundingSide; +import seng302.visualiser.fxObjects.Marker; /** * Visual object for a mark. Contains a coloured circle and any specified arrows. */ -public class Marker3D extends Group { +public class Marker3D extends Marker { private Model mark; - private List enterArrows = new ArrayList<>(); - private List exitArrows = new ArrayList<>(); - private int enterArrowIndex = 0; - private int exitArrowIndex = 0; private ModelType markType; private ModelType arrowType; @@ -60,23 +55,8 @@ public class Marker3D extends Group { ); } - /** - * Shows the next EnterArrow. Does nothing if there are no more enter arrows. Other arrows become hidden. - */ - public void showNextEnterArrow() { - showArrow(enterArrows, enterArrowIndex); - enterArrowIndex++; - } - - /** - * Shows the next ExitArrow. Does nothing if there are no more enter arrows. Other arrows become hidden. - */ - public void showNextExitArrow() { - showArrow(exitArrows, exitArrowIndex); - exitArrowIndex++; - } - - private void showArrow(List arrowList, int arrowListIndex) { + @Override + protected void showArrow(List arrowList, int arrowListIndex) { if (arrowListIndex < arrowList.size()) { Platform.runLater(() -> this.getChildren().setAll(mark.getAssets(), arrowList.get(arrowListIndex)) diff --git a/src/main/resources/meshes/mark_pointer.stl b/src/main/resources/meshes/mark_pointer.stl index be51d3f3f287c69dc897ac4aefe659d16851d293..a7bc5099ee33a7b57532eead0b67790896600d86 100644 GIT binary patch literal 3184 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 YymvU2<~k%9uCMBM)jU`D?dCK71(xEg$N&HU diff --git a/src/main/resources/meshes/player_circle.stl b/src/main/resources/meshes/player_circle.stl index 5afc2bdda5d9fc7e6c61ed94b292108e0271c003..b91cf5a2fd77d521c03af78f7da38c05673234c2 100644 GIT binary patch literal 57684 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 a&?3~^JKe5GUL=3;sNTO~me^&Txc>s3_RQ}9 literal 57684 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 W$a5V0!Q|y{BnDNq{-91-C+>fKH85=e From ed9b7acc620c70df1f81250a187fc129137c96a8 Mon Sep 17 00:00:00 2001 From: William Muir Date: Thu, 28 Sep 2017 16:03:56 +1300 Subject: [PATCH 22/26] New Map! Waiheke #story[1274] --- .../java/seng302/visualiser/MapMaker.java | 2 +- src/main/resources/maps/waiheke.xml | 61 +++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/maps/waiheke.xml diff --git a/src/main/java/seng302/visualiser/MapMaker.java b/src/main/java/seng302/visualiser/MapMaker.java index 946d36e6..894b8e69 100644 --- a/src/main/java/seng302/visualiser/MapMaker.java +++ b/src/main/java/seng302/visualiser/MapMaker.java @@ -35,7 +35,7 @@ public class MapMaker { private XMLGenerator xmlGenerator = new XMLGenerator(); private List maps = new ArrayList<>( - Arrays.asList("default.xml", "horseshoe.xml", "loop.xml", "madagascar.xml")); + Arrays.asList("default.xml", "horseshoe.xml", "loop.xml", "madagascar.xml", "waiheke.xml")); public static MapMaker getInstance() { if (instance == null) { diff --git a/src/main/resources/maps/waiheke.xml b/src/main/resources/maps/waiheke.xml new file mode 100644 index 00000000..41598416 --- /dev/null +++ b/src/main/resources/maps/waiheke.xml @@ -0,0 +1,61 @@ + + + + Waiheke + + -36.80008 + 175.012225 + + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 261f68f1432825c7b78a249e6444beaa93dd961e Mon Sep 17 00:00:00 2001 From: Michael Rausch Date: Thu, 28 Sep 2017 16:03:59 +1300 Subject: [PATCH 23/26] Added port number randomization - Servers all run on different ports, so multiple servers can run on one host - Port is displayed in lobby Tags: #story[1281] --- .../visualiser/controllers/dialogs/ServerCreationController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java b/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java index 2f69db2f..3cf9fc5e 100644 --- a/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java +++ b/src/main/java/seng302/visualiser/controllers/dialogs/ServerCreationController.java @@ -115,7 +115,6 @@ public class ServerCreationController implements Initializable { */ private void createServer() { ServerDescription serverDescription = ViewManager.getInstance().getGameClient() - .runAsHost("localhost", 0, serverName.getText(), (int) maxPlayersSlider .runAsHost(serverName.getText(), (int) maxPlayersSlider .getValue(), mapMaker.getCurrentRacePath(), (int) legsSlider.getValue(), pickupsCheckBox.isSelected()); From ece45ff967c8c44f04a4d99a59f7f3d4ed859404 Mon Sep 17 00:00:00 2001 From: Calum Date: Thu, 28 Sep 2017 16:17:19 +1300 Subject: [PATCH 24/26] Fixed map, parrot and camera. --- .../java/seng302/visualiser/GameView3D.java | 5 +++-- .../visualiser/cameras/TopDownCamera.java | 4 ++-- src/main/resources/maps/horseshoe.xml | 6 +++--- .../resources/meshes/boatSTLs/parrot_sail.stl | Bin 132834 -> 13034 bytes 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/seng302/visualiser/GameView3D.java b/src/main/java/seng302/visualiser/GameView3D.java index 6851d2be..3c6c95e5 100644 --- a/src/main/java/seng302/visualiser/GameView3D.java +++ b/src/main/java/seng302/visualiser/GameView3D.java @@ -89,11 +89,11 @@ public class GameView3D extends GameView { } gameObjects = new Group(); - root3D = new Group(isometricCam, gameObjects); + root3D = new Group(chaseCam, gameObjects); view = new SubScene( root3D, 5000, 3000, true, SceneAntialiasing.BALANCED ); - view.setCamera(isometricCam); + view.setCamera(chaseCam); skybox = new Skybox(new Image(getClass().getResourceAsStream("/images/skybox.jpg")), 100000, isometricCam); skybox.getTransforms().addAll(new Rotate(90, Rotate.X_AXIS)); @@ -361,6 +361,7 @@ public class GameView3D extends GameView { }); } + playerBoat.updateMarkIndicator(scaledPoint.findScaledXY(course.get(0).getMidPoint())); gameObjects.getChildren().addAll(wakes); gameObjects.getChildren().addAll(boatObjectGroup); }); diff --git a/src/main/java/seng302/visualiser/cameras/TopDownCamera.java b/src/main/java/seng302/visualiser/cameras/TopDownCamera.java index d01decd4..aef5e5d1 100644 --- a/src/main/java/seng302/visualiser/cameras/TopDownCamera.java +++ b/src/main/java/seng302/visualiser/cameras/TopDownCamera.java @@ -13,7 +13,7 @@ public class TopDownCamera extends PerspectiveCamera implements RaceCamera { private final Double PAN_LIMIT = 40d; private final Double NEAR_ZOOM_LIMIT = -20.0; - private final Double FAR_ZOOM_LIMIT = -145d; + private final Double FAR_ZOOM_LIMIT = -200d; private final Double ZOOM_STEP = 2.5; private ObservableList transforms; @@ -27,7 +27,7 @@ public class TopDownCamera extends PerspectiveCamera implements RaceCamera { super(true); transforms = this.getTransforms(); - zoomFactor = (FAR_ZOOM_LIMIT + NEAR_ZOOM_LIMIT) / 2.0; + zoomFactor = FAR_ZOOM_LIMIT; horizontalPan = 0.0; verticalPan = 0.0; } diff --git a/src/main/resources/maps/horseshoe.xml b/src/main/resources/maps/horseshoe.xml index 4c43f86e..e3124406 100644 --- a/src/main/resources/maps/horseshoe.xml +++ b/src/main/resources/maps/horseshoe.xml @@ -10,8 +10,8 @@ - - + + @@ -64,7 +64,7 @@ - + diff --git a/src/main/resources/meshes/boatSTLs/parrot_sail.stl b/src/main/resources/meshes/boatSTLs/parrot_sail.stl index efe88eee0408fe8df634fd6fc14941bb4307ebb2..4c625cb3bfa5414337b044e85e4c0b6d86652d31 100644 GIT binary patch delta 15 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 From ce3e08abfcd787be06a2638e0b4a42f880175249 Mon Sep 17 00:00:00 2001 From: Kusal Ekanayake Date: Thu, 28 Sep 2017 16:18:44 +1300 Subject: [PATCH 25/26] Changed minimise and maximise icons for minimap --- .../seng302/visualiser/controllers/RaceViewController.java | 4 ++-- src/main/resources/views/RaceView.fxml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/seng302/visualiser/controllers/RaceViewController.java b/src/main/java/seng302/visualiser/controllers/RaceViewController.java index 38354023..0667b894 100644 --- a/src/main/java/seng302/visualiser/controllers/RaceViewController.java +++ b/src/main/java/seng302/visualiser/controllers/RaceViewController.java @@ -190,10 +190,10 @@ public class RaceViewController extends Thread { miniMapButton.setOnMouseClicked((event) -> { if (miniMapPane.visibleProperty().get()) { miniMapPane.setVisible(false); - miniMapButton.setText("✓"); + miniMapButton.setText("+"); } else { miniMapPane.setVisible(true); - miniMapButton.setText("✕"); + miniMapButton.setText("—"); } }); diff --git a/src/main/resources/views/RaceView.fxml b/src/main/resources/views/RaceView.fxml index 2c72fcb8..4113af3a 100644 --- a/src/main/resources/views/RaceView.fxml +++ b/src/main/resources/views/RaceView.fxml @@ -297,7 +297,7 @@ - + From 27379ae96d6b249adfdb3e0e495eae10c89d5ec5 Mon Sep 17 00:00:00 2001 From: Kusal Ekanayake Date: Thu, 28 Sep 2017 16:27:57 +1300 Subject: [PATCH 26/26] Fixed fatal bug to do with mark arrow on boat. --- src/main/java/seng302/visualiser/GameView3D.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seng302/visualiser/GameView3D.java b/src/main/java/seng302/visualiser/GameView3D.java index 3c6c95e5..3824b897 100644 --- a/src/main/java/seng302/visualiser/GameView3D.java +++ b/src/main/java/seng302/visualiser/GameView3D.java @@ -361,7 +361,6 @@ public class GameView3D extends GameView { }); } - playerBoat.updateMarkIndicator(scaledPoint.findScaledXY(course.get(0).getMidPoint())); gameObjects.getChildren().addAll(wakes); gameObjects.getChildren().addAll(boatObjectGroup); }); @@ -497,6 +496,7 @@ public class GameView3D extends GameView { } public void setBoatAsPlayer (ClientYacht playerYacht) { + playerBoat.updateMarkIndicator(scaledPoint.findScaledXY(course.get(0).getMidPoint())); playerYacht.toggleSail(); playerBoatAnimationTimer = new AnimationTimer() {