diff --git a/pom.xml b/pom.xml
index c2de2c86e..3c6e4739b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -95,13 +95,7 @@
org.polydev
gaea
- 1.10.17
-
-
- javax.vecmath
- vecmath
- 1.5.2
- test
+ 1.10.42
me.lucko
diff --git a/src/main/java/com/dfsek/terra/Terra.java b/src/main/java/com/dfsek/terra/Terra.java
index 91dd31f35..ceb03ce06 100644
--- a/src/main/java/com/dfsek/terra/Terra.java
+++ b/src/main/java/com/dfsek/terra/Terra.java
@@ -2,10 +2,13 @@ package com.dfsek.terra;
import com.dfsek.terra.config.ConfigUtil;
import com.dfsek.terra.generation.TerraChunkGenerator;
+import com.dfsek.terra.structure.StructureManager;
import com.mojang.brigadier.tree.LiteralCommandNode;
import me.lucko.commodore.Commodore;
import me.lucko.commodore.CommodoreProvider;
import me.lucko.commodore.file.CommodoreFileFormat;
+import org.bukkit.Bukkit;
+import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.PluginCommand;
import org.bukkit.configuration.file.FileConfiguration;
@@ -15,10 +18,13 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.InputStream;
+import java.util.Map;
+import java.util.logging.Logger;
public class Terra extends JavaPlugin {
private static FileConfiguration config;
private static Terra instance;
+ private static StructureManager manager;
public static Terra getInstance() {
return instance;
@@ -26,13 +32,13 @@ public class Terra extends JavaPlugin {
@Override
public void onDisable() {
- super.onDisable();
+ TerraChunkGenerator.saveAll();
}
@Override
public void onEnable() {
ConfigUtil.loadConfig(this);
- //getCommand("terra").setExecutor(new TerraCommand());
+ manager = new StructureManager(this);
PluginCommand command = getCommand("terra");
command.setExecutor(new TerraCommand());
@@ -46,6 +52,7 @@ public class Terra extends JavaPlugin {
} else getLogger().severe("Brigadier is not properly supported! Commands will NOT work properly!");
saveDefaultConfig();
config = getConfig();
+ Bukkit.getScheduler().scheduleAsyncRepeatingTask(this, TerraChunkGenerator::saveAll, ConfigUtil.dataSave, ConfigUtil.dataSave);
instance = this;
}
@@ -60,6 +67,10 @@ public class Terra extends JavaPlugin {
}
}
+ public static StructureManager getStructureManager() {
+ return manager;
+ }
+
@Override
public @Nullable ChunkGenerator getDefaultWorldGenerator(@NotNull String worldName, @Nullable String id) {
return new TerraChunkGenerator();
diff --git a/src/main/java/com/dfsek/terra/TerraCommand.java b/src/main/java/com/dfsek/terra/TerraCommand.java
index 5ef14cee6..2c51771ab 100644
--- a/src/main/java/com/dfsek/terra/TerraCommand.java
+++ b/src/main/java/com/dfsek/terra/TerraCommand.java
@@ -16,6 +16,7 @@ import com.sk89q.worldedit.bukkit.WorldEditPlugin;
import com.sk89q.worldedit.math.BlockVector3;
import com.sk89q.worldedit.regions.Region;
import org.bukkit.Location;
+import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
@@ -30,6 +31,7 @@ import java.io.File;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
+import java.util.Map;
import java.util.Random;
public class TerraCommand implements CommandExecutor, TabExecutor {
@@ -123,6 +125,10 @@ public class TerraCommand implements CommandExecutor, TabExecutor {
}
}
break;
+ case "save-data":
+ TerraChunkGenerator.saveAll();
+ sender.sendMessage("Saved population data.");
+ return true;
case "structure":
if(! (sender instanceof Player)) {
sender.sendMessage("Command is for players only.");
@@ -152,13 +158,13 @@ public class TerraCommand implements CommandExecutor, TabExecutor {
BlockVector3 max = selection.getMaximumPoint();
Location l1 = new Location(pl.getWorld(), min.getBlockX(), min.getBlockY(), min.getBlockZ());
Location l2 = new Location(pl.getWorld(), max.getBlockX(), max.getBlockY(), max.getBlockZ());
- GaeaStructure structure = new GaeaStructure(l1, l2);
+ GaeaStructure structure = new GaeaStructure(l1, l2, args[2]);
try {
File file = new File(Terra.getInstance().getDataFolder() + File.separator + "export" + File.separator + "structures", args[2] + ".tstructure");
file.getParentFile().mkdirs();
file.createNewFile();
structure.save(file);
- sender.sendMessage("Saved to " + file.getPath());
+ sender.sendMessage("Saved structure with ID " + structure.getId() + ", UUID: " + structure.getUuid().toString() + " to " + file.getPath());
} catch(IOException e) {
e.printStackTrace();
}
@@ -174,7 +180,7 @@ public class TerraCommand implements CommandExecutor, TabExecutor {
}
return true;
} else if("getspawn".equals(args[1])) {
- Vector v = new StructureSpawn(50, 25).getNearestSpawn(pl.getLocation().getBlockX(), pl.getLocation().getBlockZ(), pl.getWorld().getSeed());
+ Vector v = new StructureSpawn(500, 100).getNearestSpawn(pl.getLocation().getBlockX(), pl.getLocation().getBlockZ(), pl.getWorld().getSeed());
sender.sendMessage(v.getBlockX() + ":" + v.getBlockZ());
}
}
diff --git a/src/main/java/com/dfsek/terra/biome/UserDefinedBiome.java b/src/main/java/com/dfsek/terra/biome/UserDefinedBiome.java
index 391b332f6..1555be411 100644
--- a/src/main/java/com/dfsek/terra/biome/UserDefinedBiome.java
+++ b/src/main/java/com/dfsek/terra/biome/UserDefinedBiome.java
@@ -1,5 +1,7 @@
package com.dfsek.terra.biome;
+import com.dfsek.terra.generation.UserDefinedDecorator;
+import com.dfsek.terra.generation.UserDefinedGenerator;
import org.polydev.gaea.biome.Biome;
import org.polydev.gaea.biome.Generator;
import org.polydev.gaea.biome.Decorator;
diff --git a/src/main/java/com/dfsek/terra/config/ConfigUtil.java b/src/main/java/com/dfsek/terra/config/ConfigUtil.java
index a8957e66f..d6572765d 100644
--- a/src/main/java/com/dfsek/terra/config/ConfigUtil.java
+++ b/src/main/java/com/dfsek/terra/config/ConfigUtil.java
@@ -13,17 +13,21 @@ import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.plugin.java.JavaPlugin;
import java.io.File;
+import java.time.Duration;
import java.util.List;
+import java.util.Objects;
import java.util.logging.Logger;
import java.util.stream.Collectors;
public class ConfigUtil {
public static boolean debug;
+ public static long dataSave;
public static void loadConfig(JavaPlugin main) {
main.saveDefaultConfig();
FileConfiguration config = main.getConfig();
debug = config.getBoolean("debug", false);
+ dataSave = Duration.parse(Objects.requireNonNull(config.getString("data-save", "PT6M"))).toMillis()/20L;
Logger logger = main.getLogger();
logger.info("Loading config values");
diff --git a/src/main/java/com/dfsek/terra/config/genconfig/BiomeConfig.java b/src/main/java/com/dfsek/terra/config/genconfig/BiomeConfig.java
index 9fe9903cb..7c53a4346 100644
--- a/src/main/java/com/dfsek/terra/config/genconfig/BiomeConfig.java
+++ b/src/main/java/com/dfsek/terra/config/genconfig/BiomeConfig.java
@@ -3,8 +3,8 @@ package com.dfsek.terra.config.genconfig;
import com.dfsek.terra.MaxMin;
import com.dfsek.terra.TerraTree;
import com.dfsek.terra.biome.UserDefinedBiome;
-import com.dfsek.terra.biome.UserDefinedDecorator;
-import com.dfsek.terra.biome.UserDefinedGenerator;
+import com.dfsek.terra.generation.UserDefinedDecorator;
+import com.dfsek.terra.generation.UserDefinedGenerator;
import com.dfsek.terra.carving.UserDefinedCarver;
import com.dfsek.terra.config.ConfigUtil;
import com.dfsek.terra.config.TerraConfigObject;
diff --git a/src/main/java/com/dfsek/terra/config/genconfig/CarverConfig.java b/src/main/java/com/dfsek/terra/config/genconfig/CarverConfig.java
index b620ef9ea..02628fd25 100644
--- a/src/main/java/com/dfsek/terra/config/genconfig/CarverConfig.java
+++ b/src/main/java/com/dfsek/terra/config/genconfig/CarverConfig.java
@@ -2,14 +2,11 @@ package com.dfsek.terra.config.genconfig;
import com.dfsek.terra.MaxMin;
import com.dfsek.terra.carving.UserDefinedCarver;
-import com.dfsek.terra.config.ConfigLoader;
import com.dfsek.terra.config.TerraConfigObject;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
import org.bukkit.configuration.InvalidConfigurationException;
-import org.bukkit.plugin.java.JavaPlugin;
-import org.bukkit.scheduler.BukkitTask;
import org.polydev.gaea.math.ProbabilityCollection;
import java.io.File;
@@ -123,6 +120,8 @@ public class CarverConfig extends TerraConfigObject {
replaceIsBlacklistInner = getBoolean("palette.inner.replace-blacklist", false);
replaceIsBlacklistOuter = getBoolean("palette.outer.replace-blacklist", false);
+ replaceIsBlacklistTop = getBoolean("palette.top.replace-blacklist", false);
+ replaceIsBlacklistBottom = getBoolean("palette.bottom.replace-blacklist", false);
double[] start = new double[] {getDouble("start.x"), getDouble("start.y"), getDouble("start.z")};
double[] mutate = new double[] {getDouble("mutate.x"), getDouble("mutate.y"), getDouble("mutate.z"), getDouble("mutate.radius")};
diff --git a/src/main/java/com/dfsek/terra/generation/TerraChunkGenerator.java b/src/main/java/com/dfsek/terra/generation/TerraChunkGenerator.java
index fe077d539..da16583e4 100644
--- a/src/main/java/com/dfsek/terra/generation/TerraChunkGenerator.java
+++ b/src/main/java/com/dfsek/terra/generation/TerraChunkGenerator.java
@@ -5,6 +5,7 @@ import com.dfsek.terra.config.WorldConfig;
import com.dfsek.terra.population.CavePopulator;
import com.dfsek.terra.population.FloraPopulator;
import com.dfsek.terra.population.OrePopulator;
+import com.dfsek.terra.population.StructurePopulator;
import com.dfsek.terra.population.TreePopulator;
import org.bukkit.Bukkit;
import org.bukkit.Material;
@@ -18,17 +19,25 @@ import org.polydev.gaea.math.ChunkInterpolator;
import org.polydev.gaea.math.FastNoise;
import org.polydev.gaea.population.PopulationManager;
+import java.io.FileNotFoundException;
+import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Random;
public class TerraChunkGenerator extends GaeaChunkGenerator {
private static final BlockData STONE = Material.STONE.createBlockData();
private static final BlockData WATER = Material.WATER.createBlockData();
private final PopulationManager popMan = new PopulationManager();
+ private boolean needsLoad = true;
+ private static final Map popMap = new HashMap<>();
+
public TerraChunkGenerator() {
super(ChunkInterpolator.InterpolationType.TRILINEAR);
+ popMan.attach(new StructurePopulator());
popMan.attach(new TreePopulator());
popMan.attach(new FloraPopulator());
popMan.attach(new OrePopulator());
@@ -36,6 +45,7 @@ public class TerraChunkGenerator extends GaeaChunkGenerator {
@Override
public ChunkData generateBase(@NotNull World world, @NotNull Random random, int chunkX, int chunkZ, FastNoise fastNoise) {
+ if(needsLoad) load(world);
ChunkData chunk = createChunkData(world);
int sea = WorldConfig.fromWorld(world).seaLevel;
for(byte x = 0; x < 16; x++) {
@@ -49,6 +59,31 @@ public class TerraChunkGenerator extends GaeaChunkGenerator {
return chunk;
}
+ private void load(World w) {
+ try {
+ popMan.loadBlocks(w);
+ } catch(IOException e) {
+ if(e instanceof FileNotFoundException) {
+ Bukkit.getLogger().warning("[Terra] No population chunks were loaded. If this is your first time starting your server with Terra, or if you are creating a new world, this is normal.");
+ } else e.printStackTrace();
+ } catch(ClassNotFoundException e) {
+ e.printStackTrace();
+ }
+ popMap.put(w, popMan);
+ needsLoad = false;
+ }
+
+ public static void saveAll() {
+ for(Map.Entry e : popMap.entrySet()) {
+ try {
+ e.getValue().saveBlocks(e.getKey());
+ Bukkit.getLogger().info("[Terra] Saved data for world " + e.getKey().getName());
+ } catch(IOException ioException) {
+ ioException.printStackTrace();
+ }
+ }
+ }
+
@Override
public int getNoiseOctaves(World world) {
return 4;
diff --git a/src/main/java/com/dfsek/terra/biome/UserDefinedDecorator.java b/src/main/java/com/dfsek/terra/generation/UserDefinedDecorator.java
similarity index 97%
rename from src/main/java/com/dfsek/terra/biome/UserDefinedDecorator.java
rename to src/main/java/com/dfsek/terra/generation/UserDefinedDecorator.java
index 17457a061..5465b03e7 100644
--- a/src/main/java/com/dfsek/terra/biome/UserDefinedDecorator.java
+++ b/src/main/java/com/dfsek/terra/generation/UserDefinedDecorator.java
@@ -1,4 +1,4 @@
-package com.dfsek.terra.biome;
+package com.dfsek.terra.generation;
import org.bukkit.block.Biome;
import org.polydev.gaea.biome.Decorator;
diff --git a/src/main/java/com/dfsek/terra/biome/UserDefinedGenerator.java b/src/main/java/com/dfsek/terra/generation/UserDefinedGenerator.java
similarity index 98%
rename from src/main/java/com/dfsek/terra/biome/UserDefinedGenerator.java
rename to src/main/java/com/dfsek/terra/generation/UserDefinedGenerator.java
index 0003c6e43..d1065f5df 100644
--- a/src/main/java/com/dfsek/terra/biome/UserDefinedGenerator.java
+++ b/src/main/java/com/dfsek/terra/generation/UserDefinedGenerator.java
@@ -1,4 +1,4 @@
-package com.dfsek.terra.biome;
+package com.dfsek.terra.generation;
import com.dfsek.terra.math.NoiseFunction2;
import com.dfsek.terra.math.NoiseFunction3;
diff --git a/src/main/java/com/dfsek/terra/population/CavePopulator.java b/src/main/java/com/dfsek/terra/population/CavePopulator.java
index 3c4c08891..8b7d1e417 100644
--- a/src/main/java/com/dfsek/terra/population/CavePopulator.java
+++ b/src/main/java/com/dfsek/terra/population/CavePopulator.java
@@ -21,6 +21,7 @@ import java.util.Random;
import java.util.Set;
public class CavePopulator extends BlockPopulator {
+ private static final Map shiftStorage = new HashMap<>(); // Persist BlockData created for shifts, to avoid re-calculating each time.
@Override
public void populate(@NotNull World world, @NotNull Random random, @NotNull Chunk chunk) {
ProfileFuture cave = TerraProfiler.fromWorld(world).measure("CaveTime");
@@ -34,16 +35,16 @@ public class CavePopulator extends BlockPopulator {
Material m = b.getType();
if(e.getValue().equals(CarvingData.CarvingType.CENTER) && c.isReplaceableInner(m)) {
if(c.getShiftedBlocks().containsKey(b.getType())) shiftCandidate.put(b.getLocation(), b.getType());
- b.setBlockData(c.getPaletteInner(v.getBlockY()).get(random), false);
+ b.setBlockData(c.getPaletteInner(v.getBlockY()).get(random), c.getUpdateBlocks().contains(m));
} else if(e.getValue().equals(CarvingData.CarvingType.WALL) && c.isReplaceableOuter(m)){
if(c.getShiftedBlocks().containsKey(b.getType())) shiftCandidate.put(b.getLocation(), b.getType());
- b.setBlockData(c.getPaletteOuter(v.getBlockY()).get(random), false);
+ b.setBlockData(c.getPaletteOuter(v.getBlockY()).get(random), c.getUpdateBlocks().contains(m));
} else if(e.getValue().equals(CarvingData.CarvingType.TOP) && c.isReplaceableTop(m)){
if(c.getShiftedBlocks().containsKey(b.getType())) shiftCandidate.put(b.getLocation(), b.getType());
- b.setBlockData(c.getPaletteTop(v.getBlockY()).get(random), false);
+ b.setBlockData(c.getPaletteTop(v.getBlockY()).get(random), c.getUpdateBlocks().contains(m));
} else if(e.getValue().equals(CarvingData.CarvingType.BOTTOM) && c.isReplaceableBottom(m)){
if(c.getShiftedBlocks().containsKey(b.getType())) shiftCandidate.put(b.getLocation(), b.getType());
- b.setBlockData(c.getPaletteBottom(v.getBlockY()).get(random), false);
+ b.setBlockData(c.getPaletteBottom(v.getBlockY()).get(random), c.getUpdateBlocks().contains(m));
}
if(c.getUpdateBlocks().contains(m)) {
updateNeeded.add(b);
@@ -58,7 +59,7 @@ public class CavePopulator extends BlockPopulator {
while(mut.getBlock().getType().equals(orig));
try {
if(c.getShiftedBlocks().get(shiftCandidate.get(l)).contains(mut.getBlock().getType())) {
- mut.getBlock().setType(shiftCandidate.get(l));
+ mut.getBlock().setBlockData(shiftStorage.computeIfAbsent(shiftCandidate.get(l), Material::createBlockData), false);
j++;
}
} catch(NullPointerException ignored) {}
diff --git a/src/main/java/com/dfsek/terra/population/FloraPopulator.java b/src/main/java/com/dfsek/terra/population/FloraPopulator.java
index a017b3b17..12b126de7 100644
--- a/src/main/java/com/dfsek/terra/population/FloraPopulator.java
+++ b/src/main/java/com/dfsek/terra/population/FloraPopulator.java
@@ -4,6 +4,7 @@ import com.dfsek.terra.TerraProfiler;
import com.dfsek.terra.biome.TerraBiomeGrid;
import com.dfsek.terra.biome.UserDefinedBiome;
import com.dfsek.terra.config.genconfig.BiomeConfig;
+import org.bukkit.Bukkit;
import org.bukkit.Chunk;
import org.bukkit.World;
import org.bukkit.block.Block;
@@ -13,11 +14,16 @@ import org.polydev.gaea.population.GaeaBlockPopulator;
import org.polydev.gaea.profiler.ProfileFuture;
import org.polydev.gaea.world.Flora;
+import java.util.HashSet;
import java.util.Random;
+import java.util.Set;
public class FloraPopulator extends GaeaBlockPopulator {
+ Set pop = new HashSet<>();
@Override
public void populate(@NotNull World world, @NotNull Random random, @NotNull Chunk chunk) {
+ if(pop.contains(chunk)) Bukkit.getLogger().warning("Already populated flora in chunk: " + chunk);
+ pop.add(chunk);
ProfileFuture flora = TerraProfiler.fromWorld(world).measure("FloraTime");
for(int x = 0; x < 16; x++) {
for(int z = 0; z < 16; z++) {
diff --git a/src/main/java/com/dfsek/terra/population/StructurePopulator.java b/src/main/java/com/dfsek/terra/population/StructurePopulator.java
new file mode 100644
index 000000000..e424b1daf
--- /dev/null
+++ b/src/main/java/com/dfsek/terra/population/StructurePopulator.java
@@ -0,0 +1,38 @@
+package com.dfsek.terra.population;
+
+import com.dfsek.terra.Terra;
+import com.dfsek.terra.structure.GaeaStructure;
+import com.dfsek.terra.structure.StructureSpawn;
+import org.bukkit.Bukkit;
+import org.bukkit.Chunk;
+import org.bukkit.Location;
+import org.bukkit.World;
+import org.jetbrains.annotations.NotNull;
+import org.polydev.gaea.population.GaeaBlockPopulator;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashSet;
+import java.util.Random;
+import java.util.Set;
+
+public class StructurePopulator extends GaeaBlockPopulator {
+ StructureSpawn spawnTest = new StructureSpawn(100, 5);
+ Set pop = new HashSet<>();
+ @Override
+ public void populate(@NotNull World world, @NotNull Random random, @NotNull Chunk chunk) {
+ if(pop.contains(chunk)) Bukkit.getLogger().warning("Already populated structures in chunk: " + chunk);
+ pop.add(chunk);
+ Location near = spawnTest.getNearestSpawn((chunk.getX() << 4) + 8, (chunk.getZ() << 4), world.getSeed()).toLocation(world);
+ if(near.getChunk().equals(chunk)) {
+ Terra.getInstance().getLogger().info("Spawning structure at " + near.toString() + " in chunk " + chunk);
+ try {
+ GaeaStructure struc = GaeaStructure.load(new File(Terra.getInstance().getDataFolder() + File.separator + "export" + File.separator + "structures", "demo.tstructure"));
+ near.setY(world.getHighestBlockYAt(near));
+ struc.paste(near);
+ } catch(IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/dfsek/terra/population/TreePopulator.java b/src/main/java/com/dfsek/terra/population/TreePopulator.java
index fcabffe5a..6d0a9e5fe 100644
--- a/src/main/java/com/dfsek/terra/population/TreePopulator.java
+++ b/src/main/java/com/dfsek/terra/population/TreePopulator.java
@@ -3,7 +3,7 @@ package com.dfsek.terra.population;
import com.dfsek.terra.Terra;
import com.dfsek.terra.TerraProfiler;
import com.dfsek.terra.biome.TerraBiomeGrid;
-import com.dfsek.terra.biome.UserDefinedDecorator;
+import com.dfsek.terra.generation.UserDefinedDecorator;
import org.bukkit.Chunk;
import org.bukkit.Location;
import org.bukkit.World;
diff --git a/src/main/java/com/dfsek/terra/structure/GaeaStructure.java b/src/main/java/com/dfsek/terra/structure/GaeaStructure.java
index 79222c73f..486bd8f8e 100644
--- a/src/main/java/com/dfsek/terra/structure/GaeaStructure.java
+++ b/src/main/java/com/dfsek/terra/structure/GaeaStructure.java
@@ -15,10 +15,13 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Objects;
+import java.util.UUID;
public class GaeaStructure implements Serializable {
- public static final long serialVersionUID = -6664585217063842034L;
+ public static final long serialVersionUID = -6664585217063842035L;
private final StructureContainedBlock[][][] structure;
+ private final String id;
+ private final UUID uuid;
public static GaeaStructure load(File f) throws IOException {
try {
@@ -28,7 +31,9 @@ public class GaeaStructure implements Serializable {
}
}
- public GaeaStructure(Location l1, Location l2) {
+ public GaeaStructure(Location l1, Location l2, String id) {
+ this.id = id;
+ this.uuid = UUID.randomUUID();
if(l1.getX() > l2.getX() || l1.getY() > l2.getY() || l1.getZ() > l2.getZ()) throw new IllegalArgumentException("Invalid locations provided!");
structure = new StructureContainedBlock[l2.getBlockX()-l1.getBlockX()+1][l2.getBlockY()-l1.getBlockY()+1][l2.getBlockZ()-l1.getBlockZ()+1];
for(int x = 0; x <= l2.getBlockX()-l1.getBlockX(); x++) {
@@ -87,4 +92,12 @@ public class GaeaStructure implements Serializable {
oos.writeObject(o);
oos.close();
}
+
+ public String getId() {
+ return id;
+ }
+
+ public UUID getUuid() {
+ return uuid;
+ }
}
diff --git a/src/main/java/com/dfsek/terra/structure/StructureManager.java b/src/main/java/com/dfsek/terra/structure/StructureManager.java
new file mode 100644
index 000000000..a5256dced
--- /dev/null
+++ b/src/main/java/com/dfsek/terra/structure/StructureManager.java
@@ -0,0 +1,29 @@
+package com.dfsek.terra.structure;
+
+import org.bukkit.plugin.java.JavaPlugin;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+import java.util.logging.Logger;
+
+public class StructureManager {
+ private static StructureManager singleton;
+ private Logger logger;
+ private final Map structures = new HashMap<>();
+ public StructureManager(JavaPlugin main) {
+ if(singleton!= null) throw new IllegalStateException("Only one instance of StructureManager may exist at a given time.");
+ this.logger = main.getLogger();
+ logger.info("Initializing StructureManager...");
+ singleton = this;
+ }
+ public GaeaStructure get(UUID uuid) {
+ return structures.get(uuid);
+ }
+ public void load(File file) throws IOException {
+ GaeaStructure s = GaeaStructure.load(file);
+ structures.put(s.getUuid(), s);
+ }
+}
diff --git a/src/main/java/com/dfsek/terra/structure/StructureSpawn.java b/src/main/java/com/dfsek/terra/structure/StructureSpawn.java
index bdf61c18a..04a0bf93b 100644
--- a/src/main/java/com/dfsek/terra/structure/StructureSpawn.java
+++ b/src/main/java/com/dfsek/terra/structure/StructureSpawn.java
@@ -33,13 +33,11 @@ public class StructureSpawn {
return shortest;
}
private Vector getStructureChunkSpawn(int structureChunkX, int structureChunkZ, long seed) {
- if(ConfigUtil.debug) Bukkit.getLogger().info("Structure chunk: " + structureChunkX + ":" + structureChunkZ);
Random r = new Random(MathUtil.getCarverChunkSeed(structureChunkX, structureChunkZ, seed));
int offsetX = r.nextInt(width);
int offsetZ = r.nextInt(width);
int sx = structureChunkX * (width + 2*separation) + offsetX;
int sz = structureChunkZ * (width + 2*separation) + offsetZ;
- if(ConfigUtil.debug) Bukkit.getLogger().info("Structure coords: " + sx + ":" + sz);
return new Vector(sx, 0, sz);
}
}
diff --git a/src/main/resources/terra.commodore b/src/main/resources/terra.commodore
index 5d424a106..06752a308 100644
--- a/src/main/resources/terra.commodore
+++ b/src/main/resources/terra.commodore
@@ -35,4 +35,5 @@ terra {
}
getspawn;
}
+ save-data;
}
\ No newline at end of file
diff --git a/src/test/java/DistributionTest.java b/src/test/java/DistributionTest.java
index 8a31f24e4..cac305b7a 100644
--- a/src/test/java/DistributionTest.java
+++ b/src/test/java/DistributionTest.java
@@ -1,12 +1,5 @@
-import com.dfsek.terra.biome.BiomeZone;
import org.polydev.gaea.math.FastNoise;
-import javax.vecmath.Vector2f;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Random;
-
public class DistributionTest {
private static final double[] normalMap = new double[] {-0.5522426962852478D, -0.5356624126434326D, -0.5250319838523865D, -0.5172030329704285D, -0.5108230710029602D, -0.5051751136779785D, -0.5003848075866699D, -0.496286541223526D, -0.49219056963920593D, -0.488725870847702D, -0.48548242449760437D, -0.48233601450920105D, -0.4794590473175049D, -0.47680431604385376D, -0.4741802513599396D, -0.4716983437538147D, -0.46938973665237427D, -0.4671768844127655D, -0.46493932604789734D, -0.4628496468067169D, -0.46085309982299805D, -0.45893776416778564D, -0.4571230709552765D, -0.45534923672676086D, -0.4535684585571289D, -0.4518905282020569D, -0.45032820105552673D, -0.44873151183128357D, -0.4472157657146454D, -0.445724755525589D, -0.4442773759365082D, -0.44282811880111694D, -0.44138428568840027D, -0.43998438119888306D, -0.43863797187805176D, -0.4373200237751007D, -0.43603432178497314D, -0.4348065257072449D, -0.4335438907146454D, -0.43234220147132874D, -0.4311666488647461D, -0.42999887466430664D, -0.4288702607154846D, -0.4277186393737793D, -0.42660200595855713D, -0.425540030002594D, -0.42445454001426697D, -0.42338213324546814D, -0.42237231135368347D, -0.4213787317276001D, -0.42034342885017395D, -0.41934314370155334D, -0.41838738322257996D, -0.41747593879699707D, -0.4165368676185608D, -0.41563472151756287D, -0.41473135352134705D, -0.41381341218948364D, -0.412920743227005D, -0.4120390713214874D, -0.41113483905792236D, -0.41027551889419556D, -0.40940171480178833D, -0.4085462987422943D, -0.40771594643592834D, -0.4068986475467682D, -0.4060843288898468D, -0.4052877426147461D, -0.40450364351272583D, -0.40370258688926697D, -0.40295007824897766D, -0.4022042751312256D, -0.40143170952796936D, -0.40068766474723816D, -0.3999272882938385D, -0.39916759729385376D, -0.3984144926071167D, -0.3977096378803253D, -0.3969724774360657D, -0.3962542712688446D, -0.3955434262752533D, -0.39482179284095764D, -0.39413219690322876D, -0.3934393525123596D, -0.39274853467941284D, -0.3920603394508362D, -0.3913818895816803D, -0.3907110095024109D, -0.39001911878585815D, -0.3893643021583557D, -0.38873276114463806D, -0.38809072971343994D, -0.38744935393333435D, -0.38681110739707947D, -0.38617849349975586D, -0.3855555057525635D, -0.3849259316921234D, -0.38428404927253723D, -0.38368701934814453D, -0.38305720686912537D, -0.3824397325515747D, -0.38183310627937317D, -0.3812190294265747D, -0.38061732053756714D, -0.3800400495529175D, -0.37945547699928284D, -0.37887564301490784D, -0.3783135712146759D, -0.3777320683002472D, -0.3771609365940094D, -0.3765930235385895D, -0.3760446608066559D, -0.37546253204345703D, -0.37489989399909973D, -0.37433329224586487D, -0.3737635910511017D, -0.37320101261138916D, -0.37265515327453613D, -0.3721090257167816D, -0.3715764880180359D, -0.3710474967956543D, -0.3705263137817383D, -0.37000274658203125D, -0.36946558952331543D, -0.3689403533935547D, -0.3684338629245758D, -0.3679268956184387D, -0.3674132525920868D, -0.3668895363807678D, -0.36637264490127563D, -0.3658500015735626D, -0.3653477430343628D, -0.3648494482040405D, -0.3643417954444885D, -0.36385640501976013D, -0.36335185170173645D, -0.3628855347633362D, -0.3624073565006256D, -0.3619007468223572D, -0.36142677068710327D, -0.3609183132648468D, -0.3604544401168823D, -0.3599613606929779D, -0.3594810962677002D, -0.3590005338191986D, -0.3585355281829834D, -0.35805660486221313D, -0.35758334398269653D, -0.3571120500564575D, -0.356632798910141D, -0.35616397857666016D, -0.3557022213935852D, -0.35522621870040894D, -0.35475999116897583D, -0.3543040454387665D, -0.3538462817668915D, -0.35339656472206116D, -0.35294967889785767D, -0.3525013029575348D, -0.35205140709877014D, -0.3516044616699219D, -0.3511776924133301D, -0.3507419228553772D, -0.350308358669281D, -0.34987354278564453D, -0.3494442403316498D, -0.34901976585388184D, -0.34858623147010803D, -0.3481590747833252D, -0.3477269113063812D, -0.34729984402656555D, -0.34686949849128723D, -0.34644952416419983D, -0.3460380733013153D, -0.345601350069046D, -0.3451806306838989D, -0.34476256370544434D, -0.3443388342857361D, -0.34393346309661865D, -0.3435156047344208D, -0.34309715032577515D, -0.34269776940345764D, -0.34230056405067444D, -0.34190237522125244D, -0.3415068984031677D, -0.3411085307598114D, -0.3407077193260193D, -0.3403150737285614D, -0.3399060070514679D, -0.3395008146762848D, -0.33910876512527466D, -0.3387194573879242D, -0.3383338451385498D, -0.3379477858543396D, -0.33756473660469055D, -0.33716049790382385D, -0.336769163608551D, -0.33637988567352295D, -0.3360031843185425D, -0.33561065793037415D, -0.33522093296051025D, -0.33484047651290894D, -0.3344566524028778D, -0.3340719938278198D, -0.33369651436805725D, -0.33331871032714844D, -0.3329450190067291D, -0.3325762152671814D, -0.3321962356567383D, -0.3318250775337219D, -0.33146360516548157D, -0.331096351146698D, -0.3307240307331085D, -0.33036690950393677D, -0.3300083577632904D, -0.3296314477920532D, -0.32925838232040405D, -0.3289034366607666D, -0.32853060960769653D, -0.3281768262386322D, -0.32781481742858887D, -0.32745665311813354D, -0.3271014988422394D, -0.3267449736595154D, -0.32637742161750793D, -0.32601433992385864D, -0.3256617784500122D, -0.325309157371521D, -0.32495537400245667D, -0.3246041238307953D, -0.324260413646698D, -0.32391706109046936D, -0.32356011867523193D, -0.3232196569442749D, -0.3228764235973358D, -0.3225192129611969D, -0.3221615254878998D, -0.32181763648986816D, -0.32147231698036194D, -0.32113757729530334D, -0.3207913041114807D, -0.3204527795314789D, -0.3200984597206116D, -0.31977012753486633D, -0.3194332718849182D, -0.31908634305000305D, -0.3187503516674042D, -0.3184075951576233D, -0.3180627226829529D, -0.3177427053451538D, -0.31741446256637573D, -0.31707704067230225D, -0.316744863986969D, -0.31642594933509827D, -0.3161090612411499D, -0.31578725576400757D, -0.3154592216014862D, -0.31513524055480957D, -0.3148083984851837D, -0.31448230147361755D, -0.3141593337059021D, -0.3138306438922882D, -0.313511461019516D, -0.3132011592388153D, -0.31286999583244324D, -0.31256046891212463D, -0.31223684549331665D, -0.3119199573993683D, -0.31160062551498413D, -0.31128641963005066D, -0.31096261739730835D, -0.3106483519077301D, -0.31033560633659363D, -0.31001248955726624D, -0.30969613790512085D, -0.3093807101249695D, -0.3090643584728241D, -0.3087562322616577D, -0.3084530532360077D, -0.3081410229206085D, -0.30783092975616455D, -0.3075273334980011D, -0.30720987915992737D, -0.3068995177745819D, -0.30659666657447815D, -0.3062874376773834D, -0.3059786558151245D, -0.305671364068985D, -0.3053743839263916D, -0.30506861209869385D, -0.30476105213165283D, -0.3044643998146057D, -0.3041706383228302D, -0.3038659393787384D, -0.30357563495635986D, -0.3032696545124054D, -0.30296090245246887D, -0.30266377329826355D, -0.3023788034915924D, -0.302080899477005D, -0.3017835319042206D, -0.3014954924583435D, -0.3012062609195709D, -0.30091601610183716D, -0.3006187677383423D, -0.30032220482826233D, -0.3000366985797882D, -0.29973816871643066D, -0.2994519770145416D, -0.29914233088493347D, -0.2988555431365967D, -0.29856425523757935D, -0.2982824742794037D, -0.29798826575279236D, -0.2976938486099243D, -0.29739657044410706D, -0.29710277915000916D, -0.29681164026260376D, -0.29652127623558044D, -0.29623138904571533D, -0.29592910408973694D, -0.2956419289112091D, -0.29535165429115295D, -0.29506999254226685D, -0.29478344321250916D, -0.2944985330104828D, -0.2942177355289459D, -0.29393965005874634D, -0.2936561107635498D, -0.29337379336357117D, -0.2930947542190552D, -0.29281559586524963D, -0.29254022240638733D, -0.29226312041282654D, -0.2919958531856537D, -0.29172608256340027D, -0.291446328163147D, -0.2911716103553772D, -0.29089251160621643D, -0.2906162738800049D, -0.290350079536438D, -0.29007789492607117D, -0.28980758786201477D, -0.28953540325164795D, -0.2892584502696991D, -0.2889859974384308D, -0.2887132167816162D, -0.2884424030780792D, -0.28817737102508545D, -0.2879084348678589D, -0.28764015436172485D, -0.2873786389827728D, -0.28710025548934937D, -0.28683197498321533D, -0.28656822443008423D, -0.28629666566848755D, -0.28602135181427D, -0.2857580780982971D, -0.2854946255683899D, -0.2852350175380707D, -0.28497231006622314D, -0.2847127616405487D, -0.2844494581222534D, -0.28418153524398804D, -0.2839117646217346D, -0.28364670276641846D, -0.2833735942840576D, -0.2831180989742279D, -0.28285273909568787D, -0.282595694065094D, -0.28233304619789124D, -0.28208285570144653D, -0.28183260560035706D, -0.28156495094299316D, -0.2813194692134857D, -0.28106340765953064D, -0.2807980179786682D, -0.2805359661579132D, -0.2802804410457611D, -0.28002557158470154D, -0.27975931763648987D, -0.2795126140117645D, -0.27925795316696167D, -0.27899473905563354D, -0.278735488653183D, -0.27847906947135925D, -0.27822330594062805D, -0.27796468138694763D, -0.27770230174064636D, -0.2774444818496704D, -0.27718687057495117D, -0.27694857120513916D, -0.2766880989074707D, -0.27643832564353943D, -0.2761860489845276D, -0.2759307324886322D, -0.2756873071193695D, -0.2754386067390442D, -0.2751883268356323D, -0.27494344115257263D, -0.2746928334236145D, -0.274436354637146D, -0.27417975664138794D, -0.2739262282848358D, -0.27367040514945984D, -0.2734193205833435D, -0.273158460855484D, -0.27291545271873474D, -0.2726711928844452D, -0.27241599559783936D, -0.27216801047325134D, -0.2719186842441559D, -0.27167946100234985D, -0.2714363932609558D, -0.271190345287323D, -0.2709449231624603D, -0.2706972360610962D, -0.27045026421546936D, -0.27020177245140076D, -0.26996636390686035D, -0.2697167992591858D, -0.2694661319255829D, -0.2692175805568695D, -0.2689802348613739D, -0.2687402367591858D, -0.2684989869594574D, -0.2682455778121948D, -0.2680189311504364D, -0.26777616143226624D, -0.267528235912323D, -0.2672905921936035D, -0.2670466899871826D, -0.26680880784988403D, -0.2665674090385437D, -0.26632341742515564D, -0.2660820782184601D, -0.2658466100692749D, -0.26560917496681213D, -0.26536619663238525D, -0.26512911915779114D, -0.2648910880088806D, -0.2646530270576477D, -0.26441332697868347D, -0.26417455077171326D, -0.26393792033195496D, -0.2637031376361847D, -0.2634584307670593D, -0.2632187306880951D, -0.2629868984222412D, -0.26276034116744995D, -0.2625255584716797D, -0.26228949427604675D, -0.2620560824871063D, -0.26182571053504944D, -0.261595219373703D, -0.2613618075847626D, -0.26113298535346985D, -0.2608985900878906D, -0.26066386699676514D, -0.26042836904525757D, -0.2601918876171112D, -0.25995346903800964D, -0.2597239911556244D, -0.25948530435562134D, -0.25925174355506897D, -0.25902727246284485D, -0.25878533720970154D, -0.2585568130016327D, -0.25832033157348633D, -0.25808852910995483D, -0.25785645842552185D, -0.2576303482055664D, -0.25740429759025574D, -0.25717857480049133D, -0.2569526731967926D, -0.25671908259391785D, -0.25648829340934753D, -0.25625646114349365D, -0.2560245394706726D, -0.25578436255455017D, -0.2555571496486664D, -0.25532659888267517D, -0.25509998202323914D, -0.2548714876174927D, -0.2546450197696686D, -0.2544119656085968D, -0.25418850779533386D, -0.25395628809928894D, -0.25373202562332153D, -0.2535029947757721D, -0.2532775402069092D, -0.2530599534511566D, -0.25283512473106384D, -0.2526094317436218D, -0.2523849904537201D, -0.25216206908226013D, -0.2519350051879883D, -0.2517090141773224D, -0.2514895796775818D, -0.2512630820274353D, -0.25103917717933655D, -0.2508082687854767D, -0.25058355927467346D, -0.25036174058914185D, -0.2501283586025238D, -0.24990904331207275D, -0.249681293964386D, -0.24945379793643951D, -0.24923056364059448D, -0.24901220202445984D, -0.24878771603107452D, -0.24855589866638184D, -0.24833829700946808D, -0.24811571836471558D, -0.24789805710315704D, -0.24767984449863434D, -0.24746781587600708D, -0.24724344909191132D, -0.247017040848732D, -0.24679675698280334D, -0.24657492339611053D, -0.2463507503271103D, -0.24612344801425934D, -0.2459094524383545D, -0.24569448828697205D, -0.2454809844493866D, -0.2452625036239624D, -0.24504707753658295D, -0.2448272854089737D, -0.24461260437965393D, -0.2443927526473999D, -0.24417124688625336D, -0.243961900472641D, -0.24374017119407654D, -0.24352549016475677D, -0.2433115839958191D, -0.24308589100837708D, -0.24287600815296173D, -0.24265910685062408D, -0.24244506657123566D, -0.24222184717655182D, -0.2420046031475067D, -0.24178411066532135D, -0.2415642887353897D, -0.24134574830532074D, -0.24113741517066956D, -0.24092262983322144D, -0.24071024358272552D, -0.2404916137456894D, -0.24028095602989197D, -0.2400677651166916D, -0.23985490202903748D, -0.23963676393032074D, -0.23942221701145172D, -0.23919777572155D, -0.23898695409297943D, -0.23877480626106262D, -0.2385605275630951D, -0.23833821713924408D, -0.23812562227249146D, -0.23791590332984924D, -0.2377057671546936D, -0.23749561607837677D, -0.2372775822877884D, -0.23707041144371033D, -0.23685894906520844D, -0.23664598166942596D, -0.2364351749420166D, -0.23622725903987885D, -0.23601093888282776D, -0.23579688370227814D, -0.2355896234512329D, -0.2353767305612564D, -0.23516340553760529D, -0.23495911061763763D, -0.23474349081516266D, -0.23453089594841003D, -0.234323650598526D, -0.2341182678937912D, -0.23391124606132507D, -0.23369914293289185D, -0.23348599672317505D, -0.23327989876270294D, -0.23307158052921295D, -0.23286454379558563D, -0.23266181349754333D, -0.2324516326189041D, -0.23224829137325287D, -0.2320389449596405D, -0.23183543980121613D, -0.23162415623664856D, -0.23141750693321228D, -0.2312154620885849D, -0.23101359605789185D, -0.2308085411787033D, -0.23060521483421326D, -0.2303977906703949D, -0.23019705712795258D, -0.22999277710914612D, -0.22978724539279938D, -0.22957871854305267D, -0.2293720841407776D, -0.2291649729013443D, -0.22895236313343048D, -0.2287459373474121D, -0.22854582965373993D, -0.2283381223678589D, -0.22812990844249725D, -0.2279345691204071D, -0.2277294397354126D, -0.22752392292022705D, -0.22731730341911316D, -0.22711612284183502D, -0.22691002488136292D, -0.2267099916934967D, -0.2265053242444992D, -0.22630846500396729D, -0.22610722482204437D, -0.22590836882591248D, -0.2257007658481598D, -0.22550742328166962D, -0.22530819475650787D, -0.22511185705661774D, -0.22490867972373962D, -0.2247025966644287D, -0.22450992465019226D, -0.22430776059627533D, -0.22410835325717926D, -0.2239159643650055D, -0.22370943427085876D, -0.22351300716400146D, -0.22331230342388153D, -0.22311504185199738D, -0.2229161113500595D, -0.2227165549993515D, -0.22251492738723755D, -0.22231879830360413D, -0.222111314535141D, -0.2219131737947464D, -0.22171789407730103D, -0.22152048349380493D, -0.221323162317276D, -0.2211257964372635D, -0.22093181312084198D, -0.2207297384738922D, -0.22052015364170074D, -0.22031758725643158D, -0.22012105584144592D, -0.21992850303649902D, -0.21972830593585968D, -0.2195286750793457D, -0.2193296104669571D, -0.2191292941570282D, -0.21894055604934692D, -0.21874472498893738D, -0.21854627132415771D, -0.21834976971149445D, -0.21815654635429382D, -0.21795278787612915D, -0.21775475144386292D, -0.2175593227148056D, -0.21736285090446472D, -0.21716663241386414D, -0.2169671356678009D, -0.21677885949611664D, -0.21658332645893097D, -0.21638570725917816D, -0.21619734168052673D, -0.21600238978862762D, -0.21581146121025085D, -0.21561749279499054D, -0.21542775630950928D, -0.21523769199848175D, -0.2150374948978424D, -0.21483974158763885D, -0.21464426815509796D, -0.2144438624382019D, -0.2142522931098938D, -0.21405142545700073D, -0.2138548493385315D, -0.21365608274936676D, -0.21346205472946167D, -0.21327044069766998D, -0.2130790650844574D, -0.21289238333702087D, -0.21269790828227997D, -0.21250642836093903D, -0.2123108059167862D, -0.21211734414100647D, -0.21193185448646545D, -0.2117394357919693D, -0.2115425020456314D, -0.21135464310646057D, -0.21115921437740326D, -0.2109653651714325D, -0.2107720673084259D, -0.2105797827243805D, -0.2103857845067978D, -0.21019317209720612D, -0.20999492704868317D, -0.20980359613895416D, -0.20961257815361023D, -0.20942623913288116D, -0.209233820438385D, -0.20904646813869476D, -0.2088536024093628D, -0.20866578817367554D, -0.20847372710704803D, -0.20828045904636383D, -0.20809443295001984D, -0.20790085196495056D, -0.20771846175193787D, -0.20753352344036102D, -0.20734763145446777D, -0.20716027915477753D, -0.2069670557975769D, -0.20677906274795532D, -0.20658759772777557D, -0.20640024542808533D, -0.20621001720428467D, -0.2060190588235855D, -0.20582759380340576D, -0.20564205944538116D, -0.20544962584972382D, -0.2052612006664276D, -0.2050696611404419D, -0.2048760950565338D, -0.2046886533498764D, -0.20449654757976532D, -0.20430676639080048D, -0.2041216492652893D, -0.20393186807632446D, -0.20373943448066711D, -0.20355398952960968D, -0.20336341857910156D, -0.20317570865154266D, -0.20299416780471802D, -0.2028021663427353D, -0.20261310040950775D, -0.20243166387081146D, -0.20224738121032715D, -0.20206642150878906D, -0.20188181102275848D, -0.20169363915920258D, -0.2015080600976944D, -0.2013179212808609D, -0.20112863183021545D, -0.20093776285648346D, -0.20075495541095734D, -0.2005680948495865D, -0.2003868669271469D, -0.20020489394664764D, -0.20001673698425293D, -0.19983160495758057D, -0.1996394246816635D, -0.19945387542247772D, -0.19926834106445312D, -0.19908671081066132D, -0.1988958865404129D, -0.19870947301387787D, -0.19852466881275177D, -0.19834156334400177D, -0.19815687835216522D, -0.19796614348888397D, -0.19778570532798767D, -0.19759665429592133D, -0.19740843772888184D, -0.19722165167331696D, -0.19703587889671326D, -0.19684910774230957D, -0.19666774570941925D, -0.1964777112007141D, -0.19629596173763275D, -0.19611066579818726D, -0.1959228813648224D, -0.19573974609375D, -0.19555895030498505D, -0.1953638643026352D, -0.19518616795539856D, -0.19500669836997986D, -0.19482499361038208D, -0.1946471929550171D, -0.194466695189476D, -0.19428104162216187D, -0.1940973550081253D, -0.19391575455665588D, -0.19373083114624023D, -0.19354969263076782D, -0.1933702528476715D, -0.19318976998329163D, -0.19300931692123413D, -0.19283118844032288D, -0.19264520704746246D, -0.1924607753753662D, -0.1922810971736908D, -0.19210171699523926D, -0.1919163316488266D, -0.19173482060432434D, -0.19155943393707275D, -0.19138532876968384D, -0.19119767844676971D, -0.19101446866989136D, -0.1908339560031891D, -0.19065433740615845D, -0.19047808647155762D, -0.19029070436954498D, -0.19011610746383667D, -0.1899399310350418D, -0.1897595226764679D, -0.18958213925361633D, -0.18940195441246033D, -0.18922074139118195D, -0.1890474408864975D, -0.18887129426002502D, -0.18868793547153473D, -0.18850910663604736D, -0.18833401799201965D, -0.1881609410047531D, -0.1879805475473404D, -0.1877983957529068D, -0.18762242794036865D, -0.18744400143623352D, -0.18727153539657593D, -0.18709038197994232D, -0.186911940574646D, -0.18673141300678253D, -0.1865476816892624D, -0.18636727333068848D, -0.1861869841814041D, -0.18600544333457947D, -0.18582187592983246D, -0.18564167618751526D, -0.18546094000339508D, -0.18528078496456146D, -0.1851012110710144D, -0.18491904437541962D, -0.1847427636384964D, -0.18456260859966278D, -0.18438087403774261D, -0.1842058300971985D, -0.1840263456106186D, -0.1838521808385849D, -0.1836727261543274D, -0.18349887430667877D, -0.18331634998321533D, -0.18313662707805634D, -0.18296116590499878D, -0.18278826773166656D, -0.1826159507036209D, -0.18243756890296936D, -0.18226413428783417D, -0.18208879232406616D, -0.18189701437950134D, -0.1817188709974289D, -0.18154506385326385D, -0.18136811256408691D, -0.18119221925735474D, -0.18101762235164642D, -0.18084242939949036D, -0.18066288530826569D, -0.18048758804798126D, -0.1803077757358551D, -0.1801341325044632D, -0.1799568086862564D, -0.17978443205356598D, -0.17961187660694122D, -0.17943669855594635D, -0.17925851047039032D, -0.17908446490764618D, -0.17891113460063934D, -0.17873777449131012D, -0.17856022715568542D, -0.17838963866233826D, -0.17821721732616425D, -0.17804166674613953D, -0.1778649091720581D, -0.17769235372543335D, -0.17751924693584442D, -0.17734745144844055D, -0.1771826446056366D, -0.1770143061876297D, -0.17684297263622284D, -0.17666888236999512D, -0.1764875054359436D, -0.17631016671657562D, -0.1761368215084076D, -0.17596030235290527D, -0.1757875680923462D, -0.17561489343643188D, -0.17543856799602509D, -0.175258606672287D, -0.17508889734745026D, -0.1749197393655777D, -0.17475321888923645D, -0.17457622289657593D, -0.17440469563007355D, -0.17423614859580994D, -0.17406317591667175D, -0.1738888919353485D, -0.17371085286140442D, -0.17354506254196167D, -0.1733754277229309D, -0.17320691049098969D, -0.17303411662578583D, -0.17286333441734314D, -0.1726849228143692D, -0.17251433432102203D, -0.1723429262638092D, -0.17217423021793365D, -0.17199841141700745D, -0.17183169722557068D, -0.17165900766849518D, -0.17149260640144348D, -0.1713184118270874D, -0.17114870250225067D, -0.17097310721874237D, -0.17080703377723694D, -0.1706410050392151D, -0.17047066986560822D, -0.17030231654644012D, -0.17013415694236755D, -0.16996319591999054D, -0.1697862595319748D, -0.16962021589279175D, -0.1694522649049759D, -0.16928495466709137D, -0.1691145896911621D, -0.16894133388996124D, -0.16877424716949463D, -0.1686055213212967D, -0.16844305396080017D, -0.16827253997325897D, -0.16810156404972076D, -0.16793574392795563D, -0.16776280105113983D, -0.16759483516216278D, -0.16742615401744843D, -0.16726046800613403D, -0.16708528995513916D, -0.16691190004348755D, -0.16673815250396729D, -0.16657349467277527D, -0.16640760004520416D, -0.1662367582321167D, -0.16606061160564423D, -0.16588932275772095D, -0.16572310030460358D, -0.16555465757846832D, -0.16538579761981964D, -0.16521978378295898D, -0.16504855453968048D, -0.16488133370876312D, -0.1647077053785324D, -0.16454964876174927D, -0.16438791155815125D, -0.16421759128570557D, -0.16404742002487183D, -0.16388101875782013D, -0.16371379792690277D, -0.16355162858963013D, -0.1633833944797516D, -0.16321513056755066D, -0.16304640471935272D, -0.1628739833831787D, -0.16270378232002258D, -0.16253381967544556D, -0.16236473619937897D, -0.16219766438007355D, -0.1620299369096756D, -0.1618584245443344D, -0.16168925166130066D, -0.16151995956897736D, -0.16134582459926605D, -0.1611795872449875D, -0.16101405024528503D, -0.1608451008796692D, -0.16068188846111298D, -0.1605166792869568D, -0.16034835577011108D, -0.16018332540988922D, -0.16001814603805542D, -0.15985408425331116D, -0.15968838334083557D, -0.15952043235301971D, -0.1593540459871292D, -0.1591864973306656D, -0.15901817381381989D, -0.15885035693645477D, -0.1586897224187851D, -0.15852101147174835D, -0.15835918486118317D, -0.15819862484931946D, -0.15802861750125885D, -0.1578657180070877D, -0.15770186483860016D, -0.157541885972023D, -0.15737460553646088D, -0.15719760954380035D, -0.15703265368938446D, -0.15686756372451782D, -0.15670160949230194D, -0.15654122829437256D, -0.15637557208538055D, -0.15620650351047516D, -0.15603956580162048D, -0.15587256848812103D, -0.15570658445358276D, -0.1555391401052475D, -0.15537893772125244D, -0.15521250665187836D, -0.15504445135593414D, -0.1548793762922287D, -0.15472041070461273D, -0.15455928444862366D, -0.1543930172920227D, -0.15422186255455017D, -0.15405680239200592D, -0.15389008820056915D, -0.15371909737586975D, -0.15355190634727478D, -0.1533874124288559D, -0.15322037041187286D, -0.15305693447589874D, -0.15288913249969482D, -0.15272565186023712D, -0.15255971252918243D, -0.15239514410495758D, -0.15223248302936554D, -0.15206488966941833D, -0.15189997851848602D, -0.1517343968153D, -0.15157388150691986D, -0.15141001343727112D, -0.15124376118183136D, -0.1510799080133438D, -0.15091581642627716D, -0.15075315535068512D, -0.1505943238735199D, -0.15042626857757568D, -0.15026342868804932D, -0.15009838342666626D, -0.14992687106132507D, -0.14975950121879578D, -0.14959338307380676D, -0.1494319885969162D, -0.14927686750888824D, -0.1491170972585678D, -0.1489545851945877D, -0.1487915962934494D, -0.14862462878227234D, -0.14846675097942352D, -0.1482943892478943D, -0.14813122153282166D, -0.14796608686447144D, -0.1478019803762436D, -0.14763972163200378D, -0.14748099446296692D, -0.1473177820444107D, -0.14715023338794708D, -0.14698868989944458D, -0.14682012796401978D, -0.14665497839450836D, -0.14649364352226257D, -0.14632706344127655D, -0.14616291224956512D, -0.14600065350532532D, -0.1458369493484497D, -0.14567570388317108D, -0.14551441371440887D, -0.1453484296798706D, -0.14518843591213226D, -0.14502838253974915D, -0.1448645293712616D, -0.14470131695270538D, -0.14454562962055206D, -0.144387349486351D, -0.14422045648097992D, -0.14406554400920868D, -0.14389978349208832D, -0.14373210072517395D, -0.14357031881809235D, -0.14340740442276D, -0.1432454138994217D, -0.1430845707654953D, -0.14292079210281372D, -0.1427599936723709D, -0.14259862899780273D, -0.14243145287036896D, -0.142270028591156D, -0.1421079933643341D, -0.1419392079114914D, -0.1417788565158844D, -0.14161263406276703D, -0.14144699275493622D, -0.1412813663482666D, -0.14111489057540894D, -0.14095115661621094D, -0.140792116522789D, -0.14062824845314026D, -0.1404629498720169D, -0.14029960334300995D, -0.14013166725635529D, -0.13997189700603485D, -0.13981026411056519D, -0.13965271413326263D, -0.13948722183704376D, -0.1393279731273651D, -0.13916252553462982D, -0.13900236785411835D, -0.1388358473777771D, -0.13866667449474335D, -0.13850988447666168D, -0.13835175335407257D, -0.138188436627388D, -0.13802814483642578D, -0.13786524534225464D, -0.1377078741788864D, -0.13754159212112427D, -0.1373801976442337D, -0.1372184306383133D, -0.13705679774284363D, -0.13689808547496796D, -0.13673967123031616D, -0.13657420873641968D, -0.13640782237052917D, -0.13624517619609833D, -0.13608133792877197D, -0.13591967523097992D, -0.13575933873653412D, -0.13559971749782562D, -0.13544517755508423D, -0.1352863609790802D, -0.13513325154781342D, -0.13497786223888397D, -0.13481275737285614D, -0.13465309143066406D, -0.13449665904045105D, -0.13433897495269775D, -0.1341773420572281D, -0.13402383029460907D, -0.1338663548231125D, -0.1337081789970398D, -0.13354714214801788D, -0.13338331878185272D, -0.13322538137435913D, -0.13306425511837006D, -0.13290470838546753D, -0.13275213539600372D, -0.13259844481945038D, -0.1324356645345688D, -0.13227884471416473D, -0.1321146935224533D, -0.1319541037082672D, -0.131797656416893D, -0.13164083659648895D, -0.13147978484630585D, -0.13131381571292877D, -0.13115201890468597D, -0.13099059462547302D, -0.1308245062828064D, -0.1306670606136322D, -0.1305040717124939D, -0.13035070896148682D, -0.13019300997257233D, -0.1300356239080429D, -0.1298762559890747D, -0.1297183632850647D, -0.12956057488918304D, -0.12940144538879395D, -0.12924081087112427D, -0.12908275425434113D, -0.1289270669221878D, -0.12876754999160767D, -0.12860682606697083D, -0.12844565510749817D, -0.12828676402568817D, -0.12812906503677368D, -0.12797008454799652D, -0.12781330943107605D, -0.12765750288963318D, -0.12749481201171875D, -0.127337247133255D, -0.1271742433309555D, -0.1270153522491455D, -0.12685935199260712D, -0.1267004907131195D, -0.12653754651546478D, -0.12637701630592346D, -0.1262156367301941D, -0.12606389820575714D, -0.12590430676937103D, -0.12574836611747742D, -0.12559638917446136D, -0.12544165551662445D, -0.1252770870923996D, -0.1251228302717209D, -0.12496986985206604D, -0.12481474876403809D, -0.1246587485074997D, -0.12450014054775238D, -0.1243380680680275D, -0.12417808920145035D, -0.12401260435581207D, -0.12385917454957962D, -0.12369806319475174D, -0.12354270368814468D, -0.12338215857744217D, -0.12322761118412018D, -0.12307074666023254D, -0.12291423231363297D, -0.12275463342666626D, -0.12259893864393234D, -0.12243746966123581D, -0.12228085845708847D, -0.12212485074996948D, -0.12196937203407288D, -0.12180796265602112D, -0.12165087461471558D, -0.12149342894554138D, -0.12132823467254639D, -0.12117192149162292D, -0.12100870162248611D, -0.12084946036338806D, -0.12069331109523773D, -0.12053768336772919D, -0.12037955224514008D, -0.1202208548784256D, -0.12006158381700516D, -0.11990135163068771D, -0.11974664032459259D, -0.11959299445152283D, -0.11944324523210526D, -0.11928992718458176D, -0.11913513392210007D, -0.11898119002580643D, -0.11882483214139938D, -0.1186707392334938D, -0.11851347982883453D, -0.11835876107215881D, -0.11820124834775925D, -0.11804813891649246D, -0.11789484322071075D, -0.11773931980133057D, -0.11758462339639664D, -0.117423877120018D, -0.11726968735456467D, -0.11711079627275467D, -0.11694814264774323D, -0.11679580062627792D, -0.11663621664047241D, -0.11648730933666229D, -0.11632833629846573D, -0.11617368459701538D, -0.11601484566926956D, -0.1158570870757103D, -0.11570281535387039D, -0.11555135250091553D, -0.11539247632026672D, -0.11523469537496567D, -0.11507617682218552D, -0.11491613835096359D, -0.11476139724254608D, -0.11460647732019424D, -0.11445080488920212D, -0.11429022997617722D, -0.11413708329200745D, -0.11397743970155716D, -0.11382514238357544D, -0.11366745084524155D, -0.11351797729730606D, -0.11336144059896469D, -0.11320804059505463D, -0.11305557936429977D, -0.11289967596530914D, -0.11274378001689911D, -0.11258506029844284D, -0.11242981255054474D, -0.11227528750896454D, -0.11211802810430527D, -0.11196192353963852D, -0.11180936545133591D, -0.1116519570350647D, -0.11149086058139801D, -0.11133705824613571D, -0.11118285357952118D, -0.11102371662855148D, -0.11086839437484741D, -0.11070949584245682D, -0.11055301874876022D, -0.11039435863494873D, -0.11024358123540878D, -0.11008933931589127D, -0.10994099080562592D, -0.10978744924068451D, -0.1096331849694252D, -0.1094803735613823D, -0.10932327806949615D, -0.1091662347316742D, -0.10901220887899399D, -0.10886164009571075D, -0.10870997607707977D, -0.1085532084107399D, -0.10839588195085526D, -0.10824001580476761D, -0.10808181017637253D, -0.10793018341064453D, -0.10777948796749115D, -0.10762609541416168D, -0.10746936500072479D, -0.10731363296508789D, -0.10715664178133011D, -0.10699828714132309D, -0.1068406030535698D, -0.10668957233428955D, -0.106535904109478D, -0.1063794493675232D, -0.1062263771891594D, -0.10607559233903885D, -0.1059180200099945D, -0.1057700365781784D, -0.1056135967373848D, -0.10546034574508667D, -0.10531051456928253D, -0.10515706241130829D, -0.10500892251729965D, -0.10485366731882095D, -0.10469770431518555D, -0.1045420691370964D, -0.10438660532236099D, -0.10423186421394348D, -0.10408131033182144D, -0.10392504185438156D, -0.103775754570961D, -0.10362043231725693D, -0.10346867889165878D, -0.1033216342329979D, -0.10317199677228928D, -0.1030234843492508D, -0.1028713583946228D, -0.102719247341156D, -0.10256177186965942D, -0.10241074860095978D, -0.1022588387131691D, -0.10210096091032028D, -0.10195054113864899D, -0.10179688781499863D, -0.10164371132850647D, -0.10149170458316803D, -0.10133637487888336D, -0.1011854037642479D, -0.10102973878383636D, -0.10087919235229492D, -0.10073055326938629D, -0.10058251768350601D, -0.10042925179004669D, -0.10028298944234848D, -0.10012997686862946D, -0.09998201578855515D, -0.09982899576425552D, -0.0996730700135231D, -0.09951788932085037D, -0.09936707466840744D, -0.09921209514141083D, -0.09906535595655441D, -0.09891849011182785D, -0.0987686887383461D, -0.0986199602484703D, -0.09847044944763184D, -0.09832371026277542D, -0.09816580265760422D, -0.09800924360752106D, -0.09785451740026474D, -0.0977015420794487D, -0.09754469245672226D, -0.0973912850022316D, -0.09723710268735886D, -0.09708409756422043D, -0.09692969173192978D, -0.09677083045244217D, -0.09661783277988434D, -0.09646695107221603D, -0.09631767868995667D, -0.09616906195878983D, -0.0960221216082573D, -0.09587518125772476D, -0.09572049975395203D, -0.09557510167360306D, -0.09542537480592728D, -0.09527473896741867D, -0.09512560814619064D, -0.09497389942407608D, -0.09482252597808838D, -0.09466812759637833D, -0.0945177897810936D, -0.09436610341072083D, -0.0942160040140152D, -0.09406259655952454D, -0.09391862154006958D, -0.09376517683267593D, -0.09361439198255539D, -0.09346404671669006D, -0.09330684691667557D, -0.09315872937440872D, -0.09300410747528076D, -0.09285490214824677D, -0.09270570427179337D, -0.09255209565162659D, -0.09239742159843445D, -0.09224936366081238D, -0.09209839254617691D, -0.09194477647542953D, -0.09178774058818817D, -0.09163559973239899D, -0.09148869663476944D, -0.09133746474981308D, -0.09118695557117462D, -0.09104108810424805D, -0.09089026600122452D, -0.09074579924345016D, -0.09059691429138184D, -0.0904451310634613D, -0.09029250591993332D, -0.09014249593019485D, -0.08999146521091461D, -0.08984044194221497D, -0.0896981805562973D, -0.08955065906047821D, -0.08939830958843231D, -0.08925025165081024D, -0.08909676969051361D, -0.0889468863606453D, -0.0888008326292038D, -0.08865290880203247D, -0.08850424736738205D, -0.08835210651159286D, -0.08819899708032608D, -0.08805057406425476D, -0.08789926767349243D, -0.0877542570233345D, -0.08760009706020355D, -0.08745313435792923D, -0.08730407804250717D, -0.08714929223060608D, -0.08699973672628403D, -0.08685608208179474D, -0.08670856803655624D, -0.08656258881092072D, -0.08641660213470459D, -0.086270771920681D, -0.08612503111362457D, -0.08597104996442795D, -0.08581869304180145D, -0.08567001670598984D, -0.08551899343729019D, -0.08536837995052338D, -0.08521687984466553D, -0.0850711539387703D, -0.08492837101221085D, -0.08477798104286194D, -0.08462752401828766D, -0.08447655290365219D, -0.08432706445455551D, -0.08418617397546768D, -0.08403434604406357D, -0.08388318866491318D, -0.0837327241897583D, -0.08358580619096756D, -0.08344066143035889D, -0.08329291641712189D, -0.08314470201730728D, -0.08299455791711807D, -0.08284270763397217D, -0.08269276469945908D, -0.08254578709602356D, -0.08239870518445969D, -0.08224755525588989D, -0.08210334926843643D, -0.08195140957832336D, -0.08179952949285507D, -0.08164890855550766D, -0.08149830996990204D, -0.08135122805833817D, -0.08120505511760712D, -0.08105988055467606D, -0.08091382682323456D, -0.08076044917106628D, -0.0806116908788681D, -0.08046256750822067D, -0.08032169938087463D, -0.0801742672920227D, -0.08002588152885437D, -0.079876609146595D, -0.07973120361566544D, -0.07958308607339859D, -0.07943569868803024D, -0.0792907252907753D, -0.07914266735315323D, -0.07899928838014603D, -0.0788513645529747D, -0.07870672643184662D, -0.07855851948261261D, -0.07841243594884872D, -0.07826675474643707D, -0.07811979949474335D, -0.07797133177518845D, -0.07782232016324997D, -0.07767399400472641D, -0.07752782851457596D, -0.0773797407746315D, -0.0772305428981781D, -0.07708588242530823D, -0.07694590836763382D, -0.07679516822099686D, -0.07664846628904343D, -0.07649309933185577D, -0.07634805887937546D, -0.07619959115982056D, -0.07605158537626266D, -0.07590463012456894D, -0.07575789093971252D, -0.0756126120686531D, -0.0754665955901146D, -0.07531381398439407D, -0.07516654580831528D, -0.07501640915870667D, -0.07486724108457565D, -0.07472105324268341D, -0.07457690685987473D, -0.07442717999219894D, -0.07427489012479782D, -0.07413031905889511D, -0.0739874318242073D, -0.07384069263935089D, -0.07369356602430344D, -0.07354933023452759D, -0.07339967787265778D, -0.07325538247823715D, -0.07310646027326584D, -0.072956882417202D, -0.0728110745549202D, -0.07266359776258469D, -0.0725211426615715D, -0.07237620651721954D, -0.07222937792539597D, -0.07207916676998138D, -0.07193435728549957D, -0.07179314643144608D, -0.07164552807807922D, -0.07149890810251236D, -0.07135166227817535D, -0.07120280712842941D, -0.07105418294668198D, -0.07091175019741058D, -0.07076039910316467D, -0.07061431556940079D, -0.07047049701213837D, -0.07032421231269836D, -0.07017634063959122D, -0.07002970576286316D, -0.06988793611526489D, -0.06974132359027863D, -0.06959310919046402D, -0.06945087015628815D, -0.06930480152368546D, -0.06915923953056335D, -0.06900786608457565D, -0.0688617154955864D, -0.06871413439512253D, -0.06856607645750046D, -0.06841415911912918D, -0.06826581805944443D, -0.06812670081853867D, -0.06798086315393448D, -0.06783780455589294D, -0.06768807768821716D, -0.06754382699728012D, -0.06739568710327148D, -0.06724487990140915D, -0.06709926575422287D, -0.06695383787155151D, -0.06680747866630554D, -0.06665907055139542D, -0.06651457399129868D, -0.06636756658554077D, -0.06622058898210526D, -0.06607180833816528D, -0.06592177599668503D, -0.06577412784099579D, -0.0656253919005394D, -0.06547900289297104D, -0.0653318390250206D, -0.06518644094467163D, -0.06504128873348236D, -0.06489810347557068D, -0.06475608795881271D, -0.06460591405630112D, -0.06446024030447006D, -0.064316026866436D, -0.06417583674192429D, -0.06403206288814545D, -0.06388941407203674D, -0.06374424695968628D, -0.06360013782978058D, -0.0634584054350853D, -0.06331267207860947D, -0.0631692036986351D, -0.06302201002836227D, -0.06288087368011475D, -0.06273243576288223D, -0.06258194893598557D, -0.06243429332971573D, -0.06229083240032196D, -0.06214556843042374D, -0.062002599239349365D, -0.06185929477214813D, -0.061716437339782715D, -0.061570484191179276D, -0.06142384186387062D, -0.06127782538533211D, -0.061132557690143585D, -0.060989513993263245D, -0.060844529420137405D, -0.06069890409708023D, -0.06055354326963425D, -0.060405682772397995D, -0.06026533991098404D, -0.06011749058961868D, -0.059968482702970505D, -0.05982600525021553D, -0.059680480509996414D, -0.059535522013902664D, -0.059390582144260406D, -0.05924614518880844D, -0.05910341069102287D, -0.05896386876702309D, -0.05881671980023384D, -0.05867418646812439D, -0.05852854624390602D, -0.05838187783956528D, -0.05823810026049614D, -0.05809527635574341D, -0.057948093861341476D, -0.0578012652695179D, -0.05765361711382866D, -0.05750838667154312D, -0.05736393481492996D, -0.057217638939619064D, -0.05706694349646568D, -0.05692378431558609D, -0.05678245425224304D, -0.05663757398724556D, -0.05649363622069359D, -0.05634985491633415D, -0.056205663830041885D, -0.05606226995587349D, -0.05592307448387146D, -0.05577968433499336D, -0.05563392862677574D, -0.05549056455492973D, -0.05534479022026062D, -0.055201154202222824D, -0.05505699664354324D, -0.0549137219786644D, -0.05476832762360573D, -0.05462126433849335D, -0.05447656661272049D, -0.05434228852391243D, -0.05420103296637535D, -0.05406308174133301D, -0.05391890928149223D, -0.0537768192589283D, -0.05362963303923607D, -0.0534859336912632D, -0.05334062874317169D, -0.05319816619157791D, -0.05305417627096176D, -0.0529022179543972D, -0.0527631975710392D, -0.05261426791548729D, -0.05247179791331291D, -0.05232933536171913D, -0.05218454450368881D, -0.05203909054398537D, -0.05189083516597748D, -0.05174766480922699D, -0.05160299316048622D, -0.051458291709423065D, -0.051309190690517426D, -0.05115984380245209D, -0.05101843550801277D, -0.05087246745824814D, -0.05072947219014168D, -0.05057992786169052D, -0.05043843761086464D, -0.05029204860329628D, -0.05014629662036896D, -0.05000283941626549D, -0.049857232719659805D, -0.049713216722011566D, -0.04957091435790062D, -0.04942091554403305D, -0.04927506670355797D, -0.04913335666060448D, -0.048989035189151764D, -0.048844993114471436D, -0.0487007237970829D, -0.048562195152044296D, -0.048413559794425964D, -0.048270318657159805D, -0.04812940955162048D, -0.04798140004277229D, -0.0478396899998188D, -0.047694046050310135D, -0.047547876834869385D, -0.04740189015865326D, -0.04726110398769379D, -0.04712127149105072D, -0.046977218240499496D, -0.04683265835046768D, -0.046689197421073914D, -0.04654806852340698D, -0.046403829008340836D, -0.046261515468358994D, -0.04611881449818611D, -0.04596831649541855D, -0.04582914337515831D, -0.04568442329764366D, -0.04553995281457901D, -0.04539845883846283D, -0.04524900019168854D, -0.045108482241630554D, -0.04496757686138153D, -0.04482390731573105D, -0.04467904940247536D, -0.04453316330909729D, -0.044389624148607254D, -0.04424721747636795D, -0.04410555958747864D, -0.043958716094493866D, -0.04381263256072998D, -0.04366842657327652D, -0.04352462291717529D, -0.04338620603084564D, -0.04324391856789589D, -0.043100159615278244D, -0.04295606166124344D, -0.042808517813682556D, -0.04266786947846413D, -0.04252271726727486D, -0.04237944632768631D, -0.042232923209667206D, -0.042089663445949554D, -0.0419427864253521D, -0.041796110570430756D, -0.04165620356798172D, -0.04151580110192299D, -0.04137476161122322D, -0.04122743010520935D, -0.04108310863375664D, -0.0409451425075531D, -0.04079899191856384D, -0.0406576506793499D, -0.04051866754889488D, -0.04037083312869072D, -0.04022456333041191D, -0.040080901235342026D, -0.03993881866335869D, -0.03979869186878204D, -0.039654675871133804D, -0.03950592130422592D, -0.039364293217659D, -0.03922411799430847D, -0.039080843329429626D, -0.038942210376262665D, -0.038799673318862915D, -0.03865673393011093D, -0.038515783846378326D, -0.03837844729423523D, -0.03823413327336311D, -0.0380907878279686D, -0.03794614225625992D, -0.037802569568157196D, -0.0376591794192791D, -0.03751154989004135D, -0.037371594458818436D, -0.03723229467868805D, -0.0370887815952301D, -0.03694836050271988D, -0.036804623901844025D, -0.036663684993982315D, -0.03652269020676613D, -0.03638038784265518D, -0.03623593971133232D, -0.03609330207109451D, -0.03595142811536789D, -0.03580619767308235D, -0.035664405673742294D, -0.03552398458123207D, -0.03537818789482117D, -0.035238854587078094D, -0.03509785979986191D, -0.03495733439922333D, -0.034811608493328094D, -0.034666016697883606D, -0.034524593502283096D, -0.034383177757263184D, -0.03424632549285889D, -0.03410206362605095D, -0.03395908698439598D, -0.03381533920764923D, -0.03367502987384796D, -0.03353389352560043D, -0.0333939865231514D, -0.0332530252635479D, -0.0331089124083519D, -0.03296489268541336D, -0.03281978890299797D, -0.03268205374479294D, -0.032543547451496124D, -0.03239939734339714D, -0.03225564956665039D, -0.03211319074034691D, -0.031970299780368805D, -0.03183053806424141D, -0.031690504401922226D, -0.0315515473484993D, -0.03140871226787567D, -0.03127032518386841D, -0.03113543428480625D, -0.03099132515490055D, -0.03084556572139263D, -0.030708063393831253D, -0.030564403161406517D, -0.03042270988225937D, -0.030277878046035767D, -0.030134053900837898D, -0.0299934484064579D, -0.029853519052267075D, -0.02970750257372856D, -0.02956370636820793D, -0.029423074796795845D, -0.029277591034770012D, -0.02913256548345089D, -0.028991548344492912D, -0.028849191963672638D, -0.028712045401334763D, -0.028571665287017822D, -0.028429850935935974D, -0.028289183974266052D, -0.028145452961325645D, -0.02800772339105606D, -0.027868105098605156D, -0.027727505192160606D, -0.027587590739130974D, -0.027444127947092056D, -0.02730259671807289D, -0.027155976742506027D, -0.027012743055820465D, -0.026867320761084557D, -0.02672656998038292D, -0.026584992185235023D, -0.026440242305397987D, -0.026296602562069893D, -0.026151999831199646D, -0.02601231448352337D, -0.025870999321341515D, -0.025728831067681313D, -0.025589263066649437D, -0.0254491176456213D, -0.025309832766652107D, -0.025158962234854698D, -0.02501760981976986D, -0.024877915158867836D, -0.024732133373618126D, -0.024590589106082916D, -0.024444540962576866D, -0.02430100180208683D, -0.02415304444730282D, -0.02401198446750641D, -0.023868655785918236D, -0.023721497505903244D, -0.023579789325594902D, -0.023435594514012337D, -0.023291146382689476D, -0.02314934879541397D, -0.023010551929473877D, -0.0228724405169487D, -0.02272932231426239D, -0.0225907564163208D, -0.022446082904934883D, -0.02230372652411461D, -0.022165967151522636D, -0.022024204954504967D, -0.021882086992263794D, -0.02174002304673195D, -0.02160024642944336D, -0.021454278379678726D, -0.02131497487425804D, -0.02117258496582508D, -0.021028701215982437D, -0.02088312990963459D, -0.020745303481817245D, -0.020600121468305588D, -0.020457785576581955D, -0.0203145369887352D, -0.020174575969576836D, -0.020029140636324883D, -0.019890660420060158D, -0.01975022256374359D, -0.01960756629705429D, -0.019467037171125412D, -0.019320420920848846D, -0.019179683178663254D, -0.01904134452342987D, -0.018906118348240852D, -0.01876520924270153D, -0.018623512238264084D, -0.018482543528079987D, -0.01834135875105858D, -0.01820279471576214D, -0.018056906759738922D, -0.017920710146427155D, -0.01777799427509308D, -0.01763162389397621D, -0.017489714547991753D, -0.017347203567624092D, -0.017202477902173996D, -0.017058173194527626D, -0.01691833697259426D, -0.01677481085062027D, -0.016630994156003D, -0.016491299495100975D, -0.016348596662282944D, -0.01620868779718876D, -0.016068479046225548D, -0.015927160158753395D, -0.015780296176671982D, -0.015641076490283012D, -0.01549579482525587D, -0.015356827527284622D, -0.015214596875011921D, -0.015070712193846703D, -0.014923106878995895D, -0.014777173288166523D, -0.014636659994721413D, -0.014497545547783375D, -0.01435788907110691D, -0.014213880524039268D, -0.014070038683712482D, -0.013929210603237152D, -0.013789304532110691D, -0.013650632463395596D, -0.013506708666682243D, -0.013362940400838852D, -0.013227197341620922D, -0.01308612059801817D, -0.012950407341122627D, -0.012812728062272072D, -0.012670092284679413D, -0.012525119818747044D, -0.012382328510284424D, -0.012240074574947357D, -0.012100824154913425D, -0.011954340152442455D, -0.011809084564447403D, -0.011668648570775986D, -0.011526428163051605D, -0.011384048499166965D, -0.011242672801017761D, -0.011099583469331264D, -0.010958466678857803D, -0.010816705413162708D, -0.010674509219825268D, -0.01053413562476635D, -0.010388684459030628D, -0.010249142535030842D, -0.01011234987527132D, -0.009969789534807205D, -0.009829124435782433D, -0.009690780192613602D, -0.00955201406031847D, -0.009414111264050007D, -0.009270462207496166D, -0.009133466519415379D, -0.008997434750199318D, -0.008857715874910355D, -0.008718002587556839D, -0.00857506226748228D, -0.008436493575572968D, -0.0082900645211339D, -0.008144848048686981D, -0.008006873540580273D, -0.007865924388170242D, -0.007721261121332645D, -0.00757999112829566D, -0.007438249886035919D, -0.0072948825545609D, -0.007154085673391819D, -0.007011679001152515D, -0.00687157129868865D, -0.00673050107434392D, -0.006592079531401396D, -0.006459984928369522D, -0.006322549190372229D, -0.006178436800837517D, -0.0060307616367936134D, -0.005891833920031786D, -0.005752726923674345D, -0.005611956585198641D, -0.0054701571352779865D, -0.005323751829564571D, -0.0051832739263772964D, -0.005041905678808689D, -0.00490262545645237D, -0.004762133117765188D, -0.004622789565473795D, -0.004480161238461733D, -0.004337271209806204D, -0.004192086402326822D, -0.004049763083457947D, -0.003913718741387129D, -0.0037738564424216747D, -0.0036340609658509493D, -0.003496516030281782D, -0.0033569824881851673D, -0.0032230240758508444D, -0.003080387134104967D, -0.002938604447990656D, -0.002798959845677018D, -0.0026581448037177324D, -0.0025131211150437593D, -0.002374080941081047D, -0.0022358258720487356D, -0.002095262985676527D, -0.0019611597526818514D, -0.0018215921008959413D, -0.001680250046774745D, -0.0015372197376564145D, -0.0014027993893250823D, -0.0012627525720745325D, -0.0011206334456801414D, -9.801845299080014E-4D, -8.360585197806358E-4D, -6.988595123402774E-4D, -5.616724956780672E-4D, -4.2402747203595936E-4D, -2.863466797862202E-4D, -1.5011828509159386E-4D, -1.1911492038052529E-5D, 1.0044277587439865E-4D, 2.4089615908451378E-4D, 3.8259042776189744E-4D, 5.168318748474121E-4D, 6.586313829757273E-4D, 7.998387445695698E-4D, 9.450495708733797E-4D, 0.0010857662418857217D, 0.0012270103907212615D, 0.0013727317564189434D, 0.0015129010425880551D, 0.0016575645422562957D, 0.0017949064495041966D, 0.0019364129984751344D, 0.0020784020889550447D, 0.0022141814697533846D, 0.002355905482545495D, 0.0024919311981648207D, 0.0026356957387179136D, 0.002776813693344593D, 0.002913307398557663D, 0.0030520898289978504D, 0.0031952024437487125D, 0.003334963461384177D, 0.0034765605814754963D, 0.0036186855286359787D, 0.003756078891456127D, 0.003890153020620346D, 0.00403519906103611D, 0.004175015725195408D, 0.004315280355513096D, 0.004453583620488644D, 0.004600624553859234D, 0.004738769959658384D, 0.0048819067887961864D, 0.00502460403367877D, 0.005163980647921562D, 0.00530367624014616D, 0.0054444135166704655D, 0.005587113089859486D, 0.005727327894419432D, 0.005868169944733381D, 0.006005023140460253D, 0.006145890802145004D, 0.006285244598984718D, 0.006429470144212246D, 0.006562682334333658D, 0.006704656407237053D, 0.006846507545560598D, 0.006985656917095184D, 0.007125002332031727D, 0.0072641754522919655D, 0.007406939286738634D, 0.007548102177679539D, 0.007690674625337124D, 0.007831089198589325D, 0.007975874468684196D, 0.008120712824165821D, 0.008261434733867645D, 0.008401445113122463D, 0.008544900454580784D, 0.008687532506883144D, 0.008825301192700863D, 0.008967659436166286D, 0.00910977553576231D, 0.009249896742403507D, 0.009386919438838959D, 0.009527354501187801D, 0.009668641723692417D, 0.009810841642320156D, 0.009948905557394028D, 0.010086851194500923D, 0.010232945904135704D, 0.010377375409007072D, 0.010519984178245068D, 0.01066502183675766D, 0.010805521160364151D, 0.01095004752278328D, 0.011089478619396687D, 0.011232255026698112D, 0.011374537833034992D, 0.011516883037984371D, 0.011656570248305798D, 0.01180147286504507D, 0.011942529119551182D, 0.012080904096364975D, 0.012226544320583344D, 0.012367763556540012D, 0.01251029223203659D, 0.012649907730519772D, 0.012789136730134487D, 0.012928737327456474D, 0.01306520588696003D, 0.01320936344563961D, 0.013349758461117744D, 0.01349073089659214D, 0.01362910307943821D, 0.013771780766546726D, 0.013916674070060253D, 0.014057740569114685D, 0.014193498529493809D, 0.014332176186144352D, 0.014474655501544476D, 0.014616861939430237D, 0.01476175058633089D, 0.014896937645971775D, 0.015033396892249584D, 0.015173542313277721D, 0.015313568525016308D, 0.015453768894076347D, 0.01559944823384285D, 0.015740878880023956D, 0.0158759206533432D, 0.016010040417313576D, 0.01614815928041935D, 0.016291707754135132D, 0.01642908714711666D, 0.016571102663874626D, 0.0167134590446949D, 0.016856668516993523D, 0.01699613407254219D, 0.017135608941316605D, 0.017271164804697037D, 0.017408248037099838D, 0.017549676820635796D, 0.017692318186163902D, 0.01783503033220768D, 0.017975015565752983D, 0.018124109134078026D, 0.018262648954987526D, 0.01840408705174923D, 0.01854878105223179D, 0.01869070902466774D, 0.01883384957909584D, 0.01896996609866619D, 0.019111407920718193D, 0.019254807382822037D, 0.01939486153423786D, 0.019534043967723846D, 0.019675271585583687D, 0.01981993578374386D, 0.0199629794806242D, 0.020102735608816147D, 0.02024231106042862D, 0.02038371004164219D, 0.02052323706448078D, 0.020661482587456703D, 0.02080468460917473D, 0.020946234464645386D, 0.021089831367135048D, 0.021232876926660538D, 0.021373441442847252D, 0.021513110026717186D, 0.021651804447174072D, 0.021792175248265266D, 0.02193247526884079D, 0.02207680605351925D, 0.022216327488422394D, 0.022360535338521004D, 0.022502677515149117D, 0.022643806412816048D, 0.022783884778618813D, 0.022923531010746956D, 0.023063546046614647D, 0.023204835131764412D, 0.02334384247660637D, 0.0234853345900774D, 0.023626044392585754D, 0.023764535784721375D, 0.023903118446469307D, 0.024048229679465294D, 0.024190595373511314D, 0.024332139641046524D, 0.024473512545228004D, 0.024614179506897926D, 0.02475305274128914D, 0.02489588037133217D, 0.025042027235031128D, 0.02518259361386299D, 0.02532017230987549D, 0.025456052273511887D, 0.025593649595975876D, 0.02572823315858841D, 0.025868959724903107D, 0.026007654145359993D, 0.026148367673158646D, 0.0262919794768095D, 0.026437588036060333D, 0.02657989040017128D, 0.02672424539923668D, 0.02686365135014057D, 0.027008309960365295D, 0.02714969776570797D, 0.0272962786257267D, 0.027433041483163834D, 0.027577880769968033D, 0.027716439217329025D, 0.02785547636449337D, 0.02799663133919239D, 0.028138086199760437D, 0.028283756226301193D, 0.02842445857822895D, 0.028564687818288803D, 0.02871151641011238D, 0.028853772208094597D, 0.028992416337132454D, 0.029137132689356804D, 0.02927905134856701D, 0.02942042425274849D, 0.029561731964349747D, 0.02970500849187374D, 0.029843736439943314D, 0.029985306784510612D, 0.030128538608551025D, 0.030271068215370178D, 0.030412210151553154D, 0.030556289479136467D, 0.030699994415044785D, 0.030839497223496437D, 0.030983222648501396D, 0.031125547364354134D, 0.03126153349876404D, 0.03140360862016678D, 0.03154664859175682D, 0.03168836608529091D, 0.03183047100901604D, 0.031973324716091156D, 0.032119471579790115D, 0.032263923436403275D, 0.03240408003330231D, 0.03255024179816246D, 0.03268946334719658D, 0.032828912138938904D, 0.03296731039881706D, 0.033110037446022034D, 0.0332510732114315D, 0.033393360674381256D, 0.03353823721408844D, 0.03368401527404785D, 0.033826667815446854D, 0.03397251293063164D, 0.03411085903644562D, 0.03425149992108345D, 0.03439020738005638D, 0.03453071042895317D, 0.03467126935720444D, 0.03481120616197586D, 0.03495373949408531D, 0.03510218858718872D, 0.03524219989776611D, 0.03538297861814499D, 0.03552223742008209D, 0.03566665202379227D, 0.035811614245176315D, 0.03595492243766785D, 0.036098580807447433D, 0.03623691946268082D, 0.036375124007463455D, 0.03651357814669609D, 0.03665870800614357D, 0.03680017217993736D, 0.03694377467036247D, 0.03708707168698311D, 0.03722917661070824D, 0.03737087547779083D, 0.03751356527209282D, 0.037658076733350754D, 0.03780198469758034D, 0.03794156014919281D, 0.03808009997010231D, 0.038226112723350525D, 0.03837020695209503D, 0.03851321339607239D, 0.03865883871912956D, 0.038796741515398026D, 0.0389384850859642D, 0.039080578833818436D, 0.039222534745931625D, 0.03936350718140602D, 0.03950297087430954D, 0.039649803191423416D, 0.03979025036096573D, 0.03993142768740654D, 0.04007851704955101D, 0.04022213816642761D, 0.04036031663417816D, 0.04050862044095993D, 0.04065130278468132D, 0.04079713299870491D, 0.04093990474939346D, 0.04108305647969246D, 0.041225969791412354D, 0.041370511054992676D, 0.04151448979973793D, 0.041656360030174255D, 0.04179975762963295D, 0.0419391430914402D, 0.04208112135529518D, 0.042221635580062866D, 0.04236719012260437D, 0.04251044988632202D, 0.042655352503061295D, 0.04279865324497223D, 0.04294498264789581D, 0.04309157654643059D, 0.0432388074696064D, 0.043379221111536026D, 0.04352143779397011D, 0.0436660498380661D, 0.043809980154037476D, 0.043953701853752136D, 0.04409695789217949D, 0.044244274497032166D, 0.04439061880111694D, 0.04453623667359352D, 0.044679705053567886D, 0.04482024908065796D, 0.044966381043195724D, 0.04511309415102005D, 0.04525725916028023D, 0.04540384188294411D, 0.04554888978600502D, 0.04569651558995247D, 0.045842498540878296D, 0.04599529504776001D, 0.04613592103123665D, 0.04628181457519531D, 0.04642462357878685D, 0.046567466109991074D, 0.04671074077486992D, 0.04685356095433235D, 0.04699184000492096D, 0.04713955894112587D, 0.047283634543418884D, 0.04742766171693802D, 0.047572653740644455D, 0.04771960899233818D, 0.04786102473735809D, 0.048005830496549606D, 0.04814976453781128D, 0.04828828200697899D, 0.04843548312783241D, 0.04858119785785675D, 0.048723604530096054D, 0.048864372074604034D, 0.049006760120391846D, 0.04914587363600731D, 0.049290046095848083D, 0.04943503066897392D, 0.0495775006711483D, 0.04972691833972931D, 0.04986768960952759D, 0.05001039057970047D, 0.050152115523815155D, 0.05029670521616936D, 0.050433799624443054D, 0.05058044195175171D, 0.05072341486811638D, 0.050868451595306396D, 0.05100876837968826D, 0.05115212872624397D, 0.05129583179950714D, 0.051437895745038986D, 0.051578447222709656D, 0.05172283574938774D, 0.05186808481812477D, 0.05201121047139168D, 0.052156444638967514D, 0.05230209603905678D, 0.05244390666484833D, 0.05258335545659065D, 0.052733324468135834D, 0.052873220294713974D, 0.053014714270830154D, 0.053156204521656036D, 0.05330459401011467D, 0.05344386771321297D, 0.05358799546957016D, 0.05373207479715347D, 0.05387803167104721D, 0.05401966720819473D, 0.054165832698345184D, 0.05431075394153595D, 0.05445530638098717D, 0.05459970980882645D, 0.05474735423922539D, 0.054893892258405685D, 0.055043041706085205D, 0.055188897997140884D, 0.05533526465296745D, 0.055484600365161896D, 0.055627673864364624D, 0.05576412007212639D, 0.05590971186757088D, 0.05605686828494072D, 0.056200768798589706D, 0.05634428188204765D, 0.056488286703825D, 0.05663173645734787D, 0.056780435144901276D, 0.056926608085632324D, 0.05707206204533577D, 0.05721326544880867D, 0.057361286133527756D, 0.05750444158911705D, 0.05764487013220787D, 0.0577898845076561D, 0.05793076753616333D, 0.058076728135347366D, 0.058221399784088135D, 0.05836668983101845D, 0.0585147961974144D, 0.05866195634007454D, 0.058808885514736176D, 0.05895547941327095D, 0.05910357087850571D, 0.05925220251083374D, 0.059399936348199844D, 0.059544846415519714D, 0.0596906840801239D, 0.05983436480164528D, 0.059979792684316635D, 0.06012662872672081D, 0.06027741730213165D, 0.060420021414756775D, 0.06056952476501465D, 0.06071772798895836D, 0.06086060404777527D, 0.06100845709443092D, 0.06115204840898514D, 0.06129597872495651D, 0.061436720192432404D, 0.06158551573753357D, 0.061730656772851944D, 0.061872199177742004D, 0.062023792415857315D, 0.06216789036989212D, 0.062311336398124695D, 0.06245182454586029D, 0.06259559094905853D, 0.06274344027042389D, 0.06288424134254456D, 0.06303341686725616D, 0.06318292021751404D, 0.06332501769065857D, 0.0634644404053688D, 0.06361117213964462D, 0.06375652551651001D, 0.06389967352151871D, 0.06404681503772736D, 0.06419290602207184D, 0.06433777511119843D, 0.06448273360729218D, 0.06462704390287399D, 0.06476743519306183D, 0.06491541117429733D, 0.06506048142910004D, 0.06520365178585052D, 0.06535018980503082D, 0.06549554318189621D, 0.06563982367515564D, 0.06578198075294495D, 0.06592462956905365D, 0.06607501208782196D, 0.06622092425823212D, 0.06637339293956757D, 0.06651996076107025D, 0.06666484475135803D, 0.06681187450885773D, 0.06696231663227081D, 0.06711585819721222D, 0.06726408004760742D, 0.06741142272949219D, 0.06756040453910828D, 0.06770794093608856D, 0.06785459071397781D, 0.06800307333469391D, 0.0681459829211235D, 0.06829492747783661D, 0.06843948364257812D, 0.06858658790588379D, 0.06873581558465958D, 0.06887979060411453D, 0.06902722269296646D, 0.06917352229356766D, 0.06932160258293152D, 0.06947020441293716D, 0.06961338222026825D, 0.0697583258152008D, 0.06990432739257812D, 0.07005196064710617D, 0.07020289450883865D, 0.07034890353679657D, 0.0704943984746933D, 0.07064209878444672D, 0.07078889012336731D, 0.07093801349401474D, 0.07108846306800842D, 0.07123790681362152D, 0.0713827982544899D, 0.07153139263391495D, 0.07167878746986389D, 0.0718243345618248D, 0.07197458297014236D, 0.0721186175942421D, 0.07226993888616562D, 0.07241969555616379D, 0.07256375253200531D, 0.07271335273981094D, 0.0728621557354927D, 0.07300735265016556D, 0.07315520942211151D, 0.0733007937669754D, 0.07344561070203781D, 0.07359104603528976D, 0.07373455911874771D, 0.07388798892498016D, 0.07403958588838577D, 0.07419036328792572D, 0.07433661073446274D, 0.07448694854974747D, 0.07463737577199936D, 0.07478373497724533D, 0.07492654025554657D, 0.07507633417844772D, 0.07522371411323547D, 0.07537233084440231D, 0.07551730424165726D, 0.07567018270492554D, 0.07581793516874313D, 0.07596828043460846D, 0.07611866295337677D, 0.07626424729824066D, 0.07641275972127914D, 0.07655782997608185D, 0.07670912891626358D, 0.07685425132513046D, 0.0769948735833168D, 0.07714076340198517D, 0.07728724926710129D, 0.07743407785892487D, 0.07758434861898422D, 0.07773226499557495D, 0.07788585126399994D, 0.07802983373403549D, 0.07818049192428589D, 0.07832662761211395D, 0.0784769281744957D, 0.07862069457769394D, 0.07877039164304733D, 0.07891900837421417D, 0.07907077670097351D, 0.07921970635652542D, 0.07936611026525497D, 0.07951349020004272D, 0.07966248691082001D, 0.07980795949697495D, 0.07995842397212982D, 0.08010289818048477D, 0.08025183528661728D, 0.08040019869804382D, 0.0805511549115181D, 0.08069602400064468D, 0.08084388077259064D, 0.08099634200334549D, 0.08114219456911087D, 0.08129317313432693D, 0.08143977075815201D, 0.08159446716308594D, 0.08174245059490204D, 0.08189191669225693D, 0.08204131573438644D, 0.08219429105520248D, 0.08234331756830215D, 0.08249454945325851D, 0.08264464884996414D, 0.08279923349618912D, 0.08295143395662308D, 0.08310498297214508D, 0.08325477689504623D, 0.08341126888990402D, 0.08355995267629623D, 0.08371108770370483D, 0.0838567465543747D, 0.0840054377913475D, 0.08415643125772476D, 0.0843018889427185D, 0.08445502817630768D, 0.08460331708192825D, 0.08475178480148315D, 0.08490157872438431D, 0.0850466936826706D, 0.08519754558801651D, 0.08534461259841919D, 0.08549437671899796D, 0.08564329892396927D, 0.08579885959625244D, 0.08595023304224014D, 0.08609388023614883D, 0.08624261617660522D, 0.08639498800039291D, 0.08654710650444031D, 0.08670050650835037D, 0.08685077726840973D, 0.08700422197580338D, 0.08715102076530457D, 0.0872977003455162D, 0.08744174242019653D, 0.08759422600269318D, 0.08774594217538834D, 0.08788730204105377D, 0.0880391076207161D, 0.08819255977869034D, 0.08835027366876602D, 0.08849414438009262D, 0.08864499628543854D, 0.08879048377275467D, 0.0889355018734932D, 0.08908633887767792D, 0.08923996984958649D, 0.08938561379909515D, 0.08953885734081268D, 0.08968373388051987D, 0.08983418345451355D, 0.0899851843714714D, 0.09013000875711441D, 0.09028015285730362D, 0.09042900800704956D, 0.09057943522930145D, 0.09072867780923843D, 0.09087312966585159D, 0.0910261869430542D, 0.09117311239242554D, 0.09132302552461624D, 0.09147395193576813D, 0.09162616729736328D, 0.09177488088607788D, 0.09192109853029251D, 0.09207016974687576D, 0.09221813082695007D, 0.09237463772296906D, 0.09252386540174484D, 0.0926787331700325D, 0.09283152222633362D, 0.0929817333817482D, 0.09312929958105087D, 0.09328164160251617D, 0.09343400597572327D, 0.09358806163072586D, 0.09373386949300766D, 0.09388978779315948D, 0.09403824061155319D, 0.09419355541467667D, 0.09434627741575241D, 0.09449343383312225D, 0.09464648365974426D, 0.09479928016662598D, 0.0949493870139122D, 0.09509287029504776D, 0.09524017572402954D, 0.09539571404457092D, 0.0955447256565094D, 0.09569557756185532D, 0.0958479791879654D, 0.09600166976451874D, 0.09614894539117813D, 0.0962982177734375D, 0.09644953906536102D, 0.09659972786903381D, 0.09674496948719025D, 0.09690061956644058D, 0.09705154597759247D, 0.09720408916473389D, 0.09735329449176788D, 0.09750240296125412D, 0.09765297919511795D, 0.09780307859182358D, 0.09795534610748291D, 0.09811047464609146D, 0.09826676547527313D, 0.09841451048851013D, 0.09856410324573517D, 0.09871689975261688D, 0.09886790066957474D, 0.099018894135952D, 0.09916773438453674D, 0.09932077676057816D, 0.09947634488344193D, 0.09962969273328781D, 0.09978242218494415D, 0.09993064403533936D, 0.10008084774017334D, 0.10023438930511475D, 0.10038559883832932D, 0.10053691267967224D, 0.10068517923355103D, 0.1008366048336029D, 0.10099314153194427D, 0.10114269703626633D, 0.10129916667938232D, 0.10144601762294769D, 0.10159671306610107D, 0.10175005346536636D, 0.10190296918153763D, 0.10205913335084915D, 0.10221262276172638D, 0.10236292332410812D, 0.10252030938863754D, 0.10267956554889679D, 0.10282602161169052D, 0.10297860950231552D, 0.10312694311141968D, 0.10327927768230438D, 0.10343994200229645D, 0.10359508544206619D, 0.10374914109706879D, 0.10390400141477585D, 0.10405304282903671D, 0.10420652478933334D, 0.10436088591814041D, 0.10451732575893402D, 0.10467734932899475D, 0.1048327088356018D, 0.10498455911874771D, 0.10513525456190109D, 0.10528642684221268D, 0.1054416224360466D, 0.10559043288230896D, 0.10574282705783844D, 0.10589909553527832D, 0.10605556517839432D, 0.10620948672294617D, 0.10636616498231888D, 0.10651878267526627D, 0.10667099058628082D, 0.1068253219127655D, 0.10697854310274124D, 0.10713843256235123D, 0.10728807747364044D, 0.10744231194257736D, 0.10759419202804565D, 0.1077449843287468D, 0.10790048539638519D, 0.1080583855509758D, 0.10821515321731567D, 0.1083710640668869D, 0.10852231085300446D, 0.10867666453123093D, 0.10882777720689774D, 0.10898458957672119D, 0.10913711041212082D, 0.10929664224386215D, 0.10945430397987366D, 0.10961125046014786D, 0.10976684093475342D, 0.10992513597011566D, 0.11008249223232269D, 0.11024082452058792D, 0.1103985533118248D, 0.11054976284503937D, 0.11070134490728378D, 0.1108558252453804D, 0.11100988835096359D, 0.11115804314613342D, 0.11131478101015091D, 0.11147209256887436D, 0.11162741482257843D, 0.11178641021251678D, 0.11193942278623581D, 0.1120971292257309D, 0.11224858462810516D, 0.11240638792514801D, 0.11256378889083862D, 0.11272016912698746D, 0.11287200450897217D, 0.11303041875362396D, 0.11318613588809967D, 0.11333518475294113D, 0.11348620057106018D, 0.11363913863897324D, 0.11379265785217285D, 0.11394768208265305D, 0.1140977144241333D, 0.11425047367811203D, 0.1144118458032608D, 0.11457011848688126D, 0.11472522467374802D, 0.11488304287195206D, 0.11503463238477707D, 0.11518769711256027D, 0.11534227430820465D, 0.11550097167491913D, 0.11565592885017395D, 0.11581210047006607D, 0.11596544831991196D, 0.11612154543399811D, 0.11628284305334091D, 0.11644155532121658D, 0.11660086363554001D, 0.11675584316253662D, 0.1169113963842392D, 0.11706878989934921D, 0.11722639948129654D, 0.11737873405218124D, 0.11753018200397491D, 0.11769700050354004D, 0.1178499087691307D, 0.11800309270620346D, 0.11816198378801346D, 0.1183200553059578D, 0.11847332119941711D, 0.11863360553979874D, 0.1187887191772461D, 0.11894822865724564D, 0.11911315470933914D, 0.11926519870758057D, 0.11942169815301895D, 0.11957871168851852D, 0.11973323673009872D, 0.11989237368106842D, 0.12004467844963074D, 0.12020543962717056D, 0.12036484479904175D, 0.1205243393778801D, 0.12068185210227966D, 0.12084473669528961D, 0.12100447714328766D, 0.12115930765867233D, 0.12131694704294205D, 0.1214812844991684D, 0.12163779884576797D, 0.12179568409919739D, 0.12195295840501785D, 0.12211063504219055D, 0.12226805835962296D, 0.12242195755243301D, 0.12257634848356247D, 0.12273655086755753D, 0.12289784848690033D, 0.12306149303913116D, 0.1232261061668396D, 0.12338338792324066D, 0.12354311347007751D, 0.12370559573173523D, 0.12387170642614365D, 0.12403009831905365D, 0.12418466806411743D, 0.12434112280607224D, 0.1244964450597763D, 0.12465308606624603D, 0.12481117248535156D, 0.12496909499168396D, 0.12512359023094177D, 0.12528195977210999D, 0.12543469667434692D, 0.12559561431407928D, 0.12575115263462067D, 0.12590746581554413D, 0.12606586515903473D, 0.12622293829917908D, 0.12637664377689362D, 0.12653762102127075D, 0.12669754028320312D, 0.12685619294643402D, 0.1270214170217514D, 0.12718062102794647D, 0.12733519077301025D, 0.12749606370925903D, 0.12765872478485107D, 0.12782463431358337D, 0.12798020243644714D, 0.1281414031982422D, 0.1283019781112671D, 0.12846773862838745D, 0.1286260485649109D, 0.12878255546092987D, 0.12894503772258759D, 0.1291048526763916D, 0.12926606833934784D, 0.12942789494991302D, 0.12959156930446625D, 0.12974515557289124D, 0.12989819049835205D, 0.1300552934408188D, 0.13021644949913025D, 0.13037624955177307D, 0.13053417205810547D, 0.13069522380828857D, 0.13085974752902985D, 0.13101573288440704D, 0.1311684399843216D, 0.13133539259433746D, 0.13149294257164001D, 0.13164502382278442D, 0.13180053234100342D, 0.1319563388824463D, 0.13211700320243835D, 0.1322767436504364D, 0.13244172930717468D, 0.1325972080230713D, 0.13275986909866333D, 0.13291573524475098D, 0.1330719292163849D, 0.1332334727048874D, 0.13339528441429138D, 0.13355481624603271D, 0.1337166279554367D, 0.13387836515903473D, 0.13404130935668945D, 0.13420721888542175D, 0.1343671977519989D, 0.1345280408859253D, 0.1346929669380188D, 0.13485346734523773D, 0.13500912487506866D, 0.13516193628311157D, 0.13532406091690063D, 0.13548418879508972D, 0.13564568758010864D, 0.135810986161232D, 0.13597291707992554D, 0.13613833487033844D, 0.1363004446029663D, 0.13646268844604492D, 0.1366201788187027D, 0.13678020238876343D, 0.13693927228450775D, 0.13709722459316254D, 0.1372576802968979D, 0.13741405308246613D, 0.13756953179836273D, 0.13772514462471008D, 0.13788801431655884D, 0.13804712891578674D, 0.13820964097976685D, 0.13837288320064545D, 0.13853824138641357D, 0.13870278000831604D, 0.13886971771717072D, 0.13903354108333588D, 0.13919901847839355D, 0.13936829566955566D, 0.13953237235546112D, 0.13969917595386505D, 0.1398545652627945D, 0.14002016186714172D, 0.14017291367053986D, 0.1403316706418991D, 0.14050057530403137D, 0.14065955579280853D, 0.14082512259483337D, 0.1409870684146881D, 0.14115603268146515D, 0.14131535589694977D, 0.14147478342056274D, 0.14164136350154877D, 0.14179907739162445D, 0.14195680618286133D, 0.14212191104888916D, 0.14228470623493195D, 0.14245115220546722D, 0.14261163771152496D, 0.14276936650276184D, 0.14292646944522858D, 0.14308787882328033D, 0.14325685799121857D, 0.14342321455478668D, 0.14359009265899658D, 0.1437581181526184D, 0.14392387866973877D, 0.14408327639102936D, 0.14425180852413177D, 0.14441044628620148D, 0.14458023011684418D, 0.1447472721338272D, 0.14490540325641632D, 0.14506784081459045D, 0.14523136615753174D, 0.14539727568626404D, 0.14555899798870087D, 0.1457156389951706D, 0.14588384330272675D, 0.146047443151474D, 0.14621107280254364D, 0.14637504518032074D, 0.14653868973255157D, 0.14670564234256744D, 0.1468755155801773D, 0.14703933894634247D, 0.14720577001571655D, 0.14737312495708466D, 0.14753885567188263D, 0.14770390093326569D, 0.14786669611930847D, 0.14803257584571838D, 0.14819718897342682D, 0.14836236834526062D, 0.14852797985076904D, 0.14869222044944763D, 0.14885452389717102D, 0.1490185558795929D, 0.14917722344398499D, 0.1493404656648636D, 0.14950552582740784D, 0.14966335892677307D, 0.14982236921787262D, 0.14998695254325867D, 0.1501506268978119D, 0.15031972527503967D, 0.1504816859960556D, 0.15064984560012817D, 0.15081049501895905D, 0.1509808599948883D, 0.15114429593086243D, 0.151309534907341D, 0.15147188305854797D, 0.15163883566856384D, 0.1517990082502365D, 0.15196684002876282D, 0.15213605761528015D, 0.1523030698299408D, 0.15247197449207306D, 0.1526411473751068D, 0.1528036892414093D, 0.15297077596187592D, 0.15313620865345D, 0.1533014178276062D, 0.1534666270017624D, 0.153630793094635D, 0.15379439294338226D, 0.15396162867546082D, 0.15412606298923492D, 0.15429098904132843D, 0.15445642173290253D, 0.15462461113929749D, 0.1547926366329193D, 0.15496547520160675D, 0.15512865781784058D, 0.15529468655586243D, 0.15546265244483948D, 0.1556297242641449D, 0.1557958573102951D, 0.1559613198041916D, 0.15613020956516266D, 0.15629254281520844D, 0.15645910799503326D, 0.15662696957588196D, 0.15679779648780823D, 0.1569603830575943D, 0.1571267694234848D, 0.15729504823684692D, 0.15745952725410461D, 0.15762628614902496D, 0.15778855979442596D, 0.15795747935771942D, 0.1581190824508667D, 0.15828733146190643D, 0.15845201909542084D, 0.15861950814723969D, 0.1587860882282257D, 0.1589500457048416D, 0.15911708772182465D, 0.15928740799427032D, 0.1594506800174713D, 0.1596156507730484D, 0.1597830355167389D, 0.15995223820209503D, 0.1601230353116989D, 0.16028858721256256D, 0.16046783328056335D, 0.16063354909420013D, 0.16080449521541595D, 0.16097332537174225D, 0.16114337742328644D, 0.16131465137004852D, 0.161483496427536D, 0.1616491973400116D, 0.16181625425815582D, 0.1619846075773239D, 0.16215431690216064D, 0.16232497990131378D, 0.16249686479568481D, 0.1626671552658081D, 0.16284231841564178D, 0.16301144659519196D, 0.16317616403102875D, 0.1633453667163849D, 0.1635095179080963D, 0.1636842042207718D, 0.1638593226671219D, 0.16402937471866608D, 0.16418977081775665D, 0.1643621176481247D, 0.16453686356544495D, 0.1647082269191742D, 0.16487736999988556D, 0.16504469513893127D, 0.16521750390529633D, 0.16538292169570923D, 0.16555410623550415D, 0.16572774946689606D, 0.16590924561023712D, 0.1660730093717575D, 0.16624289751052856D, 0.16641287505626678D, 0.16657964885234833D, 0.1667483001947403D, 0.16692405939102173D, 0.16709285974502563D, 0.16726498305797577D, 0.1674390435218811D, 0.1676134467124939D, 0.16778451204299927D, 0.16795344650745392D, 0.16812381148338318D, 0.16829201579093933D, 0.1684664785861969D, 0.1686391979455948D, 0.16881050169467926D, 0.16898894309997559D, 0.16915665566921234D, 0.16932551562786102D, 0.16949592530727386D, 0.1696702241897583D, 0.16984823346138D, 0.17002031207084656D, 0.1701897382736206D, 0.17036403715610504D, 0.17053993046283722D, 0.17071034014225006D, 0.1708792746067047D, 0.1710500866174698D, 0.17121891677379608D, 0.17139190435409546D, 0.17156367003917694D, 0.17173637449741364D, 0.17190755903720856D, 0.1720849573612213D, 0.17225277423858643D, 0.17242112755775452D, 0.17259423434734344D, 0.17276640236377716D, 0.17293871939182281D, 0.17311054468154907D, 0.17328397929668427D, 0.17345906794071198D, 0.17363303899765015D, 0.1738104373216629D, 0.17397917807102203D, 0.17414800822734833D, 0.17431917786598206D, 0.17449432611465454D, 0.17466172575950623D, 0.1748395413160324D, 0.17501668632030487D, 0.17519143223762512D, 0.17536838352680206D, 0.1755412071943283D, 0.17571064829826355D, 0.17589080333709717D, 0.17606942355632782D, 0.176247239112854D, 0.17641842365264893D, 0.17658698558807373D, 0.17676332592964172D, 0.176935613155365D, 0.17710785567760468D, 0.17728090286254883D, 0.17745928466320038D, 0.1776321828365326D, 0.17780578136444092D, 0.17798294126987457D, 0.17815785109996796D, 0.17833979427814484D, 0.17851093411445618D, 0.1786835491657257D, 0.17886051535606384D, 0.1790376603603363D, 0.17921648919582367D, 0.17939159274101257D, 0.17957083880901337D, 0.1797502636909485D, 0.17992530763149261D, 0.1801026463508606D, 0.18028408288955688D, 0.18045489490032196D, 0.1806340366601944D, 0.1808105707168579D, 0.18098872900009155D, 0.1811632215976715D, 0.18134437501430511D, 0.18152523040771484D, 0.18170255422592163D, 0.18187786638736725D, 0.18205541372299194D, 0.18223069608211517D, 0.18240229785442352D, 0.1825835108757019D, 0.18276111781597137D, 0.18293944001197815D, 0.18311530351638794D, 0.18329167366027832D, 0.18346892297267914D, 0.1836460679769516D, 0.1838228851556778D, 0.18399597704410553D, 0.18417446315288544D, 0.1843516230583191D, 0.184530109167099D, 0.18470726907253265D, 0.18488577008247375D, 0.18506748974323273D, 0.185249924659729D, 0.18543273210525513D, 0.1856096237897873D, 0.18578913807868958D, 0.1859683245420456D, 0.18614578247070312D, 0.18632252514362335D, 0.1864963322877884D, 0.18667510151863098D, 0.1868581920862198D, 0.18703486025333405D, 0.18721888959407806D, 0.18739253282546997D, 0.18757246434688568D, 0.1877577155828476D, 0.18793287873268127D, 0.18811465799808502D, 0.1882943958044052D, 0.18847425282001495D, 0.18864761292934418D, 0.18882161378860474D, 0.18899816274642944D, 0.18917573988437653D, 0.18935945630073547D, 0.18953947722911835D, 0.189716637134552D, 0.18990230560302734D, 0.19007518887519836D, 0.19025564193725586D, 0.1904321163892746D, 0.19061104953289032D, 0.19078995287418365D, 0.190964937210083D, 0.19114817678928375D, 0.19132809340953827D, 0.19151580333709717D, 0.19169238209724426D, 0.19187597930431366D, 0.19205956161022186D, 0.19224511086940765D, 0.19242414832115173D, 0.19260457158088684D, 0.19278565049171448D, 0.19296668469905853D, 0.19314511120319366D, 0.193329855799675D, 0.19351661205291748D, 0.1937016248703003D, 0.19387923181056976D, 0.1940610557794571D, 0.194246307015419D, 0.19443221390247345D, 0.19460652768611908D, 0.19479267299175262D, 0.1949712485074997D, 0.1951516568660736D, 0.19533394277095795D, 0.1955246925354004D, 0.19570086896419525D, 0.19588221609592438D, 0.19606895744800568D, 0.19625340402126312D, 0.19644010066986084D, 0.19662165641784668D, 0.1968076378107071D, 0.19699516892433167D, 0.1971805989742279D, 0.1973554939031601D, 0.1975409835577011D, 0.1977252960205078D, 0.19790977239608765D, 0.1980927288532257D, 0.19827796518802643D, 0.19846612215042114D, 0.19864800572395325D, 0.19883641600608826D, 0.19901731610298157D, 0.1992063969373703D, 0.19938835501670837D, 0.1995694637298584D, 0.19975224137306213D, 0.19993893802165985D, 0.20012065768241882D, 0.20030593872070312D, 0.20049719512462616D, 0.20067352056503296D, 0.20086051523685455D, 0.20104587078094482D, 0.2012348473072052D, 0.20142585039138794D, 0.20161063969135284D, 0.20179665088653564D, 0.20198526978492737D, 0.20217211544513702D, 0.20235659182071686D, 0.20254142582416534D, 0.20272696018218994D, 0.20291101932525635D, 0.20309440791606903D, 0.20328234136104584D, 0.20347049832344055D, 0.20365656912326813D, 0.203854501247406D, 0.20404016971588135D, 0.2042284607887268D, 0.20441436767578125D, 0.20460355281829834D, 0.20478859543800354D, 0.2049754112958908D, 0.20516854524612427D, 0.20535217225551605D, 0.20553888380527496D, 0.20573171973228455D, 0.20591837167739868D, 0.20610769093036652D, 0.2063007354736328D, 0.20649467408657074D, 0.2066875845193863D, 0.20687413215637207D, 0.2070641964673996D, 0.2072521448135376D, 0.20743364095687866D, 0.20761997997760773D, 0.20781198143959045D, 0.20800599455833435D, 0.20819956064224243D, 0.2083868831396103D, 0.2085733562707901D, 0.20876942574977875D, 0.20896922051906586D, 0.20915867388248444D, 0.2093524932861328D, 0.20954589545726776D, 0.2097388058900833D, 0.20992672443389893D, 0.21011590957641602D, 0.21031244099140167D, 0.21050217747688293D, 0.21069328486919403D, 0.2108885496854782D, 0.21107973158359528D, 0.21127483248710632D, 0.21146471798419952D, 0.21166469156742096D, 0.21185675263404846D, 0.2120511382818222D, 0.21224676072597504D, 0.2124384641647339D, 0.21262727677822113D, 0.2128206193447113D, 0.21302452683448792D, 0.2132214456796646D, 0.2134128361940384D, 0.21360456943511963D, 0.2137957513332367D, 0.21398882567882538D, 0.21418625116348267D, 0.21438726782798767D, 0.21458405256271362D, 0.21478569507598877D, 0.2149859517812729D, 0.2151806354522705D, 0.21538639068603516D, 0.21557798981666565D, 0.2157720923423767D, 0.21596337854862213D, 0.21616080403327942D, 0.2163562923669815D, 0.21655449271202087D, 0.2167525738477707D, 0.21694263815879822D, 0.21713177859783173D, 0.21732954680919647D, 0.21752935647964478D, 0.21772217750549316D, 0.21791480481624603D, 0.21811674535274506D, 0.21831247210502625D, 0.21851235628128052D, 0.21870890259742737D, 0.2189081758260727D, 0.21910427510738373D, 0.21930015087127686D, 0.21949778497219086D, 0.21969933807849884D, 0.21990087628364563D, 0.22009927034378052D, 0.22029325366020203D, 0.22049371898174286D, 0.22069047391414642D, 0.22089248895645142D, 0.22109095752239227D, 0.22129462659358978D, 0.22148814797401428D, 0.22169452905654907D, 0.2218969613313675D, 0.22209632396697998D, 0.22230185568332672D, 0.22250638902187347D, 0.2227063924074173D, 0.22290310263633728D, 0.22311145067214966D, 0.2233133167028427D, 0.22350966930389404D, 0.2237071990966797D, 0.22390885651111603D, 0.2241075336933136D, 0.22431014478206635D, 0.22450794279575348D, 0.22470755875110626D, 0.22491036355495453D, 0.22511586546897888D, 0.2253158539533615D, 0.22551269829273224D, 0.2257266342639923D, 0.22592762112617493D, 0.22613157331943512D, 0.22633376717567444D, 0.22653743624687195D, 0.22674024105072021D, 0.2269410938024521D, 0.22714996337890625D, 0.22734971344470978D, 0.22755438089370728D, 0.22775733470916748D, 0.22795677185058594D, 0.22816292941570282D, 0.22837083041667938D, 0.22858299314975739D, 0.2287832796573639D, 0.2289920300245285D, 0.22919484972953796D, 0.2293976992368698D, 0.22960828244686127D, 0.22981193661689758D, 0.2300211489200592D, 0.23022563755512238D, 0.2304365634918213D, 0.2306395173072815D, 0.23084834218025208D, 0.23105144500732422D, 0.2312522679567337D, 0.23145829141139984D, 0.23166124522686005D, 0.23187236487865448D, 0.23208360373973846D, 0.23229150474071503D, 0.23250751197338104D, 0.2327122539281845D, 0.23292763531208038D, 0.23313376307487488D, 0.23334120213985443D, 0.23354649543762207D, 0.23375554382801056D, 0.23396620154380798D, 0.23417723178863525D, 0.2343829721212387D, 0.23458978533744812D, 0.23479892313480377D, 0.23500783741474152D, 0.2352222204208374D, 0.2354322373867035D, 0.23564279079437256D, 0.23585160076618195D, 0.23605337738990784D, 0.23626479506492615D, 0.23648226261138916D, 0.2366953194141388D, 0.23690584301948547D, 0.23711639642715454D, 0.23733076453208923D, 0.23753586411476135D, 0.23774738609790802D, 0.23796023428440094D, 0.23817838728427887D, 0.2383866310119629D, 0.23860763013362885D, 0.23882152140140533D, 0.23903527855873108D, 0.23924735188484192D, 0.23945917189121246D, 0.23966942727565765D, 0.23988419771194458D, 0.2400980293750763D, 0.24030447006225586D, 0.240516796708107D, 0.24073119461536407D, 0.24094410240650177D, 0.24115683138370514D, 0.24137572944164276D, 0.24158714711666107D, 0.24180005490779877D, 0.2420184463262558D, 0.24223656952381134D, 0.24244916439056396D, 0.24266721308231354D, 0.2428855299949646D, 0.24310968816280365D, 0.243327334523201D, 0.2435457706451416D, 0.24375973641872406D, 0.2439749389886856D, 0.24419187009334564D, 0.24440546333789825D, 0.2446216642856598D, 0.24483764171600342D, 0.24505628645420074D, 0.2452733963727951D, 0.24548429250717163D, 0.24571490287780762D, 0.2459365725517273D, 0.24615846574306488D, 0.2463839054107666D, 0.2465975135564804D, 0.24682526290416718D, 0.24704609811306D, 0.24726620316505432D, 0.24748526513576508D, 0.24770237505435944D, 0.24791458249092102D, 0.24813757836818695D, 0.24836552143096924D, 0.24859130382537842D, 0.2488095611333847D, 0.24903202056884766D, 0.2492518126964569D, 0.24946889281272888D, 0.2496860921382904D, 0.2499072104692459D, 0.25012969970703125D, 0.25036224722862244D, 0.2505870461463928D, 0.2508128881454468D, 0.2510356307029724D, 0.25126001238822937D, 0.25148099660873413D, 0.25170382857322693D, 0.25192201137542725D, 0.2521439790725708D, 0.25237786769866943D, 0.25259867310523987D, 0.2528284192085266D, 0.2530532777309418D, 0.25327783823013306D, 0.25350385904312134D, 0.2537325918674469D, 0.2539677619934082D, 0.2541946470737457D, 0.2544255256652832D, 0.2546565532684326D, 0.25487953424453735D, 0.25510382652282715D, 0.25533539056777954D, 0.2555716931819916D, 0.25579825043678284D, 0.2560243308544159D, 0.25624626874923706D, 0.2564801275730133D, 0.2567085325717926D, 0.2569340765476227D, 0.2571656405925751D, 0.25739872455596924D, 0.2576286792755127D, 0.25786054134368896D, 0.2580936551094055D, 0.2583216726779938D, 0.25856003165245056D, 0.2587873339653015D, 0.25902122259140015D, 0.2592563033103943D, 0.2594849765300751D, 0.2597160339355469D, 0.25995558500289917D, 0.2601858973503113D, 0.2604183256626129D, 0.2606464922428131D, 0.26088303327560425D, 0.2611151337623596D, 0.26134592294692993D, 0.2615800201892853D, 0.2618105709552765D, 0.2620517909526825D, 0.2622908055782318D, 0.26252609491348267D, 0.2627618610858917D, 0.262994647026062D, 0.26323479413986206D, 0.26346999406814575D, 0.26371172070503235D, 0.26394981145858765D, 0.2641925811767578D, 0.26443660259246826D, 0.2646687924861908D, 0.26490625739097595D, 0.26514482498168945D, 0.2653883397579193D, 0.2656254470348358D, 0.26586461067199707D, 0.2660968005657196D, 0.26632776856422424D, 0.2665672302246094D, 0.2668079137802124D, 0.2670527696609497D, 0.26729103922843933D, 0.26753705739974976D, 0.267774760723114D, 0.2680116295814514D, 0.2682532072067261D, 0.2684982419013977D, 0.26874080300331116D, 0.26898348331451416D, 0.2692258656024933D, 0.26946553587913513D, 0.26971226930618286D, 0.26995396614074707D, 0.2702105641365051D, 0.2704511284828186D, 0.2706947326660156D, 0.2709454596042633D, 0.27119338512420654D, 0.2714472711086273D, 0.271695613861084D, 0.2719452679157257D, 0.2721904516220093D, 0.272445946931839D, 0.2727034091949463D, 0.27296075224876404D, 0.2732025980949402D, 0.27344566583633423D, 0.2736923396587372D, 0.273937851190567D, 0.2741943597793579D, 0.2744433581829071D, 0.2747053802013397D, 0.2749590575695038D, 0.27520620822906494D, 0.2754532992839813D, 0.27570030093193054D, 0.27594417333602905D, 0.2761920094490051D, 0.27644631266593933D, 0.2766968309879303D, 0.2769581079483032D, 0.277214914560318D, 0.2774685323238373D, 0.27772653102874756D, 0.2779829204082489D, 0.2782370150089264D, 0.2784930467605591D, 0.27874892950057983D, 0.2790064215660095D, 0.2792629301548004D, 0.2795135974884033D, 0.27977338433265686D, 0.28003010153770447D, 0.2802872657775879D, 0.2805541753768921D, 0.28081098198890686D, 0.28106915950775146D, 0.2813355028629303D, 0.2816014885902405D, 0.28186270594596863D, 0.28211551904678345D, 0.28238385915756226D, 0.28264784812927246D, 0.2829170227050781D, 0.28318625688552856D, 0.28344595432281494D, 0.2837064266204834D, 0.2839750647544861D, 0.28424525260925293D, 0.2845102846622467D, 0.2847710847854614D, 0.28503847122192383D, 0.285302072763443D, 0.2855624556541443D, 0.28583529591560364D, 0.28610533475875854D, 0.2863694727420807D, 0.28663894534111023D, 0.28690820932388306D, 0.2871835231781006D, 0.2874460816383362D, 0.28770965337753296D, 0.28797629475593567D, 0.28824037313461304D, 0.2885114252567291D, 0.28877952694892883D, 0.28905394673347473D, 0.2893272340297699D, 0.2896009385585785D, 0.2898753881454468D, 0.2901516556739807D, 0.29043030738830566D, 0.2906986474990845D, 0.2909756600856781D, 0.2912502586841583D, 0.2915216088294983D, 0.2917991578578949D, 0.2920747995376587D, 0.29235514998435974D, 0.29263055324554443D, 0.29290643334388733D, 0.29318350553512573D, 0.2934582233428955D, 0.2937442362308502D, 0.29402175545692444D, 0.2943044602870941D, 0.29458490014076233D, 0.294856458902359D, 0.29513412714004517D, 0.2954207956790924D, 0.2957027554512024D, 0.29599303007125854D, 0.2962748110294342D, 0.29655298590660095D, 0.29684072732925415D, 0.2971268594264984D, 0.297414630651474D, 0.29770198464393616D, 0.2979874312877655D, 0.2982670068740845D, 0.2985551059246063D, 0.2988506555557251D, 0.29913589358329773D, 0.29941803216934204D, 0.29970577359199524D, 0.2999911904335022D, 0.30029740929603577D, 0.30059298872947693D, 0.30088740587234497D, 0.30117687582969666D, 0.3014709949493408D, 0.3017614483833313D, 0.3020592927932739D, 0.3023589253425598D, 0.30265122652053833D, 0.3029458820819855D, 0.3032380938529968D, 0.3035353124141693D, 0.3038356900215149D, 0.30413827300071716D, 0.3044430613517761D, 0.3047422170639038D, 0.30505242943763733D, 0.3053557276725769D, 0.3056688904762268D, 0.30598193407058716D, 0.3062831461429596D, 0.3065822124481201D, 0.3068911135196686D, 0.3071833848953247D, 0.30748212337493896D, 0.30779045820236206D, 0.30809691548347473D, 0.30840522050857544D, 0.30872541666030884D, 0.30904072523117065D, 0.30936363339424133D, 0.3096707761287689D, 0.3099910020828247D, 0.31029611825942993D, 0.3106105327606201D, 0.31092625856399536D, 0.3112245798110962D, 0.3115399479866028D, 0.3118637800216675D, 0.31218570470809937D, 0.31249749660491943D, 0.3128180205821991D, 0.3131491243839264D, 0.3134590685367584D, 0.3137769103050232D, 0.31409183144569397D, 0.31440991163253784D, 0.3147423267364502D, 0.315074622631073D, 0.31538769602775574D, 0.3157178461551666D, 0.31604892015457153D, 0.3163736164569855D, 0.31670817732810974D, 0.31702810525894165D, 0.317355751991272D, 0.31768372654914856D, 0.31801432371139526D, 0.31834226846694946D, 0.31866806745529175D, 0.31899839639663696D, 0.31932738423347473D, 0.3196604251861572D, 0.32000088691711426D, 0.3203379511833191D, 0.32066595554351807D, 0.32100751996040344D, 0.3213508725166321D, 0.3216894865036011D, 0.322036474943161D, 0.322383314371109D, 0.32273414731025696D, 0.323082834482193D, 0.32343026995658875D, 0.3237669765949249D, 0.32412171363830566D, 0.3244626522064209D, 0.32481491565704346D, 0.32516875863075256D, 0.3255179226398468D, 0.325869619846344D, 0.3262259066104889D, 0.32658839225769043D, 0.3269360065460205D, 0.32728952169418335D, 0.3276480734348297D, 0.3280147612094879D, 0.3283637762069702D, 0.32871752977371216D, 0.32907935976982117D, 0.32943716645240784D, 0.3297964036464691D, 0.3301599621772766D, 0.33051931858062744D, 0.3308880627155304D, 0.3312579095363617D, 0.33161529898643494D, 0.3319781720638275D, 0.3323523998260498D, 0.3327375650405884D, 0.33311545848846436D, 0.33348867297172546D, 0.3338663876056671D, 0.3342553377151489D, 0.33464017510414124D, 0.33502036333084106D, 0.335401713848114D, 0.3357864320278168D, 0.3361833691596985D, 0.3365689218044281D, 0.33695119619369507D, 0.3373405933380127D, 0.33773842453956604D, 0.3381268084049225D, 0.3385128974914551D, 0.33890458941459656D, 0.3392952084541321D, 0.33968889713287354D, 0.3400922119617462D, 0.34048500657081604D, 0.3408714830875397D, 0.3412691354751587D, 0.34166914224624634D, 0.34207582473754883D, 0.3424929678440094D, 0.3428908586502075D, 0.3432921767234802D, 0.34369343519210815D, 0.3441072404384613D, 0.34452903270721436D, 0.3449375331401825D, 0.34534019231796265D, 0.3457581698894501D, 0.3461754322052002D, 0.3465886414051056D, 0.34700435400009155D, 0.34742265939712524D, 0.34784501791000366D, 0.34826958179473877D, 0.34871307015419006D, 0.3491317629814148D, 0.3495660424232483D, 0.3500021994113922D, 0.35043758153915405D, 0.35088497400283813D, 0.3513285517692566D, 0.3517633378505707D, 0.35219472646713257D, 0.3526288568973541D, 0.35309097170829773D, 0.35355913639068604D, 0.35399898886680603D, 0.35447028279304504D, 0.3549261689186096D, 0.35538268089294434D, 0.3558322489261627D, 0.3562908172607422D, 0.35675758123397827D, 0.35722026228904724D, 0.3576938509941101D, 0.35815972089767456D, 0.35862985253334045D, 0.35909539461135864D, 0.35957416892051697D, 0.36005738377571106D, 0.36053022742271423D, 0.36100655794143677D, 0.36148983240127563D, 0.3619798719882965D, 0.3624771535396576D, 0.36297959089279175D, 0.36347851157188416D, 0.3639810383319855D, 0.36445868015289307D, 0.36495158076286316D, 0.36546313762664795D, 0.3659844994544983D, 0.36649754643440247D, 0.36702680587768555D, 0.3675394356250763D, 0.3680706322193146D, 0.36859145760536194D, 0.3691083490848541D, 0.3696277141571045D, 0.3701637089252472D, 0.3707152307033539D, 0.37122446298599243D, 0.37175998091697693D, 0.3722837269306183D, 0.3728159964084625D, 0.3733748495578766D, 0.37392672896385193D, 0.37447816133499146D, 0.37505069375038147D, 0.375622421503067D, 0.3761715888977051D, 0.37675145268440247D, 0.37734055519104004D, 0.3779241442680359D, 0.3785025477409363D, 0.3791196346282959D, 0.37970981001853943D, 0.38029128313064575D, 0.3808829188346863D, 0.38146936893463135D, 0.3820830285549164D, 0.3827105760574341D, 0.3833059072494507D, 0.38394442200660706D, 0.3845558762550354D, 0.3851664662361145D, 0.38580548763275146D, 0.3864295184612274D, 0.3870803415775299D, 0.38771069049835205D, 0.3883456885814667D, 0.38899171352386475D, 0.38965052366256714D, 0.3903161883354187D, 0.3909873962402344D, 0.39163389801979065D, 0.3923026919364929D, 0.3929727375507355D, 0.3936687409877777D, 0.39436736702919006D, 0.395059734582901D, 0.395771861076355D, 0.3964758813381195D, 0.3972088098526001D, 0.39794230461120605D, 0.39865103363990784D, 0.39939573407173157D, 0.4001447558403015D, 0.4009042978286743D, 0.40168482065200806D, 0.40247029066085815D, 0.4032696485519409D, 0.4040483832359314D, 0.4048703610897064D, 0.40569815039634705D, 0.4065134525299072D, 0.4073511064052582D, 0.4082093834877014D, 0.40910643339157104D, 0.40995070338249207D, 0.4108522832393646D, 0.4117118716239929D, 0.41257336735725403D, 0.4134874641895294D, 0.41438743472099304D, 0.41531622409820557D, 0.4162694215774536D, 0.4172126054763794D, 0.41816097497940063D, 0.41914936900138855D, 0.42015671730041504D, 0.4211525321006775D, 0.4221918284893036D, 0.42320090532302856D, 0.4242560863494873D, 0.4253188669681549D, 0.4263918697834015D, 0.42751896381378174D, 0.42864561080932617D, 0.4297972321510315D, 0.4309712052345276D, 0.43211647868156433D, 0.43333739042282104D, 0.43459197878837585D, 0.4358139634132385D, 0.43709370493888855D, 0.43841537833213806D, 0.43972235918045044D, 0.4410899579524994D, 0.44247907400131226D, 0.44390785694122314D, 0.4453846514225006D, 0.44687512516975403D, 0.44836026430130005D, 0.4498823583126068D, 0.45146554708480835D, 0.4531130790710449D, 0.45482560992240906D, 0.4566359221935272D, 0.45852598547935486D, 0.4604836702346802D, 0.46249786019325256D, 0.4645693302154541D, 0.4668006896972656D, 0.46896860003471375D, 0.4712623059749603D, 0.473666787147522D, 0.4763219356536865D, 0.4791247844696045D, 0.48207300901412964D, 0.4851433336734772D, 0.48835480213165283D, 0.49189335107803345D, 0.49576520919799805D, 0.500032901763916D, 0.5047979354858398D, 0.510280966758728D, 0.5167609453201294D, 0.5248829126358032D, 0.5349445343017578D, 0.550952136516571D, 0.6102362275123596D};
//private static final List m = Arrays.asList(normalMap);