diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index b1a037dc..107eee33 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -2,7 +2,7 @@ name: maven on: push: - branches: [ '2.0.X', '2.1.X', '2.2.X', master ] + branches: [ '2.0.X', '2.1.X', '2.2.X', '2.3.X', master ] jobs: build: diff --git a/README.md b/README.md index 4146561d..37544774 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ Java library and command-line application for converting Apache Spark ML pipelin * Trigonometric functions `sin`, `asin`, `sinh`, `cos`, `acos`, `cosh`, `tan`, `atan`, `tanh`. * Aggregation functions `greatest` and `least`. * RegExp functions `regexp_replace` and `rlike`. - * String functions `char_length`, `character_length`, `concat`, `lcase`, `length`, `lower`, `substring`, `trim`, `ucase` and `upper`. + * String functions `char_length`, `character_length`, `concat`, `lcase`, `length`, `lower`, `replace`, `substring`, `trim`, `ucase` and `upper`. * Type cast functions `boolean`, `cast`, `double`, `int` and `string`. * Value functions `in`, `isnan`, `isnull`, `isnotnull`, `negative` and `positive`. * [`feature.StandardScalerModel`](https://spark.apache.org/docs/latest/api/java/org/apache/spark/ml/feature/StandardScalerModel.html) (the result of fitting a `feature.StandardScaler`) @@ -129,7 +129,7 @@ Java library and command-line application for converting Apache Spark ML pipelin # Prerequisites # -* Apache Spark 1.5.X, 1.6.X, 2.0.X, 2.1.X, 2.2.X, 2.3.X, 2.4.X, 3.0.X, 3.1.X, 3.2.X or 3.3.X. +* Apache Spark 3.0.X, 3.1.X, 3.2.X, 3.3.X or 3.4.X. # Installation # @@ -156,7 +156,8 @@ Active development branches: | 3.0.X | [`2.0.X`](https://github.com/jpmml/jpmml-sparkml/tree/2.0.X) | | 3.1.X | [`2.1.X`](https://github.com/jpmml/jpmml-sparkml/tree/2.1.X) | | 3.2.X | [`2.2.X`](https://github.com/jpmml/jpmml-sparkml/tree/2.2.X) | -| 3.3.X | [`master`](https://github.com/jpmml/jpmml-sparkml/tree/master) | +| 3.3.X | [`2.3.X`](https://github.com/jpmml/jpmml-sparkml/tree/2.3.X) | +| 3.4.X | [`master`](https://github.com/jpmml/jpmml-sparkml/tree/master) | Archived development branches: diff --git a/pmml-sparkml-lightgbm/src/test/java/org/jpmml/sparkml/lightgbm/testing/LightGBMTest.java b/pmml-sparkml-lightgbm/src/test/java/org/jpmml/sparkml/lightgbm/testing/LightGBMTest.java index 59c48cc8..5a5951d4 100644 --- a/pmml-sparkml-lightgbm/src/test/java/org/jpmml/sparkml/lightgbm/testing/LightGBMTest.java +++ b/pmml-sparkml-lightgbm/src/test/java/org/jpmml/sparkml/lightgbm/testing/LightGBMTest.java @@ -18,11 +18,16 @@ */ package org.jpmml.sparkml.lightgbm.testing; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; import java.util.function.Predicate; import com.google.common.base.Equivalence; +import org.jpmml.converter.testing.OptionsUtil; import org.jpmml.evaluator.ResultField; import org.jpmml.evaluator.testing.PMMLEquivalence; +import org.jpmml.lightgbm.HasLightGBMOptions; import org.jpmml.sparkml.testing.SparkMLEncoderBatch; import org.jpmml.sparkml.testing.SparkMLEncoderBatchTest; import org.junit.AfterClass; @@ -39,7 +44,24 @@ public LightGBMTest(){ public SparkMLEncoderBatch createBatch(String algorithm, String dataset, Predicate columnFilter, Equivalence equivalence){ columnFilter = columnFilter.and(SparkMLEncoderBatchTest.excludePredictionFields()); - return super.createBatch(algorithm, dataset, columnFilter, equivalence); + SparkMLEncoderBatch result = new SparkMLEncoderBatch(algorithm, dataset, columnFilter, equivalence){ + + @Override + public LightGBMTest getArchiveBatchTest(){ + return LightGBMTest.this; + } + + @Override + public List> getOptionsMatrix(){ + Map options = new LinkedHashMap<>(); + + options.put(HasLightGBMOptions.OPTION_COMPACT, new Boolean[]{false, true}); + + return OptionsUtil.generateOptionsMatrix(options); + } + }; + + return result; } @Test diff --git a/pmml-sparkml-xgboost/src/main/java/org/jpmml/sparkml/xgboost/BoosterUtil.java b/pmml-sparkml-xgboost/src/main/java/org/jpmml/sparkml/xgboost/BoosterUtil.java index 0b87863e..faff9fba 100644 --- a/pmml-sparkml-xgboost/src/main/java/org/jpmml/sparkml/xgboost/BoosterUtil.java +++ b/pmml-sparkml-xgboost/src/main/java/org/jpmml/sparkml/xgboost/BoosterUtil.java @@ -26,9 +26,12 @@ import java.util.function.Function; import ml.dmlc.xgboost4j.scala.Booster; +import ml.dmlc.xgboost4j.scala.spark.params.GeneralParams; +import org.apache.spark.ml.Model; +import org.apache.spark.ml.param.shared.HasPredictionCol; import org.dmg.pmml.DataType; +import org.dmg.pmml.Field; import org.dmg.pmml.mining.MiningModel; -import org.jpmml.converter.BinaryFeature; import org.jpmml.converter.ContinuousFeature; import org.jpmml.converter.Feature; import org.jpmml.converter.Schema; @@ -43,7 +46,9 @@ private BoosterUtil(){ } static - public & HasXGBoostOptions> MiningModel encodeBooster(C converter, Booster booster, Schema schema){ + public & HasPredictionCol & GeneralParams, C extends ModelConverter & HasSparkMLXGBoostOptions> MiningModel encodeBooster(C converter, Booster booster, Schema schema){ + M model = converter.getModel(); + byte[] bytes; try { @@ -60,30 +65,56 @@ public & HasXGBoostOptions> MiningModel encodeBoost throw new RuntimeException(ioe); } - Function function = new Function(){ + Boolean inputFloat = (Boolean)converter.getOption(HasSparkMLXGBoostOptions.OPTION_INPUT_FLOAT, null); + if((Boolean.TRUE).equals(inputFloat)){ + Function function = new Function(){ + + @Override + public Feature apply(Feature feature){ - @Override - public Feature apply(Feature feature){ + if(feature instanceof ContinuousFeature){ + ContinuousFeature continuousFeature = (ContinuousFeature)feature; - if(feature instanceof BinaryFeature){ - BinaryFeature binaryFeature = (BinaryFeature)feature; + DataType dataType = continuousFeature.getDataType(); + switch(dataType){ + case INTEGER: + case FLOAT: + break; + case DOUBLE: + { + Field field = continuousFeature.getField(); - return binaryFeature; - } else + field.setDataType(DataType.FLOAT); - { - ContinuousFeature continuousFeature = feature.toContinuousFeature(DataType.FLOAT); + return new ContinuousFeature(continuousFeature.getEncoder(), field); + } + default: + break; + } + } - return continuousFeature; + return feature; } - } - }; + }; + + schema = schema.toTransformedSchema(function); + } + + Float missing = model.getMissing(); + if(missing.isNaN()){ + missing = null; + } Map options = new LinkedHashMap<>(); + options.put(HasXGBoostOptions.OPTION_MISSING, converter.getOption(HasXGBoostOptions.OPTION_MISSING, missing)); options.put(HasXGBoostOptions.OPTION_COMPACT, converter.getOption(HasXGBoostOptions.OPTION_COMPACT, false)); + options.put(HasXGBoostOptions.OPTION_NUMERIC, converter.getOption(HasXGBoostOptions.OPTION_NUMERIC, true)); + options.put(HasXGBoostOptions.OPTION_PRUNE, converter.getOption(HasXGBoostOptions.OPTION_PRUNE, false)); options.put(HasXGBoostOptions.OPTION_NTREE_LIMIT, converter.getOption(HasXGBoostOptions.OPTION_NTREE_LIMIT, null)); - Schema xgbSchema = schema.toTransformedSchema(function); + Boolean numeric = (Boolean)options.get(HasXGBoostOptions.OPTION_NUMERIC); + + Schema xgbSchema = learner.toXGBoostSchema(numeric, schema); return learner.encodeMiningModel(options, xgbSchema); } diff --git a/pmml-sparkml-xgboost/src/main/java/org/jpmml/sparkml/xgboost/HasSparkMLXGBoostOptions.java b/pmml-sparkml-xgboost/src/main/java/org/jpmml/sparkml/xgboost/HasSparkMLXGBoostOptions.java new file mode 100644 index 00000000..074a866b --- /dev/null +++ b/pmml-sparkml-xgboost/src/main/java/org/jpmml/sparkml/xgboost/HasSparkMLXGBoostOptions.java @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2023 Villu Ruusmann + * + * This file is part of JPMML-SparkML + * + * JPMML-SparkML is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * JPMML-SparkML is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with JPMML-SparkML. If not, see . + */ +package org.jpmml.sparkml.xgboost; + +import org.jpmml.sparkml.HasSparkMLOptions; +import org.jpmml.xgboost.HasXGBoostOptions; + +public interface HasSparkMLXGBoostOptions extends HasSparkMLOptions, HasXGBoostOptions { + + String OPTION_INPUT_FLOAT = "input_float"; +} \ No newline at end of file diff --git a/pmml-sparkml-xgboost/src/main/java/org/jpmml/sparkml/xgboost/XGBoostClassificationModelConverter.java b/pmml-sparkml-xgboost/src/main/java/org/jpmml/sparkml/xgboost/XGBoostClassificationModelConverter.java index db600b70..ce59e339 100644 --- a/pmml-sparkml-xgboost/src/main/java/org/jpmml/sparkml/xgboost/XGBoostClassificationModelConverter.java +++ b/pmml-sparkml-xgboost/src/main/java/org/jpmml/sparkml/xgboost/XGBoostClassificationModelConverter.java @@ -25,9 +25,8 @@ import org.jpmml.converter.Schema; import org.jpmml.converter.mining.MiningModelUtil; import org.jpmml.sparkml.ProbabilisticClassificationModelConverter; -import org.jpmml.xgboost.HasXGBoostOptions; -public class XGBoostClassificationModelConverter extends ProbabilisticClassificationModelConverter implements HasXGBoostOptions { +public class XGBoostClassificationModelConverter extends ProbabilisticClassificationModelConverter implements HasSparkMLXGBoostOptions { public XGBoostClassificationModelConverter(XGBoostClassificationModel model){ super(model); diff --git a/pmml-sparkml-xgboost/src/main/java/org/jpmml/sparkml/xgboost/XGBoostRegressionModelConverter.java b/pmml-sparkml-xgboost/src/main/java/org/jpmml/sparkml/xgboost/XGBoostRegressionModelConverter.java index 293e40fc..5347782e 100644 --- a/pmml-sparkml-xgboost/src/main/java/org/jpmml/sparkml/xgboost/XGBoostRegressionModelConverter.java +++ b/pmml-sparkml-xgboost/src/main/java/org/jpmml/sparkml/xgboost/XGBoostRegressionModelConverter.java @@ -37,9 +37,8 @@ import org.jpmml.sparkml.PredictionModelConverter; import org.jpmml.sparkml.SparkMLEncoder; import org.jpmml.sparkml.model.HasPredictionModelOptions; -import org.jpmml.xgboost.HasXGBoostOptions; -public class XGBoostRegressionModelConverter extends PredictionModelConverter implements HasXGBoostOptions { +public class XGBoostRegressionModelConverter extends PredictionModelConverter implements HasSparkMLXGBoostOptions { public XGBoostRegressionModelConverter(XGBoostRegressionModel model){ super(model); diff --git a/pmml-sparkml-xgboost/src/test/java/org/jpmml/sparkml/xgboost/testing/XGBoostTest.java b/pmml-sparkml-xgboost/src/test/java/org/jpmml/sparkml/xgboost/testing/XGBoostTest.java index 2595a380..63528485 100644 --- a/pmml-sparkml-xgboost/src/test/java/org/jpmml/sparkml/xgboost/testing/XGBoostTest.java +++ b/pmml-sparkml-xgboost/src/test/java/org/jpmml/sparkml/xgboost/testing/XGBoostTest.java @@ -18,6 +18,9 @@ */ package org.jpmml.sparkml.xgboost.testing; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; import java.util.function.Predicate; import com.google.common.base.Equivalence; @@ -26,11 +29,14 @@ import org.dmg.pmml.Visitor; import org.dmg.pmml.VisitorAction; import org.jpmml.converter.testing.Fields; +import org.jpmml.converter.testing.OptionsUtil; import org.jpmml.evaluator.ResultField; import org.jpmml.evaluator.testing.FloatEquivalence; import org.jpmml.model.visitors.AbstractVisitor; import org.jpmml.sparkml.testing.SparkMLEncoderBatch; import org.jpmml.sparkml.testing.SparkMLEncoderBatchTest; +import org.jpmml.sparkml.xgboost.HasSparkMLXGBoostOptions; +import org.jpmml.xgboost.HasXGBoostOptions; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -52,6 +58,18 @@ public XGBoostTest getArchiveBatchTest(){ return XGBoostTest.this; } + @Override + public List> getOptionsMatrix(){ + Map options = new LinkedHashMap<>(); + + options.put(HasSparkMLXGBoostOptions.OPTION_INPUT_FLOAT, new Boolean[]{false, true}); + + options.put(HasXGBoostOptions.OPTION_COMPACT, new Boolean[]{false, true}); + options.put(HasXGBoostOptions.OPTION_PRUNE, false); + + return OptionsUtil.generateOptionsMatrix(options); + } + @Override public PMML getPMML() throws Exception { PMML pmml = super.getPMML(); @@ -86,6 +104,11 @@ public void evaluateAuto() throws Exception { evaluate("XGBoost", "Auto"); } + @Test + public void evaluateHousing() throws Exception { + evaluate("XGBoost", "Housing"); + } + @Test public void evaluateIris() throws Exception { evaluate("XGBoost", "Iris", new FloatEquivalence(16)); diff --git a/pmml-sparkml-xgboost/src/test/resources/XGBoostAuto.scala b/pmml-sparkml-xgboost/src/test/resources/XGBoostAuto.scala index 3d329e11..948d09b8 100644 --- a/pmml-sparkml-xgboost/src/test/resources/XGBoostAuto.scala +++ b/pmml-sparkml-xgboost/src/test/resources/XGBoostAuto.scala @@ -3,7 +3,7 @@ import java.io.File import ml.dmlc.xgboost4j.scala.spark.{TrackerConf, XGBoostRegressor} import org.apache.spark.ml.Pipeline import org.apache.spark.ml.feature._ -import org.apache.spark.sql.types.StringType +import org.apache.spark.sql.types.{FloatType, StringType} import org.jpmml.sparkml.{DatasetUtil, PipelineModelUtil} import org.jpmml.sparkml.xgboost.SparseToDenseTransformer @@ -22,7 +22,7 @@ val assembler = new VectorAssembler().setInputCols(ohe.getOutputCols ++ cont_col val sparse2dense = new SparseToDenseTransformer().setInputCol(assembler.getOutputCol).setOutputCol("denseFeatureVec") val trackerConf = TrackerConf(0, "scala") -val regressor = new XGBoostRegressor(Map("objective" -> "reg:squarederror", "num_round" -> 101, "num_workers" -> 1, "skip_clean_checkpoint" -> true, "tracker_conf" -> trackerConf)).setLabelCol("mpg").setFeaturesCol(sparse2dense.getOutputCol) +val regressor = new XGBoostRegressor(Map("objective" -> "reg:squarederror", "num_round" -> 101, "num_workers" -> 1, "tracker_conf" -> trackerConf)).setLabelCol("mpg").setFeaturesCol(sparse2dense.getOutputCol) val pipeline = new Pipeline().setStages(Array(indexer, ohe, assembler, sparse2dense, regressor)) val pipelineModel = pipeline.fit(df) @@ -31,5 +31,6 @@ PipelineModelUtil.storeZip(pipelineModel, new File("pipeline/XGBoostAuto.zip")) var xgbDf = pipelineModel.transform(df) xgbDf = xgbDf.selectExpr("prediction as mpg") +xgbDf = DatasetUtil.castColumn(xgbDf, "mpg", FloatType) DatasetUtil.storeCsv(xgbDf, new File("csv/XGBoostAuto.csv")) diff --git a/pmml-sparkml-xgboost/src/test/resources/XGBoostHousing.scala b/pmml-sparkml-xgboost/src/test/resources/XGBoostHousing.scala new file mode 100644 index 00000000..a878d3d8 --- /dev/null +++ b/pmml-sparkml-xgboost/src/test/resources/XGBoostHousing.scala @@ -0,0 +1,31 @@ +import java.io.File + +import ml.dmlc.xgboost4j.scala.spark.{TrackerConf, XGBoostRegressor} +import org.apache.spark.ml.Pipeline +import org.apache.spark.ml.feature._ +import org.apache.spark.sql.types.FloatType +import org.jpmml.sparkml.{DatasetUtil, PipelineModelUtil} + +var df = DatasetUtil.loadCsv(spark, new File("csv/Housing.csv")) + +DatasetUtil.storeSchema(df, new File("schema/Housing.json")) + +val cat_cols = Array("CHAS", "RAD", "TAX") +val cont_cols = Array("CRIM", "ZN", "INDUS", "NOX", "RM", "AGE", "DIS", "PTRATIO", "B", "LSTAT") + +val assembler = new VectorAssembler().setInputCols(cat_cols ++ cont_cols).setOutputCol("featureVector") +val indexer = new VectorIndexer().setInputCol(assembler.getOutputCol).setOutputCol("catFeatureVector") + +val trackerConf = TrackerConf(0, "scala") +val regressor = new XGBoostRegressor(Map("objective" -> "reg:squarederror", "num_round" -> 101, "num_workers" -> 1, "tracker_conf" -> trackerConf)).setMissing(-1).setLabelCol("MEDV").setFeaturesCol(indexer.getOutputCol) + +val pipeline = new Pipeline().setStages(Array(assembler, indexer, regressor)) +val pipelineModel = pipeline.fit(df) + +PipelineModelUtil.storeZip(pipelineModel, new File("pipeline/XGBoostHousing.zip")) + +var xgbDf = pipelineModel.transform(df) +xgbDf = xgbDf.selectExpr("prediction as MEDV") +xgbDf = DatasetUtil.castColumn(xgbDf, "MEDV", FloatType) + +DatasetUtil.storeCsv(xgbDf, new File("csv/XGBoostHousing.csv")) diff --git a/pmml-sparkml-xgboost/src/test/resources/XGBoostIris.scala b/pmml-sparkml-xgboost/src/test/resources/XGBoostIris.scala index 0eaf95d5..7771b385 100644 --- a/pmml-sparkml-xgboost/src/test/resources/XGBoostIris.scala +++ b/pmml-sparkml-xgboost/src/test/resources/XGBoostIris.scala @@ -5,11 +5,16 @@ import org.apache.spark.ml.Pipeline import org.apache.spark.ml.feature._ import org.apache.spark.ml.linalg.Vector import org.apache.spark.sql.functions.{lit, udf} -import org.apache.spark.sql.types.StringType +import org.apache.spark.sql.types.{DataType, StringType, StructType} import org.jpmml.sparkml.{DatasetUtil, PipelineModelUtil} var df = DatasetUtil.loadCsv(spark, new File("csv/Iris.csv")) +val schema = df.schema +val floatSchema = DataType.fromJson(schema.json.replaceAll("double", "float")) + +df = DatasetUtil.castColumns(df, floatSchema.asInstanceOf[StructType]) + DatasetUtil.storeSchema(df, new File("schema/Iris.json")) val labelIndexer = new StringIndexer().setInputCol("Species").setOutputCol("idx_Species") diff --git a/pmml-sparkml-xgboost/src/test/resources/csv/Housing.csv b/pmml-sparkml-xgboost/src/test/resources/csv/Housing.csv new file mode 100644 index 00000000..2c4632b5 --- /dev/null +++ b/pmml-sparkml-xgboost/src/test/resources/csv/Housing.csv @@ -0,0 +1,507 @@ +CRIM,ZN,INDUS,CHAS,NOX,RM,AGE,DIS,RAD,TAX,PTRATIO,B,LSTAT,MEDV +-1.00000,18.00,-1.000,0,-1.0000,6.5750,65.20,4.0900,1,296.0,15.30,-1.00,4.98,24.00 +0.02731,-1.00,7.070,0,0.4690,6.4210,78.90,4.9671,2,242.0,17.80,396.90,9.14,21.60 +0.02729,0.00,-1.000,0,-1.0000,-1.0000,61.10,4.9671,2,242.0,17.80,392.83,4.03,34.70 +-1.00000,0.00,2.180,0,0.4580,6.9980,45.80,6.0622,3,222.0,18.70,394.63,2.94,33.40 +0.06905,0.00,-1.000,0,0.4580,7.1470,-1.00,6.0622,3,222.0,18.70,396.90,5.33,36.20 +-1.00000,0.00,2.180,0,0.4580,6.4300,58.70,6.0622,3,222.0,-1.00,394.12,5.21,28.70 +0.08829,12.50,7.870,0,-1.0000,6.0120,66.60,5.5605,5,311.0,15.20,-1.00,-1.00,22.90 +-1.00000,12.50,7.870,0,-1.0000,6.1720,96.10,5.9505,5,311.0,15.20,396.90,19.15,27.10 +0.21124,12.50,7.870,0,-1.0000,5.6310,100.00,6.0821,5,311.0,15.20,386.63,29.93,16.50 +0.17004,12.50,7.870,0,-1.0000,-1.0000,85.90,6.5921,5,311.0,15.20,386.71,17.10,18.90 +0.22489,12.50,7.870,0,0.5240,6.3770,94.30,6.3467,5,311.0,15.20,392.52,-1.00,15.00 +0.11747,12.50,7.870,0,0.5240,6.0090,82.90,6.2267,5,311.0,15.20,396.90,13.27,18.90 +-1.00000,12.50,7.870,0,0.5240,5.8890,39.00,5.4509,5,311.0,15.20,390.50,15.71,21.70 +-1.00000,0.00,8.140,0,-1.0000,5.9490,61.80,4.7075,4,307.0,21.00,396.90,8.26,20.40 +0.63796,0.00,8.140,0,0.5380,6.0960,84.50,-1.0000,4,307.0,21.00,380.02,10.26,18.20 +0.62739,-1.00,8.140,0,0.5380,5.8340,56.50,4.4986,4,307.0,21.00,395.62,-1.00,19.90 +1.05393,0.00,-1.000,0,-1.0000,-1.0000,29.30,4.4986,4,307.0,21.00,386.85,6.58,23.10 +0.78420,0.00,8.140,0,0.5380,-1.0000,81.70,-1.0000,4,307.0,21.00,386.75,14.67,17.50 +0.80271,0.00,8.140,0,0.5380,5.4560,-1.00,3.7965,4,307.0,21.00,288.99,11.69,20.20 +-1.00000,-1.00,8.140,0,0.5380,5.7270,69.50,3.7965,4,307.0,21.00,390.95,11.28,18.20 +1.25179,-1.00,-1.000,0,0.5380,5.5700,98.10,3.7979,4,307.0,21.00,-1.00,21.02,13.60 +0.85204,0.00,8.140,0,-1.0000,5.9650,-1.00,4.0123,4,307.0,21.00,392.53,-1.00,19.60 +1.23247,0.00,8.140,0,0.5380,6.1420,91.70,3.9769,4,307.0,21.00,396.90,18.72,15.20 +-1.00000,-1.00,8.140,0,0.5380,5.8130,-1.00,4.0952,4,307.0,21.00,394.54,19.88,14.50 +0.75026,0.00,8.140,0,0.5380,5.9240,94.10,-1.0000,4,307.0,-1.00,394.33,16.30,15.60 +0.84054,0.00,8.140,0,0.5380,-1.0000,85.70,4.4546,4,307.0,-1.00,303.42,16.51,13.90 +-1.00000,0.00,8.140,0,0.5380,5.8130,90.30,4.6820,4,307.0,21.00,376.88,14.81,16.60 +0.95577,-1.00,8.140,0,0.5380,6.0470,88.80,4.4534,4,307.0,21.00,306.38,17.28,14.80 +0.77299,0.00,8.140,0,-1.0000,6.4950,94.40,4.4547,4,307.0,21.00,-1.00,-1.00,18.40 +1.00245,0.00,8.140,0,0.5380,6.6740,87.30,4.2390,4,307.0,21.00,380.23,11.98,21.00 +1.13081,0.00,8.140,0,0.5380,5.7130,94.10,-1.0000,4,307.0,21.00,360.17,22.60,12.70 +1.35472,-1.00,8.140,0,0.5380,6.0720,100.00,4.1750,4,307.0,21.00,376.73,13.04,14.50 +1.38799,0.00,8.140,0,0.5380,-1.0000,82.00,3.9900,4,307.0,21.00,232.60,27.71,13.20 +1.15172,0.00,8.140,0,0.5380,-1.0000,95.00,3.7872,4,307.0,21.00,358.77,18.35,13.10 +1.61282,0.00,8.140,0,0.5380,6.0960,-1.00,3.7598,4,307.0,-1.00,248.31,20.34,13.50 +0.06417,0.00,5.960,0,-1.0000,5.9330,-1.00,3.3603,5,279.0,19.20,396.90,9.68,18.90 +0.09744,0.00,5.960,0,0.4990,5.8410,-1.00,-1.0000,5,279.0,19.20,377.56,11.41,20.00 +0.08014,0.00,-1.000,0,0.4990,-1.0000,41.50,3.9342,5,279.0,19.20,-1.00,-1.00,21.00 +0.17505,-1.00,5.960,0,0.4990,5.9660,30.20,3.8473,5,279.0,19.20,393.43,10.13,24.70 +0.02763,75.00,2.950,0,0.4280,6.5950,21.80,5.4011,3,252.0,18.30,395.63,4.32,30.80 +0.03359,75.00,2.950,0,0.4280,7.0240,15.80,5.4011,3,252.0,18.30,395.62,1.98,34.90 +0.12744,0.00,6.910,0,0.4480,6.7700,2.90,5.7209,3,233.0,17.90,385.41,4.84,26.60 +0.14150,0.00,6.910,0,0.4480,6.1690,-1.00,5.7209,3,233.0,-1.00,383.37,5.81,25.30 +-1.00000,0.00,-1.000,0,0.4480,6.2110,6.50,-1.0000,3,233.0,17.90,-1.00,7.44,24.70 +0.12269,0.00,6.910,0,0.4480,6.0690,40.00,-1.0000,3,233.0,-1.00,389.39,9.55,21.20 +0.17142,0.00,6.910,0,0.4480,5.6820,33.80,5.1004,3,233.0,17.90,-1.00,10.21,19.30 +0.18836,0.00,-1.000,0,0.4480,5.7860,33.30,-1.0000,3,233.0,17.90,396.90,14.15,20.00 +0.22927,0.00,6.910,0,0.4480,6.0300,85.50,5.6894,3,233.0,17.90,-1.00,18.80,16.60 +0.25387,-1.00,6.910,0,0.4480,5.3990,95.30,-1.0000,3,233.0,17.90,396.90,30.81,14.40 +0.21977,0.00,6.910,0,-1.0000,5.6020,62.00,6.0877,3,233.0,17.90,396.90,16.20,19.40 +0.08873,21.00,5.640,0,0.4390,5.9630,45.70,6.8147,4,243.0,16.80,-1.00,13.45,19.70 +0.04337,21.00,5.640,0,0.4390,6.1150,63.00,6.8147,4,243.0,16.80,-1.00,9.43,20.50 +0.05360,21.00,5.640,0,0.4390,6.5110,-1.00,6.8147,4,243.0,16.80,396.90,5.28,25.00 +0.04981,21.00,5.640,0,0.4390,5.9980,21.40,6.8147,4,243.0,-1.00,396.90,8.43,23.40 +0.01360,75.00,4.000,0,0.4100,-1.0000,-1.00,7.3197,3,469.0,21.10,396.90,14.80,18.90 +-1.00000,90.00,1.220,0,0.4030,7.2490,21.90,-1.0000,5,226.0,17.90,395.93,-1.00,35.40 +0.02055,-1.00,0.740,0,-1.0000,6.3830,35.70,9.1876,2,313.0,17.30,396.90,5.77,24.70 +0.01432,100.00,1.320,0,0.4110,6.8160,40.50,-1.0000,5,256.0,15.10,392.90,3.95,31.60 +0.15445,25.00,5.130,0,-1.0000,6.1450,-1.00,7.8148,8,284.0,19.70,390.68,6.86,23.30 +0.10328,25.00,5.130,0,0.4530,5.9270,47.20,6.9320,8,284.0,19.70,396.90,9.22,19.60 +0.14932,25.00,5.130,0,0.4530,5.7410,-1.00,7.2254,8,284.0,19.70,395.11,-1.00,18.70 +-1.00000,25.00,5.130,0,0.4530,5.9660,93.40,6.8185,8,284.0,19.70,378.08,14.44,16.00 +-1.00000,25.00,5.130,0,0.4530,6.4560,67.80,7.2255,8,284.0,19.70,396.90,6.73,22.20 +0.12650,25.00,5.130,0,0.4530,6.7620,43.40,7.9809,8,284.0,19.70,395.58,9.50,25.00 +0.01951,17.50,1.380,0,0.4161,7.1040,59.50,9.2229,3,216.0,18.60,393.24,8.05,33.00 +0.03584,-1.00,3.370,0,0.3980,6.2900,17.80,6.6115,4,337.0,16.10,396.90,4.67,23.50 +0.04379,80.00,3.370,0,0.3980,5.7870,31.10,6.6115,4,337.0,16.10,-1.00,10.24,19.40 +0.05789,12.50,6.070,0,0.4090,-1.0000,21.40,6.4980,4,345.0,18.90,396.21,8.10,22.00 +0.13554,-1.00,-1.000,0,0.4090,5.5940,-1.00,6.4980,4,345.0,18.90,-1.00,13.09,17.40 +0.12816,-1.00,6.070,0,0.4090,5.8850,33.00,6.4980,4,345.0,18.90,396.90,8.79,20.90 +0.08826,0.00,-1.000,0,-1.0000,-1.0000,6.60,-1.0000,4,305.0,19.20,383.73,-1.00,24.20 +0.15876,0.00,10.810,0,0.4130,5.9610,17.50,5.2873,4,305.0,-1.00,376.94,9.88,21.70 +0.09164,-1.00,10.810,0,0.4130,6.0650,7.80,5.2873,4,305.0,19.20,390.91,5.52,22.80 +0.19539,0.00,10.810,0,0.4130,6.2450,-1.00,5.2873,4,305.0,19.20,377.17,7.54,23.40 +0.07896,0.00,-1.000,0,0.4370,6.2730,6.00,4.2515,5,398.0,18.70,394.92,6.78,24.10 +0.09512,0.00,12.830,0,0.4370,6.2860,45.00,4.5026,5,398.0,18.70,383.23,-1.00,21.40 +0.10153,0.00,12.830,0,0.4370,6.2790,-1.00,4.0522,5,398.0,18.70,373.66,-1.00,20.00 +0.08707,0.00,12.830,0,-1.0000,6.1400,45.80,4.0905,5,398.0,18.70,386.96,10.27,20.80 +0.05646,0.00,12.830,0,0.4370,-1.0000,53.70,5.0141,5,398.0,18.70,386.40,12.34,21.20 +0.08387,0.00,12.830,0,0.4370,5.8740,-1.00,-1.0000,5,398.0,18.70,396.06,9.10,20.30 +0.04113,25.00,4.860,0,-1.0000,-1.0000,33.50,-1.0000,4,281.0,19.00,396.90,5.29,28.00 +0.04462,25.00,4.860,0,0.4260,6.6190,70.40,5.4007,4,281.0,19.00,395.63,7.22,23.90 +0.03659,-1.00,-1.000,0,0.4260,6.3020,32.20,5.4007,4,281.0,19.00,396.90,6.72,24.80 +0.03551,25.00,4.860,0,0.4260,6.1670,46.70,5.4007,4,281.0,19.00,390.64,-1.00,22.90 +-1.00000,-1.00,4.490,0,0.4490,6.3890,-1.00,4.7794,3,247.0,18.50,396.90,9.62,23.90 +0.05735,0.00,-1.000,0,0.4490,6.6300,56.10,4.4377,3,247.0,18.50,392.30,6.53,26.60 +0.05188,0.00,4.490,0,-1.0000,6.0150,-1.00,4.4272,3,247.0,18.50,-1.00,12.86,22.50 +0.07151,0.00,4.490,0,0.4490,6.1210,56.80,3.7476,3,247.0,18.50,395.15,-1.00,22.20 +0.05660,0.00,3.410,0,0.4890,7.0070,86.30,3.4217,2,270.0,-1.00,396.90,5.50,23.60 +0.05302,0.00,3.410,0,0.4890,7.0790,63.10,3.4145,2,270.0,17.80,-1.00,5.70,28.70 +0.04684,0.00,3.410,0,0.4890,-1.0000,66.10,3.0923,2,270.0,17.80,392.18,8.81,22.60 +0.03932,0.00,3.410,0,-1.0000,-1.0000,73.90,3.0921,2,270.0,17.80,393.55,8.20,22.00 +0.04203,28.00,15.040,0,0.4640,6.4420,53.60,3.6659,4,270.0,18.20,-1.00,8.16,22.90 +0.02875,28.00,15.040,0,0.4640,6.2110,28.90,3.6659,4,270.0,18.20,396.33,6.21,25.00 +0.04294,28.00,15.040,0,0.4640,6.2490,77.30,3.6150,4,270.0,18.20,-1.00,10.59,20.60 +0.12204,0.00,-1.000,0,0.4450,6.6250,-1.00,3.4952,2,276.0,18.00,357.98,-1.00,28.40 +0.11504,0.00,2.890,0,0.4450,6.1630,69.60,3.4952,2,276.0,18.00,391.83,11.34,21.40 +0.12083,0.00,2.890,0,0.4450,-1.0000,76.00,3.4952,2,276.0,18.00,396.90,-1.00,38.70 +0.08187,0.00,2.890,0,-1.0000,7.8200,36.90,3.4952,2,276.0,18.00,393.53,3.57,43.80 +0.06860,0.00,2.890,0,0.4450,7.4160,-1.00,3.4952,2,276.0,-1.00,396.90,6.19,33.20 +0.14866,0.00,8.560,0,0.5200,6.7270,79.90,2.7778,5,384.0,20.90,394.76,-1.00,27.50 +0.11432,-1.00,-1.000,0,0.5200,6.7810,71.30,2.8561,5,384.0,20.90,395.58,-1.00,26.50 +0.22876,0.00,8.560,0,0.5200,6.4050,85.40,2.7147,5,384.0,-1.00,70.80,10.63,18.60 +0.21161,0.00,8.560,0,0.5200,6.1370,87.40,2.7147,5,384.0,20.90,394.47,13.44,19.30 +0.13960,0.00,-1.000,0,0.5200,6.1670,-1.00,2.4210,5,384.0,20.90,392.69,12.33,20.10 +0.13262,0.00,8.560,0,0.5200,-1.0000,96.70,2.1069,5,384.0,20.90,394.05,16.47,19.50 +0.17120,0.00,-1.000,0,0.5200,-1.0000,91.90,2.2110,5,384.0,20.90,395.67,18.66,19.50 +0.13117,0.00,8.560,0,-1.0000,6.1270,85.20,2.1224,5,384.0,20.90,387.69,14.09,20.40 +0.12802,-1.00,8.560,0,0.5200,-1.0000,97.10,2.4329,5,384.0,20.90,395.24,12.27,19.80 +0.26363,-1.00,8.560,0,0.5200,6.2290,91.20,2.5451,5,384.0,20.90,391.23,-1.00,19.40 +0.10793,0.00,8.560,0,0.5200,6.1950,54.40,2.7778,5,384.0,20.90,393.49,13.00,21.70 +0.10084,0.00,-1.000,0,0.5470,6.7150,-1.00,2.6775,6,432.0,17.80,395.59,10.16,22.80 +0.12329,0.00,10.010,0,0.5470,-1.0000,92.90,2.3534,6,432.0,-1.00,394.95,16.21,18.80 +0.22212,0.00,10.010,0,0.5470,6.0920,95.40,2.5480,6,432.0,17.80,396.90,17.09,18.70 +0.14231,0.00,10.010,0,-1.0000,6.2540,84.20,2.2565,6,432.0,17.80,388.74,10.45,18.50 +0.17134,0.00,10.010,0,0.5470,5.9280,88.20,2.4631,6,432.0,17.80,344.91,15.76,18.30 +-1.00000,0.00,10.010,0,0.5470,6.1760,72.50,2.7301,6,432.0,17.80,393.30,12.04,21.20 +0.15098,0.00,10.010,0,-1.0000,6.0210,-1.00,2.7474,6,432.0,17.80,394.51,10.30,19.20 +0.13058,0.00,-1.000,0,0.5470,5.8720,-1.00,2.4775,6,432.0,17.80,-1.00,15.37,20.40 +-1.00000,0.00,10.010,0,0.5470,5.7310,65.20,-1.0000,6,432.0,17.80,391.50,13.61,19.30 +0.06899,0.00,25.650,0,-1.0000,5.8700,69.70,2.2577,2,188.0,19.10,-1.00,14.37,22.00 +0.07165,0.00,-1.000,0,0.5810,6.0040,84.10,2.1974,2,188.0,19.10,377.67,14.27,20.30 +0.09299,0.00,25.650,0,0.5810,5.9610,92.90,-1.0000,2,188.0,19.10,378.09,17.93,20.50 +0.15038,0.00,25.650,0,0.5810,5.8560,97.00,1.9444,2,188.0,19.10,370.31,25.41,17.30 +0.09849,0.00,25.650,0,0.5810,5.8790,95.80,2.0063,2,188.0,19.10,379.38,17.58,18.80 +0.16902,0.00,25.650,0,-1.0000,5.9860,-1.00,-1.0000,2,188.0,19.10,385.02,14.81,21.40 +0.38735,0.00,25.650,0,0.5810,5.6130,95.60,1.7572,2,188.0,19.10,359.29,27.26,15.70 +0.25915,-1.00,21.890,0,0.6240,5.6930,96.00,1.7883,4,437.0,21.20,392.11,-1.00,16.20 +0.32543,-1.00,21.890,0,0.6240,6.4310,-1.00,1.8125,4,437.0,21.20,396.90,15.39,18.00 +0.88125,0.00,-1.000,0,0.6240,5.6370,94.70,1.9799,4,437.0,21.20,396.90,18.34,14.30 +0.34006,0.00,21.890,0,0.6240,6.4580,98.90,2.1185,4,437.0,21.20,395.04,12.60,19.20 +1.19294,0.00,21.890,0,0.6240,6.3260,97.70,2.2710,4,437.0,21.20,-1.00,-1.00,19.60 +0.59005,0.00,21.890,0,0.6240,6.3720,97.90,-1.0000,4,437.0,21.20,385.76,-1.00,23.00 +0.32982,0.00,21.890,0,0.6240,-1.0000,95.40,2.4699,4,437.0,-1.00,388.69,15.03,18.40 +-1.00000,-1.00,-1.000,0,0.6240,5.7570,98.40,2.3460,4,437.0,-1.00,-1.00,17.31,15.60 +0.55778,0.00,21.890,0,0.6240,6.3350,98.20,2.1107,4,437.0,-1.00,394.67,16.96,18.10 +0.32264,0.00,21.890,0,-1.0000,5.9420,93.50,1.9669,4,437.0,21.20,-1.00,-1.00,17.40 +0.35233,0.00,21.890,0,-1.0000,6.4540,-1.00,1.8498,4,437.0,21.20,394.08,14.59,17.10 +0.24980,0.00,21.890,0,0.6240,5.8570,98.20,1.6686,4,437.0,-1.00,-1.00,21.32,13.30 +-1.00000,0.00,21.890,0,0.6240,6.1510,97.90,1.6687,4,437.0,21.20,396.90,18.46,17.80 +0.29090,0.00,21.890,0,0.6240,6.1740,93.60,1.6119,4,437.0,21.20,388.08,24.16,14.00 +-1.00000,0.00,21.890,0,0.6240,5.0190,-1.00,1.4394,4,437.0,21.20,-1.00,34.41,14.40 +3.32105,0.00,19.580,1,0.8710,5.4030,-1.00,1.3216,5,403.0,14.70,396.90,26.82,13.40 +4.09740,0.00,19.580,0,0.8710,5.4680,100.00,1.4118,5,403.0,-1.00,-1.00,26.42,15.60 +2.77974,0.00,-1.000,0,0.8710,4.9030,97.80,1.3459,5,403.0,14.70,-1.00,29.29,11.80 +-1.00000,0.00,19.580,0,0.8710,6.1300,100.00,-1.0000,5,403.0,-1.00,172.91,27.80,13.80 +-1.00000,0.00,19.580,0,-1.0000,5.6280,100.00,1.5166,5,403.0,14.70,169.27,16.65,15.60 +2.36862,-1.00,19.580,0,0.8710,4.9260,95.70,1.4608,5,403.0,14.70,391.71,29.53,14.60 +2.33099,0.00,19.580,0,0.8710,5.1860,93.80,-1.0000,5,403.0,14.70,356.99,28.32,17.80 +2.73397,0.00,19.580,0,0.8710,5.5970,94.90,1.5257,5,403.0,14.70,-1.00,21.45,15.40 +1.65660,0.00,19.580,0,0.8710,6.1220,97.30,1.6180,5,403.0,14.70,-1.00,14.10,21.50 +1.49632,0.00,19.580,0,0.8710,5.4040,100.00,-1.0000,5,403.0,-1.00,341.60,-1.00,19.60 +-1.00000,0.00,19.580,1,0.8710,5.0120,88.00,1.6102,5,403.0,14.70,-1.00,-1.00,15.30 +-1.00000,0.00,19.580,0,0.8710,5.7090,98.50,1.6232,5,403.0,14.70,261.95,15.79,19.40 +1.41385,0.00,19.580,1,0.8710,6.1290,96.00,1.7494,5,403.0,14.70,321.02,15.12,17.00 +3.53501,0.00,19.580,1,-1.0000,6.1520,82.60,1.7455,5,403.0,14.70,88.01,15.02,15.60 +2.44668,0.00,19.580,0,0.8710,5.2720,94.00,-1.0000,5,403.0,14.70,-1.00,16.14,13.10 +1.22358,0.00,19.580,0,0.6050,6.9430,97.40,1.8773,5,403.0,14.70,363.43,4.59,41.30 +1.34284,0.00,19.580,0,0.6050,6.0660,100.00,1.7573,5,403.0,14.70,353.89,6.43,24.30 +1.42502,0.00,-1.000,0,0.8710,6.5100,100.00,1.7659,5,403.0,14.70,364.31,7.39,23.30 +1.27346,-1.00,-1.000,1,0.6050,-1.0000,-1.00,1.7984,5,403.0,14.70,338.92,-1.00,27.00 +-1.00000,0.00,19.580,0,-1.0000,7.4890,90.80,1.9709,5,403.0,14.70,374.43,1.73,50.00 +-1.00000,0.00,19.580,1,0.6050,-1.0000,-1.00,2.0407,5,403.0,14.70,389.61,1.92,50.00 +1.51902,0.00,19.580,1,-1.0000,8.3750,93.90,2.1620,5,403.0,14.70,388.45,3.32,50.00 +2.24236,0.00,19.580,0,0.6050,5.8540,91.80,-1.0000,5,403.0,-1.00,-1.00,11.64,22.70 +2.92400,0.00,19.580,0,0.6050,6.1010,93.00,2.2834,5,403.0,14.70,-1.00,9.81,25.00 +2.01019,0.00,19.580,0,-1.0000,7.9290,-1.00,2.0459,5,403.0,14.70,369.30,3.70,50.00 +1.80028,0.00,19.580,0,0.6050,5.8770,79.20,2.4259,5,403.0,14.70,227.61,-1.00,23.80 +-1.00000,0.00,19.580,0,0.6050,-1.0000,-1.00,2.1000,5,403.0,14.70,-1.00,11.10,23.80 +2.44953,0.00,19.580,0,0.6050,6.4020,95.20,2.2625,5,403.0,14.70,330.04,11.32,22.30 +1.20742,0.00,19.580,0,0.6050,-1.0000,94.60,2.4259,5,403.0,14.70,292.29,14.43,17.40 +-1.00000,0.00,-1.000,0,0.6050,5.8800,97.30,2.3887,5,403.0,14.70,-1.00,12.03,19.10 +0.13914,0.00,4.050,0,-1.0000,5.5720,88.50,2.5961,5,296.0,-1.00,396.90,14.69,23.10 +-1.00000,0.00,-1.000,0,0.5100,6.4160,-1.00,2.6463,5,296.0,16.60,395.50,9.04,23.60 +0.08447,-1.00,-1.000,0,0.5100,5.8590,68.70,2.7019,5,296.0,-1.00,393.23,9.64,22.60 +0.06664,0.00,4.050,0,0.5100,6.5460,33.10,3.1323,5,296.0,16.60,390.96,-1.00,29.40 +0.07022,0.00,4.050,0,0.5100,6.0200,47.20,3.5549,5,296.0,16.60,393.23,10.11,23.20 +0.05425,0.00,4.050,0,0.5100,-1.0000,73.40,3.3175,5,296.0,16.60,395.60,6.29,24.60 +-1.00000,0.00,4.050,0,0.5100,6.8600,74.40,2.9153,5,296.0,-1.00,391.27,-1.00,29.90 +0.05780,0.00,2.460,0,0.4880,6.9800,58.40,2.8290,3,193.0,17.80,396.90,5.04,37.20 +0.06588,0.00,2.460,0,0.4880,7.7650,83.30,2.7410,3,193.0,17.80,395.56,7.56,39.80 +0.06888,0.00,2.460,0,0.4880,6.1440,62.20,-1.0000,3,193.0,17.80,396.90,9.45,36.20 +0.09103,0.00,2.460,0,0.4880,7.1550,92.20,2.7006,3,193.0,17.80,394.12,4.82,37.90 +-1.00000,0.00,2.460,0,0.4880,6.5630,-1.00,2.8470,3,193.0,17.80,396.90,5.68,32.50 +0.08308,0.00,-1.000,0,0.4880,5.6040,89.80,2.9879,3,193.0,-1.00,391.00,13.98,26.40 +0.06047,0.00,2.460,0,0.4880,6.1530,68.80,3.2797,3,193.0,17.80,387.11,13.15,29.60 +0.05602,0.00,-1.000,0,0.4880,7.8310,53.60,3.1992,3,193.0,17.80,-1.00,-1.00,50.00 +0.07875,45.00,3.440,0,-1.0000,6.7820,41.10,3.7886,5,398.0,15.20,393.87,6.68,32.00 +0.12579,45.00,3.440,0,0.4370,6.5560,29.10,4.5667,5,398.0,-1.00,382.84,4.56,29.80 +0.08370,45.00,3.440,0,0.4370,7.1850,38.90,4.5667,5,398.0,15.20,396.90,5.39,34.90 +0.09068,45.00,3.440,0,0.4370,6.9510,21.50,-1.0000,5,398.0,15.20,-1.00,5.10,37.00 +0.06911,45.00,3.440,0,0.4370,6.7390,30.80,6.4798,5,398.0,-1.00,389.71,4.69,30.50 +0.08664,45.00,-1.000,0,-1.0000,7.1780,26.30,6.4798,5,398.0,-1.00,390.49,2.87,36.40 +0.02187,60.00,2.930,0,0.4010,-1.0000,9.90,6.2196,1,265.0,15.60,393.37,-1.00,31.10 +0.01439,60.00,2.930,0,0.4010,6.6040,18.80,6.2196,1,265.0,15.60,376.70,4.38,29.10 +0.01381,80.00,0.460,0,0.4220,7.8750,32.00,5.6484,4,255.0,14.40,394.23,2.97,50.00 +-1.00000,80.00,1.520,0,0.4040,7.2870,34.10,7.3090,2,329.0,12.60,396.90,4.08,33.30 +0.04666,80.00,1.520,0,0.4040,7.1070,-1.00,7.3090,2,329.0,12.60,354.31,8.61,30.30 +0.03768,-1.00,-1.000,0,0.4040,7.2740,38.30,7.3090,2,329.0,12.60,392.20,6.62,34.60 +-1.00000,95.00,1.470,0,0.4030,6.9750,15.30,-1.0000,3,402.0,17.00,396.90,4.56,34.90 +0.01778,95.00,1.470,0,0.4030,7.1350,-1.00,7.6534,3,402.0,17.00,384.30,4.45,32.90 +0.03445,82.50,2.030,0,0.4150,6.1620,38.40,6.2700,2,348.0,14.70,-1.00,7.43,24.10 +0.02177,82.50,-1.000,0,0.4150,7.6100,15.70,-1.0000,2,348.0,14.70,395.38,3.11,42.30 +0.03510,95.00,2.680,0,0.4161,7.8530,33.20,5.1180,4,224.0,14.70,392.78,3.81,48.50 +0.02009,95.00,2.680,0,0.4161,8.0340,31.90,5.1180,4,224.0,14.70,390.55,2.88,50.00 +0.13642,0.00,10.590,0,-1.0000,-1.0000,22.30,3.9454,4,277.0,-1.00,396.90,10.87,22.60 +0.22969,0.00,10.590,0,-1.0000,6.3260,52.50,4.3549,4,277.0,18.60,394.87,-1.00,24.40 +-1.00000,0.00,10.590,0,0.4890,5.7830,72.70,4.3549,4,277.0,18.60,-1.00,18.06,22.50 +-1.00000,0.00,10.590,1,-1.0000,6.0640,59.10,4.2392,4,277.0,18.60,381.32,14.66,24.40 +0.43571,0.00,10.590,1,-1.0000,5.3440,100.00,3.8750,4,277.0,18.60,396.90,23.09,20.00 +0.17446,0.00,10.590,1,0.4890,5.9600,-1.00,3.8771,4,277.0,18.60,393.25,17.27,21.70 +0.37578,0.00,-1.000,1,0.4890,5.4040,88.60,3.6650,4,277.0,18.60,395.24,23.98,19.30 +0.21719,0.00,10.590,1,0.4890,5.8070,53.80,3.6526,4,277.0,18.60,-1.00,16.03,22.40 +0.14052,0.00,10.590,0,0.4890,6.3750,32.30,3.9454,4,277.0,18.60,385.81,9.38,28.10 +0.28955,0.00,10.590,0,0.4890,5.4120,9.80,3.5875,4,277.0,18.60,348.93,29.55,23.70 +0.19802,0.00,10.590,0,-1.0000,6.1820,42.40,3.9454,4,277.0,18.60,393.63,-1.00,25.00 +-1.00000,0.00,13.890,1,0.5500,5.8880,-1.00,3.1121,5,276.0,16.40,392.80,13.51,23.30 +0.07013,-1.00,13.890,0,0.5500,6.6420,85.10,3.4211,5,276.0,-1.00,392.78,9.69,28.70 +0.11069,0.00,13.890,1,0.5500,5.9510,93.80,2.8893,5,276.0,16.40,396.90,17.92,21.50 +0.11425,0.00,13.890,1,-1.0000,6.3730,92.40,3.3633,5,276.0,16.40,393.74,10.50,23.00 +0.35809,0.00,6.200,1,0.5070,6.9510,88.50,2.8617,8,307.0,17.40,391.70,9.71,26.70 +0.40771,0.00,6.200,1,0.5070,6.1640,-1.00,-1.0000,8,307.0,17.40,395.24,21.46,21.70 +0.62356,0.00,6.200,1,0.5070,6.8790,77.70,3.2721,8,307.0,17.40,390.39,-1.00,27.50 +-1.00000,0.00,6.200,0,0.5070,6.6180,80.80,-1.0000,8,307.0,17.40,-1.00,7.60,30.10 +0.31533,-1.00,6.200,0,-1.0000,8.2660,78.30,2.8944,8,307.0,17.40,-1.00,4.14,44.80 +-1.00000,0.00,6.200,0,0.5040,8.7250,83.00,2.8944,8,307.0,-1.00,382.00,-1.00,50.00 +0.38214,0.00,6.200,0,0.5040,-1.0000,86.50,3.2157,8,307.0,-1.00,387.38,3.13,37.60 +0.41238,0.00,6.200,0,0.5040,7.1630,79.90,-1.0000,8,307.0,17.40,-1.00,-1.00,31.60 +0.29819,0.00,6.200,0,0.5040,7.6860,17.00,3.3751,8,307.0,17.40,377.51,3.92,46.70 +0.44178,0.00,-1.000,0,0.5040,6.5520,21.40,3.3751,8,307.0,-1.00,380.34,3.76,31.50 +0.53700,0.00,6.200,0,0.5040,-1.0000,68.10,3.6715,8,307.0,17.40,378.35,11.65,24.30 +-1.00000,-1.00,6.200,0,0.5040,7.4120,76.90,3.6715,8,307.0,17.40,376.14,5.25,31.70 +0.57529,0.00,6.200,0,0.5070,-1.0000,73.30,3.8384,8,307.0,17.40,385.91,2.47,41.70 +0.33147,-1.00,6.200,0,0.5070,-1.0000,70.40,3.6519,8,307.0,17.40,-1.00,3.95,48.30 +-1.00000,0.00,6.200,1,0.5070,6.7260,-1.00,-1.0000,8,307.0,17.40,360.20,8.05,29.00 +0.33045,0.00,-1.000,0,0.5070,6.0860,-1.00,3.6519,8,307.0,17.40,376.75,10.88,24.00 +-1.00000,0.00,6.200,1,0.5070,-1.0000,76.50,4.1480,8,307.0,-1.00,388.45,9.54,25.10 +0.51183,0.00,6.200,0,0.5070,7.3580,71.60,4.1480,8,307.0,-1.00,390.07,-1.00,31.50 +0.08244,30.00,4.930,0,0.4280,-1.0000,-1.00,6.1899,6,300.0,16.60,379.41,6.36,23.70 +-1.00000,30.00,4.930,0,0.4280,6.6060,42.20,6.1899,6,300.0,16.60,383.78,7.37,23.30 +0.11329,30.00,4.930,0,0.4280,6.8970,54.30,-1.0000,6,300.0,16.60,391.25,11.38,22.00 +0.10612,30.00,4.930,0,0.4280,6.0950,65.10,6.3361,6,300.0,16.60,394.62,-1.00,20.10 +0.10290,30.00,4.930,0,-1.0000,6.3580,-1.00,7.0355,6,300.0,16.60,372.75,11.22,22.20 +0.12757,30.00,4.930,0,0.4280,-1.0000,7.80,7.0355,6,300.0,-1.00,374.71,5.19,23.70 +0.20608,22.00,5.860,0,0.4310,5.5930,76.50,7.9549,7,330.0,19.10,372.49,12.50,17.60 +0.19133,22.00,5.860,0,0.4310,5.6050,70.20,7.9549,7,330.0,19.10,389.13,18.46,18.50 +0.33983,22.00,5.860,0,0.4310,6.1080,-1.00,8.0555,7,330.0,19.10,390.18,9.16,24.30 +0.19657,22.00,-1.000,0,0.4310,6.2260,79.20,8.0555,7,330.0,19.10,-1.00,10.15,20.50 +0.16439,22.00,5.860,0,0.4310,6.4330,49.10,7.8265,7,330.0,19.10,-1.00,9.52,24.50 +0.19073,22.00,5.860,0,-1.0000,-1.0000,17.50,7.8265,7,330.0,19.10,-1.00,6.56,26.20 +-1.00000,22.00,5.860,0,0.4310,6.4870,13.00,-1.0000,7,330.0,19.10,396.28,5.90,24.40 +0.21409,22.00,5.860,0,0.4310,6.4380,-1.00,-1.0000,7,330.0,19.10,377.07,3.59,24.80 +-1.00000,22.00,5.860,0,0.4310,6.9570,6.80,8.9067,7,330.0,19.10,386.09,3.53,29.60 +0.36894,22.00,5.860,0,0.4310,8.2590,-1.00,-1.0000,7,330.0,19.10,396.90,3.54,42.80 +-1.00000,80.00,3.640,0,0.3920,6.1080,32.00,9.2203,1,315.0,16.40,-1.00,6.57,21.90 +0.03548,80.00,-1.000,0,0.3920,5.8760,19.10,9.2203,1,315.0,16.40,395.18,9.25,20.90 +0.01538,90.00,3.750,0,0.3940,-1.0000,34.20,6.3361,3,244.0,15.90,386.34,3.11,44.00 +0.61154,20.00,3.970,0,0.6470,8.7040,86.90,1.8010,5,264.0,13.00,389.70,5.12,50.00 +0.66351,20.00,3.970,0,0.6470,7.3330,100.00,1.8946,5,264.0,13.00,383.29,-1.00,36.00 +0.65665,-1.00,3.970,0,0.6470,6.8420,-1.00,2.0107,5,264.0,13.00,391.93,-1.00,30.10 +0.54011,20.00,3.970,0,0.6470,7.2030,-1.00,2.1121,5,264.0,-1.00,392.80,9.59,33.80 +0.53412,20.00,3.970,0,0.6470,-1.0000,89.40,2.1398,5,264.0,-1.00,-1.00,7.26,43.10 +-1.00000,20.00,3.970,0,0.6470,8.3980,91.50,-1.0000,5,264.0,13.00,386.86,5.91,48.80 +0.82526,20.00,3.970,0,0.6470,7.3270,94.50,2.0788,5,264.0,13.00,393.42,11.25,31.00 +0.55007,20.00,-1.000,0,0.6470,7.2060,91.60,1.9301,5,264.0,13.00,-1.00,8.10,36.50 +0.76162,-1.00,3.970,0,0.6470,5.5600,62.80,1.9865,5,264.0,-1.00,392.40,10.45,22.80 +0.78570,20.00,3.970,0,-1.0000,7.0140,84.60,2.1329,5,264.0,13.00,384.07,14.79,30.70 +0.57834,20.00,3.970,0,0.5750,8.2970,67.00,-1.0000,5,264.0,13.00,384.54,7.44,50.00 +0.54050,-1.00,3.970,0,0.5750,7.4700,52.60,2.8720,5,264.0,-1.00,390.30,-1.00,43.50 +0.09065,20.00,6.960,1,-1.0000,5.9200,61.50,3.9175,3,223.0,-1.00,391.34,-1.00,20.70 +-1.00000,20.00,6.960,0,0.4640,5.8560,-1.00,-1.0000,3,223.0,18.60,-1.00,13.00,21.10 +0.16211,20.00,6.960,0,0.4640,6.2400,16.30,4.4290,3,223.0,18.60,-1.00,6.59,25.20 +0.11460,20.00,-1.000,0,0.4640,6.5380,58.70,3.9175,3,223.0,-1.00,394.96,7.73,24.40 +0.22188,20.00,-1.000,1,-1.0000,7.6910,51.80,4.3665,3,223.0,18.60,390.77,6.58,35.20 +0.05644,40.00,6.410,1,0.4470,6.7580,32.90,4.0776,4,254.0,17.60,396.90,3.53,32.40 +0.09604,40.00,6.410,0,0.4470,6.8540,42.80,4.2673,4,254.0,17.60,396.90,-1.00,32.00 +0.10469,40.00,-1.000,1,0.4470,7.2670,49.00,-1.0000,4,254.0,-1.00,389.25,6.05,33.20 +-1.00000,40.00,6.410,1,-1.0000,-1.0000,27.60,-1.0000,4,254.0,17.60,393.45,4.16,33.10 +0.07978,40.00,6.410,0,-1.0000,6.4820,32.10,4.1403,4,254.0,17.60,-1.00,7.19,29.10 +0.21038,20.00,-1.000,0,-1.0000,-1.0000,32.20,4.1007,5,216.0,14.90,396.90,4.85,35.10 +0.03578,20.00,-1.000,0,-1.0000,7.8200,64.50,4.6947,5,216.0,14.90,387.31,3.76,45.40 +-1.00000,20.00,3.330,0,0.4429,6.9680,37.20,5.2447,5,216.0,14.90,392.23,4.59,35.40 +0.06129,-1.00,3.330,1,0.4429,7.6450,49.70,5.2119,5,216.0,14.90,377.07,3.01,46.00 +0.01501,90.00,1.210,1,0.4010,7.9230,-1.00,5.8850,1,198.0,13.60,395.52,3.16,50.00 +0.00906,90.00,2.970,0,0.4000,7.0880,20.80,7.3073,1,285.0,15.30,394.72,7.85,32.20 +0.01096,55.00,2.250,0,0.3890,6.4530,31.90,-1.0000,1,300.0,15.30,394.72,8.23,22.00 +-1.00000,80.00,1.760,0,0.3850,6.2300,31.50,9.0892,1,241.0,18.20,341.60,-1.00,20.10 +0.03871,52.50,5.320,0,-1.0000,6.2090,31.30,7.3172,6,293.0,16.60,-1.00,7.14,23.20 +-1.00000,-1.00,5.320,0,0.4050,6.3150,45.60,7.3172,6,293.0,16.60,396.90,7.60,22.30 +0.04297,52.50,5.320,0,0.4050,6.5650,22.90,7.3172,6,293.0,16.60,371.72,9.51,24.80 +0.03502,80.00,4.950,0,0.4110,6.8610,-1.00,5.1167,4,245.0,19.20,396.90,3.33,28.50 +0.07886,80.00,4.950,0,0.4110,7.1480,27.70,5.1167,4,245.0,19.20,396.90,3.56,37.30 +-1.00000,80.00,4.950,0,-1.0000,6.6300,23.40,5.1167,4,245.0,19.20,396.90,-1.00,27.90 +-1.00000,0.00,13.920,0,0.4370,6.1270,18.40,5.5027,4,289.0,16.00,396.90,8.58,23.90 +0.08199,0.00,13.920,0,0.4370,6.0090,42.30,5.5027,4,289.0,16.00,396.90,10.40,21.70 +0.12932,0.00,13.920,0,-1.0000,6.6780,31.10,5.9604,4,289.0,16.00,396.90,6.27,28.60 +0.05372,0.00,13.920,0,0.4370,6.5490,-1.00,-1.0000,4,289.0,16.00,392.85,7.39,27.10 +0.14103,-1.00,13.920,0,0.4370,5.7900,58.00,6.3200,4,289.0,16.00,396.90,15.84,20.30 +0.06466,70.00,2.240,0,0.4000,6.3450,-1.00,7.8278,5,358.0,14.80,368.24,4.97,22.50 +0.05561,70.00,2.240,0,-1.0000,7.0410,-1.00,7.8278,5,358.0,14.80,371.58,4.74,29.00 +-1.00000,70.00,2.240,0,0.4000,6.8710,47.40,7.8278,5,358.0,14.80,390.86,6.07,24.80 +0.03537,34.00,6.090,0,0.4330,6.5900,-1.00,5.4917,7,329.0,16.10,395.75,9.50,22.00 +0.09266,34.00,6.090,0,0.4330,6.4950,-1.00,5.4917,7,329.0,16.10,383.61,8.67,26.40 +0.10000,34.00,-1.000,0,0.4330,-1.0000,17.70,-1.0000,7,329.0,16.10,390.43,4.86,33.10 +0.05515,33.00,2.180,0,0.4720,7.2360,41.10,4.0220,7,222.0,18.40,393.68,6.93,36.10 +0.05479,33.00,2.180,0,0.4720,6.6160,58.10,3.3700,7,222.0,18.40,393.36,8.93,28.40 +0.07503,33.00,2.180,0,0.4720,-1.0000,71.90,3.0992,7,222.0,18.40,396.90,6.47,33.40 +0.04932,-1.00,2.180,0,0.4720,6.8490,70.30,3.1827,7,222.0,-1.00,396.90,7.53,28.20 +0.49298,0.00,9.900,0,0.5440,6.6350,82.50,3.3175,4,304.0,18.40,396.90,4.54,22.80 +0.34940,0.00,9.900,0,0.5440,5.9720,76.70,3.1025,4,304.0,18.40,396.24,9.97,20.30 +2.63548,0.00,9.900,0,0.5440,4.9730,37.80,-1.0000,4,304.0,18.40,350.45,-1.00,16.10 +0.79041,0.00,9.900,0,0.5440,-1.0000,52.80,2.6403,4,304.0,18.40,396.90,5.98,22.10 +-1.00000,0.00,9.900,0,0.5440,-1.0000,90.40,2.8340,4,304.0,18.40,396.30,11.72,19.40 +0.26938,-1.00,-1.000,0,0.5440,6.2660,-1.00,3.2628,4,304.0,18.40,393.39,7.90,21.60 +0.36920,-1.00,9.900,0,-1.0000,-1.0000,87.30,3.6023,4,304.0,18.40,395.69,9.28,23.80 +0.25356,0.00,-1.000,0,0.5440,5.7050,77.70,3.9450,4,304.0,-1.00,396.42,11.50,16.20 +0.31827,0.00,9.900,0,0.5440,-1.0000,83.20,3.9986,4,304.0,-1.00,390.70,18.33,17.80 +0.24522,0.00,9.900,0,0.5440,5.7820,71.70,-1.0000,4,304.0,18.40,-1.00,15.94,19.80 +0.40202,0.00,9.900,0,0.5440,6.3820,67.20,3.5325,4,304.0,18.40,-1.00,10.36,23.10 +0.47547,0.00,-1.000,0,-1.0000,6.1130,-1.00,4.0019,4,304.0,18.40,-1.00,12.73,21.00 +0.16760,0.00,7.380,0,0.4930,6.4260,52.30,4.5404,5,287.0,19.60,396.90,7.20,23.80 +-1.00000,-1.00,7.380,0,0.4930,6.3760,54.30,-1.0000,5,287.0,19.60,-1.00,6.87,23.10 +0.35114,0.00,7.380,0,0.4930,-1.0000,49.90,4.7211,5,287.0,19.60,396.90,7.70,20.40 +0.28392,0.00,7.380,0,0.4930,5.7080,74.30,4.7211,5,287.0,19.60,391.13,-1.00,18.50 +0.34109,0.00,7.380,0,0.4930,6.4150,40.10,4.7211,5,287.0,19.60,396.90,6.12,25.00 +0.19186,0.00,7.380,0,0.4930,6.4310,-1.00,5.4159,5,287.0,-1.00,-1.00,5.08,24.60 +0.30347,0.00,7.380,0,0.4930,6.3120,28.90,5.4159,5,287.0,19.60,396.90,6.15,23.00 +-1.00000,0.00,-1.000,0,0.4930,6.0830,43.70,5.4159,5,287.0,19.60,396.90,12.79,22.20 +-1.00000,-1.00,3.240,0,0.4600,5.8680,25.80,5.2146,4,430.0,16.90,382.44,9.97,19.30 +0.06724,0.00,3.240,0,0.4600,6.3330,17.20,5.2146,4,430.0,16.90,375.21,7.34,22.60 +0.04544,0.00,3.240,0,0.4600,6.1440,32.20,-1.0000,4,430.0,16.90,368.57,9.09,19.80 +0.05023,35.00,6.060,0,0.4379,5.7060,28.40,6.6407,1,304.0,-1.00,-1.00,12.43,17.10 +0.03466,35.00,6.060,0,0.4379,6.0310,23.30,6.6407,1,304.0,-1.00,362.25,7.83,19.40 +0.05083,-1.00,5.190,0,0.5150,6.3160,38.10,-1.0000,5,224.0,20.20,389.71,5.68,22.20 +0.03738,0.00,5.190,0,0.5150,6.3100,38.50,6.4584,5,224.0,20.20,-1.00,6.75,20.70 +0.03961,0.00,5.190,0,0.5150,6.0370,34.50,5.9853,5,224.0,20.20,-1.00,8.01,21.10 +0.03427,0.00,5.190,0,0.5150,-1.0000,46.30,5.2311,5,224.0,20.20,-1.00,9.80,19.50 +0.03041,0.00,5.190,0,0.5150,5.8950,59.60,5.6150,5,224.0,20.20,394.81,10.56,18.50 +0.03306,0.00,5.190,0,-1.0000,6.0590,37.30,4.8122,5,224.0,20.20,396.14,-1.00,20.60 +0.05497,0.00,5.190,0,0.5150,5.9850,45.40,4.8122,5,224.0,-1.00,396.90,9.74,19.00 +0.06151,0.00,5.190,0,0.5150,-1.0000,-1.00,4.8122,5,224.0,20.20,396.90,9.29,18.70 +0.01301,35.00,1.520,0,0.4420,-1.0000,49.30,7.0379,1,284.0,15.50,394.74,5.49,32.70 +0.02498,0.00,1.890,0,0.5180,6.5400,59.70,6.2669,1,422.0,-1.00,389.96,-1.00,16.50 +0.02543,55.00,3.780,0,0.4840,6.6960,56.40,5.7321,5,370.0,-1.00,396.90,-1.00,23.90 +0.03049,55.00,-1.000,0,0.4840,6.8740,28.10,6.4654,5,370.0,17.60,387.97,4.61,31.20 +-1.00000,0.00,4.390,0,0.4420,6.0140,48.50,8.0136,3,352.0,18.80,385.64,10.53,17.50 +0.06162,0.00,4.390,0,-1.0000,5.8980,-1.00,8.0136,3,352.0,18.80,364.61,12.67,17.20 +0.01870,85.00,4.150,0,-1.0000,6.5160,27.70,8.5353,4,351.0,17.90,392.43,6.36,23.10 +0.01501,80.00,-1.000,0,0.4350,6.6350,29.70,8.3440,4,280.0,-1.00,390.94,5.99,24.50 +-1.00000,40.00,1.250,0,0.4290,6.9390,34.50,8.7921,1,335.0,19.70,389.85,5.89,26.60 +0.06211,40.00,1.250,0,0.4290,6.4900,44.40,8.7921,1,335.0,19.70,396.90,5.98,22.90 +0.07950,60.00,-1.000,0,0.4110,-1.0000,35.90,10.7103,4,411.0,18.30,370.78,5.49,24.10 +0.07244,60.00,1.690,0,-1.0000,5.8840,18.50,-1.0000,4,411.0,18.30,392.33,7.79,18.60 +0.01709,90.00,-1.000,0,0.4100,6.7280,36.10,12.1265,5,187.0,17.00,384.46,4.50,30.10 +0.04301,80.00,1.910,0,0.4130,5.6630,-1.00,10.5857,4,334.0,-1.00,382.80,8.05,18.20 +0.10659,80.00,-1.000,0,0.4130,-1.0000,19.50,10.5857,4,334.0,-1.00,-1.00,5.57,20.60 +8.98296,0.00,18.100,1,0.7700,6.2120,97.40,2.1222,24,666.0,20.20,377.73,17.60,17.80 +3.84970,0.00,18.100,1,-1.0000,6.3950,91.00,2.5052,24,666.0,-1.00,391.34,13.27,21.70 +5.20177,0.00,18.100,1,-1.0000,6.1270,83.40,2.7227,24,666.0,20.20,395.43,11.48,22.70 +4.26131,-1.00,18.100,0,0.7700,6.1120,81.30,2.5091,24,666.0,-1.00,-1.00,12.67,22.60 +4.54192,0.00,18.100,0,0.7700,6.3980,-1.00,2.5182,24,666.0,20.20,374.56,7.79,25.00 +3.83684,0.00,18.100,0,0.7700,6.2510,91.10,-1.0000,24,666.0,20.20,350.65,-1.00,19.90 +3.67822,0.00,-1.000,0,-1.0000,5.3620,96.20,2.1036,24,666.0,20.20,380.79,-1.00,20.80 +4.22239,0.00,18.100,1,0.7700,5.8030,89.00,1.9047,24,666.0,20.20,-1.00,14.64,16.80 +3.47428,0.00,18.100,1,-1.0000,8.7800,82.90,1.9047,24,666.0,20.20,354.55,5.29,21.90 +4.55587,0.00,18.100,0,0.7180,3.5610,87.90,1.6132,24,666.0,20.20,354.70,-1.00,27.50 +3.69695,0.00,18.100,0,0.7180,4.9630,91.40,1.7523,24,666.0,20.20,316.03,14.00,21.90 +13.52220,0.00,18.100,0,0.6310,3.8630,100.00,1.5106,24,666.0,-1.00,-1.00,13.33,23.10 +4.89822,0.00,18.100,0,0.6310,4.9700,-1.00,1.3325,24,666.0,20.20,375.52,3.26,50.00 +5.66998,-1.00,18.100,1,0.6310,6.6830,-1.00,1.3567,24,666.0,20.20,-1.00,-1.00,50.00 +6.53876,0.00,18.100,1,0.6310,7.0160,97.50,1.2024,24,666.0,20.20,392.05,2.96,50.00 +9.23230,0.00,-1.000,0,0.6310,6.2160,100.00,1.1691,24,666.0,20.20,366.15,9.53,50.00 +8.26725,0.00,18.100,1,0.6680,5.8750,89.60,1.1296,24,666.0,20.20,-1.00,8.88,50.00 +11.10810,0.00,18.100,0,0.6680,4.9060,100.00,1.1742,24,666.0,20.20,396.90,34.77,13.80 +18.49820,0.00,18.100,0,0.6680,4.1380,100.00,1.1370,24,666.0,-1.00,396.90,37.97,13.80 +-1.00000,0.00,-1.000,0,0.6710,7.3130,97.90,1.3163,24,666.0,20.20,396.90,13.44,15.00 +15.28800,-1.00,18.100,0,0.6710,6.6490,-1.00,1.3449,24,666.0,20.20,363.02,23.24,13.90 +-1.00000,0.00,18.100,0,0.6710,-1.0000,98.80,1.3580,24,666.0,20.20,396.90,21.24,13.30 +23.64820,0.00,18.100,0,-1.0000,6.3800,96.20,1.3861,24,666.0,20.20,396.90,23.69,13.10 +17.86670,-1.00,-1.000,0,0.6710,6.2230,100.00,1.3861,24,666.0,20.20,393.74,-1.00,10.20 +88.97620,0.00,18.100,0,0.6710,-1.0000,91.90,1.4165,24,666.0,-1.00,396.90,17.21,10.40 +15.87440,0.00,18.100,0,0.6710,6.5450,99.10,1.5192,24,666.0,20.20,396.90,21.08,10.90 +9.18702,0.00,18.100,0,0.7000,5.5360,100.00,1.5804,24,666.0,20.20,396.90,23.60,11.30 +7.99248,0.00,18.100,0,0.7000,-1.0000,100.00,1.5331,24,666.0,20.20,-1.00,24.56,12.30 +20.08490,0.00,18.100,0,-1.0000,4.3680,91.20,1.4395,24,666.0,20.20,285.83,30.63,8.80 +16.81180,0.00,18.100,0,0.7000,5.2770,98.10,1.4261,24,666.0,-1.00,396.90,30.81,7.20 +24.39380,0.00,18.100,0,-1.0000,-1.0000,100.00,1.4672,24,666.0,20.20,-1.00,28.28,10.50 +22.59710,0.00,18.100,0,-1.0000,5.0000,-1.00,-1.0000,24,666.0,20.20,-1.00,31.99,7.40 +-1.00000,-1.00,18.100,0,0.7000,4.8800,-1.00,1.5895,24,666.0,20.20,372.92,30.62,10.20 +8.15174,0.00,18.100,0,0.7000,5.3900,98.90,1.7281,24,666.0,20.20,396.90,20.85,11.50 +6.96215,-1.00,-1.000,0,0.7000,5.7130,97.00,1.9265,24,666.0,-1.00,394.43,17.11,15.10 +-1.00000,0.00,18.100,0,0.7000,-1.0000,82.50,2.1678,24,666.0,20.20,-1.00,18.76,23.20 +-1.00000,0.00,-1.000,0,0.7000,5.0360,97.00,1.7700,24,666.0,20.20,396.90,25.68,9.70 +8.64476,0.00,18.100,0,0.6930,6.1930,92.60,1.7912,24,666.0,20.20,396.90,15.17,13.80 +13.35980,0.00,18.100,0,0.6930,5.8870,94.70,1.7821,24,666.0,20.20,396.90,16.35,12.70 +8.71675,0.00,18.100,0,0.6930,6.4710,98.80,1.7257,24,666.0,20.20,391.98,17.12,13.10 +5.87205,0.00,18.100,0,-1.0000,6.4050,96.00,1.6768,24,666.0,20.20,396.90,19.37,12.50 +7.67202,-1.00,18.100,0,-1.0000,-1.0000,98.90,1.6334,24,666.0,20.20,393.10,19.92,8.50 +38.35180,0.00,18.100,0,0.6930,5.4530,100.00,1.4896,24,666.0,20.20,396.90,30.59,5.00 +9.91655,0.00,18.100,0,0.6930,-1.0000,77.80,1.5004,24,666.0,20.20,338.16,29.97,6.30 +25.04610,0.00,18.100,0,0.6930,5.9870,100.00,1.5888,24,666.0,20.20,396.90,26.77,5.60 +14.23620,0.00,18.100,0,0.6930,6.3430,-1.00,1.5741,24,666.0,20.20,396.90,20.32,7.20 +9.59571,0.00,18.100,0,0.6930,6.4040,100.00,1.6390,24,666.0,20.20,376.11,20.31,12.10 +24.80170,0.00,18.100,0,0.6930,5.3490,96.00,1.7028,24,666.0,20.20,396.90,19.77,8.30 +41.52920,-1.00,18.100,0,0.6930,5.5310,85.40,1.6074,24,666.0,20.20,329.46,27.38,8.50 +67.92080,0.00,18.100,0,0.6930,5.6830,100.00,1.4254,24,666.0,-1.00,384.97,22.98,5.00 +20.71620,0.00,18.100,0,0.6590,4.1380,100.00,1.1781,24,666.0,20.20,370.22,23.34,11.90 +11.95110,-1.00,18.100,0,-1.0000,5.6080,-1.00,1.2852,24,666.0,20.20,332.09,12.13,27.90 +7.40389,0.00,18.100,0,0.5970,5.6170,97.90,1.4547,24,666.0,-1.00,314.64,-1.00,17.20 +14.43830,-1.00,18.100,0,-1.0000,-1.0000,100.00,1.4655,24,666.0,20.20,179.36,19.78,27.50 +51.13580,0.00,18.100,0,0.5970,-1.0000,100.00,1.4130,24,666.0,20.20,-1.00,10.11,15.00 +14.05070,0.00,18.100,0,0.5970,6.6570,100.00,1.5275,24,666.0,20.20,35.05,21.22,17.20 +18.81100,0.00,18.100,0,0.5970,4.6280,100.00,1.5539,24,666.0,20.20,28.79,34.37,17.90 +28.65580,0.00,18.100,0,0.5970,-1.0000,100.00,1.5894,24,666.0,20.20,210.97,20.08,16.30 +-1.00000,0.00,18.100,0,0.6930,4.5190,100.00,1.6582,24,666.0,20.20,88.27,-1.00,7.00 +18.08460,0.00,-1.000,0,-1.0000,-1.0000,100.00,1.8347,24,666.0,20.20,27.25,29.05,7.20 +-1.00000,0.00,18.100,0,0.6790,6.7820,90.80,1.8195,24,666.0,20.20,21.57,25.79,7.50 +-1.00000,0.00,18.100,0,0.6790,-1.0000,89.10,1.6475,24,666.0,-1.00,127.36,26.64,10.40 +73.53410,0.00,18.100,0,0.6790,5.9570,-1.00,1.8026,24,666.0,20.20,16.45,20.62,8.80 +11.81230,0.00,18.100,0,0.7180,6.8240,76.50,1.7940,24,666.0,20.20,48.45,22.74,8.40 +11.08740,0.00,18.100,0,0.7180,6.4110,100.00,1.8589,24,666.0,20.20,318.75,15.02,16.70 +7.02259,0.00,18.100,0,0.7180,6.0060,-1.00,1.8746,24,666.0,-1.00,319.98,-1.00,14.20 +12.04820,-1.00,18.100,0,0.6140,-1.0000,87.60,1.9512,24,666.0,20.20,291.55,14.10,20.80 +7.05042,0.00,18.100,0,0.6140,-1.0000,85.10,2.0218,24,666.0,20.20,2.52,23.29,13.40 +8.79212,0.00,18.100,0,0.5840,5.5650,70.60,2.0635,24,666.0,-1.00,3.65,-1.00,11.70 +15.86030,0.00,-1.000,0,0.6790,5.8960,95.40,1.9096,24,666.0,20.20,7.68,-1.00,8.30 +12.24720,0.00,-1.000,0,0.5840,5.8370,59.70,1.9976,24,666.0,-1.00,-1.00,15.69,10.20 +37.66190,-1.00,18.100,0,0.6790,6.2020,78.70,1.8629,24,666.0,20.20,18.82,14.52,10.90 +7.36711,0.00,18.100,0,0.6790,6.1930,78.10,1.9356,24,666.0,20.20,-1.00,21.52,11.00 +9.33889,0.00,18.100,0,0.6790,-1.0000,95.60,1.9682,24,666.0,20.20,60.72,-1.00,9.50 +-1.00000,0.00,18.100,0,0.5840,6.3480,86.10,2.0527,24,666.0,20.20,83.45,17.64,14.50 +10.06230,0.00,18.100,0,-1.0000,6.8330,94.30,-1.0000,24,666.0,20.20,81.33,19.69,14.10 +6.44405,0.00,18.100,0,0.5840,6.4250,74.80,2.2004,24,666.0,20.20,97.95,-1.00,16.10 +5.58107,0.00,18.100,0,0.7130,6.4360,87.90,2.3158,24,666.0,20.20,100.19,16.22,14.30 +13.91340,0.00,-1.000,0,0.7130,6.2080,-1.00,2.2222,24,666.0,-1.00,100.63,15.17,11.70 +11.16040,0.00,18.100,0,0.7400,6.6290,94.60,-1.0000,24,666.0,20.20,109.85,23.27,13.40 +14.42080,0.00,18.100,0,0.7400,6.4610,93.30,-1.0000,24,666.0,20.20,27.49,18.05,9.60 +15.17720,0.00,18.100,0,0.7400,6.1520,100.00,1.9142,24,666.0,20.20,-1.00,-1.00,8.70 +-1.00000,0.00,-1.000,0,0.7400,5.9350,-1.00,1.8206,24,666.0,20.20,-1.00,34.02,8.40 +9.39063,0.00,18.100,0,0.7400,5.6270,-1.00,1.8172,24,666.0,20.20,-1.00,22.88,12.80 +22.05110,0.00,18.100,0,0.7400,-1.0000,-1.00,1.8662,24,666.0,-1.00,391.45,22.11,10.50 +9.72418,0.00,18.100,0,0.7400,6.4060,97.20,2.0651,24,666.0,-1.00,385.96,19.52,17.10 +5.66637,0.00,18.100,0,0.7400,6.2190,100.00,2.0048,24,666.0,-1.00,395.69,16.59,18.40 +9.96654,0.00,-1.000,0,0.7400,6.4850,100.00,1.9784,24,666.0,20.20,386.73,18.85,15.40 +-1.00000,0.00,18.100,0,0.7400,5.8540,96.60,-1.0000,24,666.0,20.20,240.52,23.79,10.80 +10.67180,0.00,18.100,0,0.7400,6.4590,94.80,1.9879,24,666.0,20.20,43.06,23.98,11.80 +-1.00000,0.00,-1.000,0,0.7400,6.3410,96.40,2.0720,24,666.0,-1.00,318.01,-1.00,14.90 +9.92485,-1.00,18.100,0,0.7400,6.2510,96.60,2.1980,24,666.0,20.20,388.52,16.44,12.60 +-1.00000,-1.00,-1.000,0,-1.0000,6.1850,98.70,2.2616,24,666.0,20.20,396.90,18.13,14.10 +7.52601,0.00,18.100,0,0.7130,6.4170,-1.00,2.1850,24,666.0,20.20,304.21,19.31,13.00 +6.71772,0.00,18.100,0,0.7130,6.7490,-1.00,2.3236,24,666.0,20.20,0.32,17.44,13.40 +5.44114,0.00,18.100,0,0.7130,6.6550,98.20,2.3552,24,666.0,20.20,355.29,17.73,15.20 +5.09017,0.00,18.100,0,0.7130,6.2970,91.80,2.3682,24,666.0,-1.00,385.09,17.27,16.10 +8.24809,0.00,-1.000,0,0.7130,7.3930,99.30,2.4527,24,666.0,20.20,375.87,-1.00,17.80 +9.51363,0.00,18.100,0,0.7130,6.7280,94.10,2.4961,24,666.0,20.20,-1.00,-1.00,14.90 +4.75237,0.00,18.100,0,0.7130,6.5250,86.50,2.4358,24,666.0,20.20,50.92,18.13,14.10 +4.66883,0.00,18.100,0,0.7130,5.9760,87.90,2.5806,24,666.0,20.20,10.48,-1.00,12.70 +8.20058,0.00,18.100,0,0.7130,5.9360,80.30,2.7792,24,666.0,20.20,3.50,16.94,13.50 +7.75223,-1.00,18.100,0,0.7130,6.3010,83.70,2.7831,24,666.0,20.20,272.21,16.23,14.90 +6.80117,0.00,18.100,0,-1.0000,6.0810,84.40,2.7175,24,666.0,20.20,396.90,-1.00,20.00 +4.81213,-1.00,18.100,0,-1.0000,6.7010,90.00,2.5975,24,666.0,20.20,255.23,16.42,16.40 +3.69311,0.00,18.100,0,0.7130,6.3760,88.40,2.5671,24,666.0,20.20,391.43,-1.00,17.70 +6.65492,0.00,18.100,0,0.7130,6.3170,83.00,-1.0000,24,666.0,20.20,396.90,13.99,19.50 +5.82115,0.00,18.100,0,-1.0000,6.5130,89.90,2.8016,24,666.0,20.20,-1.00,-1.00,20.20 +7.83932,0.00,18.100,0,0.6550,6.2090,65.40,2.9634,24,666.0,20.20,396.90,13.22,21.40 +3.16360,0.00,18.100,0,0.6550,5.7590,48.20,3.0665,24,666.0,20.20,334.40,14.13,19.90 +3.77498,0.00,18.100,0,0.6550,5.9520,84.70,-1.0000,24,666.0,20.20,22.01,-1.00,19.00 +4.42228,0.00,18.100,0,0.5840,6.0030,94.50,2.5403,24,666.0,20.20,331.29,21.32,19.10 +-1.00000,0.00,18.100,0,-1.0000,5.9260,71.00,-1.0000,24,666.0,20.20,368.74,18.13,19.10 +13.07510,-1.00,18.100,0,0.5800,5.7130,56.70,2.8237,24,666.0,20.20,-1.00,14.76,20.10 +4.34879,0.00,18.100,0,0.5800,-1.0000,84.00,-1.0000,24,666.0,-1.00,396.90,16.29,19.90 +4.03841,0.00,18.100,0,0.5320,6.2290,90.70,3.0993,24,666.0,20.20,395.33,12.87,19.60 +3.56868,0.00,18.100,0,0.5800,6.4370,-1.00,2.8965,24,666.0,20.20,-1.00,14.36,23.20 +4.64689,0.00,18.100,0,0.6140,6.9800,67.60,2.5329,24,666.0,-1.00,374.68,11.66,29.80 +8.05579,0.00,-1.000,0,0.5840,5.4270,-1.00,2.4298,24,666.0,-1.00,-1.00,18.14,13.80 +6.39312,0.00,18.100,0,0.5840,6.1620,97.40,2.2060,24,666.0,20.20,302.76,24.10,13.30 +-1.00000,0.00,18.100,0,0.6140,6.4840,93.60,2.3053,24,666.0,20.20,396.21,18.68,16.70 +15.02340,0.00,18.100,0,-1.0000,5.3040,97.30,2.1007,24,666.0,20.20,349.48,-1.00,12.00 +10.23300,0.00,18.100,0,0.6140,6.1850,96.70,2.1705,24,666.0,20.20,379.70,18.03,14.60 +14.33370,0.00,18.100,0,0.6140,-1.0000,88.00,1.9512,24,666.0,20.20,383.32,13.11,21.40 +5.82401,0.00,18.100,0,0.5320,6.2420,64.70,3.4242,24,666.0,20.20,396.90,-1.00,23.00 +5.70818,0.00,18.100,0,0.5320,-1.0000,74.90,3.3317,24,666.0,20.20,393.07,-1.00,23.70 +5.73116,-1.00,18.100,0,0.5320,7.0610,77.00,3.4106,24,666.0,20.20,-1.00,7.01,25.00 +2.81838,0.00,18.100,0,0.5320,5.7620,-1.00,4.0983,24,666.0,20.20,392.92,10.42,21.80 +2.37857,0.00,18.100,0,0.5830,5.8710,41.90,3.7240,24,666.0,20.20,370.73,13.34,20.60 +3.67367,-1.00,-1.000,0,0.5830,6.3120,51.90,3.9917,24,666.0,20.20,388.62,10.58,21.20 +5.69175,0.00,18.100,0,0.5830,6.1140,79.80,3.5459,24,666.0,20.20,392.68,-1.00,19.10 +4.83567,0.00,-1.000,0,0.5830,5.9050,53.20,3.1523,24,666.0,20.20,-1.00,11.45,20.60 +0.15086,-1.00,27.740,0,0.6090,-1.0000,92.70,1.8209,4,711.0,20.10,395.09,18.06,15.20 +0.18337,0.00,27.740,0,-1.0000,5.4140,98.30,1.7554,4,711.0,20.10,344.05,-1.00,7.00 +0.20746,0.00,27.740,0,0.6090,5.0930,98.00,1.8226,4,711.0,20.10,318.43,-1.00,8.10 +0.10574,0.00,-1.000,0,0.6090,5.9830,98.80,1.8681,4,711.0,-1.00,390.11,18.07,13.60 +0.11132,0.00,27.740,0,0.6090,5.9830,83.50,2.1099,4,711.0,20.10,396.90,13.35,20.10 +0.17331,0.00,9.690,0,0.5850,5.7070,-1.00,2.3817,6,391.0,19.20,-1.00,12.01,21.80 +0.27957,0.00,9.690,0,0.5850,5.9260,-1.00,2.3817,6,391.0,19.20,396.90,13.59,24.50 +0.17899,0.00,9.690,0,0.5850,5.6700,28.80,-1.0000,6,391.0,19.20,393.29,17.60,23.10 +0.28960,0.00,-1.000,0,0.5850,5.3900,72.90,2.7986,6,391.0,19.20,396.90,21.14,19.70 +0.26838,0.00,9.690,0,-1.0000,5.7940,70.60,2.8927,6,391.0,-1.00,396.90,-1.00,18.30 +0.23912,0.00,9.690,0,0.5850,6.0190,65.30,2.4091,6,391.0,19.20,396.90,12.92,21.20 +0.17783,0.00,-1.000,0,0.5850,5.5690,73.50,-1.0000,6,391.0,19.20,395.77,15.10,17.50 +0.22438,0.00,9.690,0,0.5850,6.0270,-1.00,2.4982,6,391.0,19.20,396.90,14.33,16.80 +0.06263,0.00,11.930,0,0.5730,6.5930,69.10,2.4786,1,273.0,21.00,391.99,9.67,22.40 +-1.00000,0.00,11.930,0,0.5730,6.1200,76.70,2.2875,1,273.0,21.00,396.90,9.08,20.60 +0.06076,-1.00,11.930,0,0.5730,6.9760,-1.00,2.1675,1,273.0,21.00,396.90,5.64,23.90 +-1.00000,0.00,-1.000,0,0.5730,6.7940,89.30,-1.0000,1,273.0,21.00,393.45,6.48,22.00 +0.04741,0.00,11.930,0,0.5730,6.0300,-1.00,2.5050,1,273.0,21.00,396.90,7.88,11.90 diff --git a/pmml-sparkml-xgboost/src/test/resources/csv/XGBoostAuto.csv b/pmml-sparkml-xgboost/src/test/resources/csv/XGBoostAuto.csv index f27b297d..d19571e3 100644 --- a/pmml-sparkml-xgboost/src/test/resources/csv/XGBoostAuto.csv +++ b/pmml-sparkml-xgboost/src/test/resources/csv/XGBoostAuto.csv @@ -1,393 +1,393 @@ mpg -17.9547119140625 -14.98225212097168 -17.874229431152344 -16.05534553527832 -17.01030921936035 -14.989361763000488 -14.028249740600586 -14.028249740600586 -13.962823867797852 -14.984649658203125 -15.054734230041504 -14.028059959411621 -15.017460823059082 -14.01112174987793 -23.9840145111084 -21.95335578918457 -18.021371841430664 -20.96065902709961 -27.002931594848633 -26.054927825927734 -25.021047592163086 -24.06078338623047 -24.992626190185547 -26.025896072387695 -21.008962631225586 -9.997323036193848 -10.008872985839844 -11.015613555908203 -8.984380722045898 -27.056272506713867 -27.954748153686523 -24.96381950378418 -19.021257400512695 -16.078384399414062 -17.08484649658203 -18.912633895874023 -17.95913314819336 -13.968527793884277 -14.018355369567871 -14.01003360748291 -14.137308120727539 -12.01109790802002 -13.006696701049805 -12.984774589538574 -18.012454986572266 -22.00473976135254 -18.97081184387207 -18.029924392700195 -23.07155418395996 -27.991361618041992 -30.00083351135254 -29.985614776611328 -31.031736373901367 -34.99025344848633 -26.967302322387695 -25.99979591369629 -24.09581184387207 -25.081615447998047 -22.980812072753906 -20.079912185668945 -20.90964126586914 -13.072281837463379 -13.903404235839844 -14.674936294555664 -14.035738945007324 -16.73120880126953 -11.068416595458984 -12.938884735107422 -12.115097999572754 -13.042213439941406 -18.994918823242188 -15.16059684753418 -13.030982971191406 -13.053902626037598 -14.0018310546875 -18.057857513427734 -22.017919540405273 -20.99936866760254 -26.011547088623047 -22.111373901367188 -27.87781524658203 -22.946643829345703 -27.923784255981445 -26.994346618652344 -13.034756660461426 -14.245750427246094 -13.122979164123535 -13.987466812133789 -14.803948402404785 -11.998187065124512 -13.040553092956543 -13.009435653686523 -13.90161418914795 -12.994155883789062 -12.036959648132324 -13.041589736938477 -18.094955444335938 -15.976966857910156 -18.028541564941406 -18.060487747192383 -22.844335556030273 -25.963294982910156 -11.062667846679688 -11.994573593139648 -12.990144729614258 -12.023824691772461 -18.061037063598633 -19.99533462524414 -20.974763870239258 -22.040897369384766 -18.021377563476562 -19.045522689819336 -21.010000228881836 -25.968326568603516 -14.736027717590332 -15.956558227539062 -28.989154815673828 -24.012826919555664 -20.10866928100586 -19.13268280029297 -15.064130783081055 -23.73645782470703 -19.99843406677246 -10.984281539916992 -19.972623825073242 -19.04267692565918 -15.221665382385254 -31.002145767211914 -25.890226364135742 -31.999685287475586 -25.00905990600586 -15.959807395935059 -15.944058418273926 -17.88108253479004 -15.87176513671875 -13.018777847290039 -14.012097358703613 -13.975884437561035 -14.042488098144531 -29.019609451293945 -25.996152877807617 -26.072175979614258 -31.01471710205078 -31.9634952545166 -27.956064224243164 -24.12297821044922 -25.952207565307617 -24.033451080322266 -25.945871353149414 -30.945850372314453 -19.150400161743164 -17.93834114074707 -14.969527244567871 -15.029412269592285 -15.92951488494873 -15.017592430114746 -15.94785213470459 -14.005542755126953 -17.002641677856445 -16.028074264526367 -15.130603790283203 -17.950410842895508 -20.864267349243164 -19.963138580322266 -13.088248252868652 -28.95410919189453 -23.201995849609375 -19.906211853027344 -22.87901496887207 -24.0435848236084 -24.985334396362305 -24.001264572143555 -18.12491798400879 -29.03867530822754 -18.975963592529297 -23.006916046142578 -22.929597854614258 -21.991987228393555 -24.972787857055664 -33.01707458496094 -27.878515243530273 -25.0015811920166 -25.045412063598633 -26.01278305053711 -27.04014015197754 -17.45207405090332 -16.072654724121094 -15.495006561279297 -14.53056526184082 -21.939823150634766 -21.7093505859375 -23.996686935424805 -22.45888328552246 -29.00743865966797 -24.49142837524414 -29.00704574584961 -32.97524642944336 -19.975603103637695 -18.045166015625 -18.400569915771484 -17.49878692626953 -29.519784927368164 -32.05506134033203 -27.974584579467773 -26.512861251831055 -19.992639541625977 -13.095468521118164 -19.030303955078125 -19.068851470947266 -16.522605895996094 -16.460437774658203 -13.00990104675293 -13.038945198059082 -13.02115535736084 -31.46634864807129 -30.02165412902832 -35.998512268066406 -25.539138793945312 -33.418556213378906 -17.337261199951172 -16.963695526123047 -15.715874671936035 -14.994597434997559 -17.75027847290039 -20.340742111206055 -19.13907241821289 -18.415355682373047 -15.960317611694336 -15.553961753845215 -15.517823219299316 -15.964746475219727 -29.033403396606445 -24.542043685913086 -26.049543380737305 -25.309160232543945 -30.545772552490234 -33.3505859375 -30.153392791748047 -30.353912353515625 -22.051654815673828 -21.602195739746094 -21.492877960205078 -43.09104537963867 -36.1077766418457 -32.813148498535156 -39.368404388427734 -36.044490814208984 -19.8494815826416 -19.378400802612305 -20.086559295654297 -19.207963943481445 -20.497560501098633 -20.25539779663086 -25.036237716674805 -20.441146850585938 -19.456655502319336 -20.60818099975586 -20.69122886657715 -18.614501953125 -18.15188980102539 -19.253084182739258 -17.704586029052734 -18.136838912963867 -17.50030517578125 -30.006633758544922 -27.452211380004883 -27.191925048828125 -30.81277084350586 -21.257139205932617 -23.222562789916992 -23.768041610717773 -23.919082641601562 -20.323200225830078 -17.012014389038086 -21.56425666809082 -16.193281173706055 -31.519685745239258 -29.516258239746094 -21.47020149230957 -19.81043243408203 -22.390066146850586 -20.210506439208984 -20.567039489746094 -17.112445831298828 -17.626487731933594 -16.52800750732422 -18.176292419433594 -16.832670211791992 -15.560725212097168 -19.240955352783203 -18.40038299560547 -31.916048049926758 -34.09700393676758 -35.68932342529297 -27.463134765625 -25.379989624023438 -22.93429946899414 -27.19786262512207 -23.891019821166992 -34.266754150390625 -34.4869384765625 -31.88836669921875 -37.242218017578125 -28.343292236328125 -28.799205780029297 -26.83524513244629 -33.31721115112305 -41.47745895385742 -38.11838150024414 -32.11091995239258 -37.23682403564453 -27.97895050048828 -26.306781768798828 -24.298839569091797 -19.121278762817383 -34.35224533081055 -29.7932186126709 -31.326942443847656 -36.96474075317383 -32.20539093017578 -46.48970031738281 -27.912939071655273 -40.82206726074219 -44.32359313964844 -43.40547561645508 -36.40262222290039 -30.005796432495117 -44.58656311035156 -33.88638687133789 -29.818222045898438 -32.69688034057617 -23.69649314880371 -34.99421310424805 -32.37437057495117 -27.239322662353516 -26.57320213317871 -25.788480758666992 -23.5076904296875 -29.97232437133789 -39.09056091308594 -38.95243453979492 -35.11305236816406 -32.30785369873047 -36.983489990234375 -37.691246032714844 -34.10184097290039 -34.691829681396484 -34.40517807006836 -29.901199340820312 -33.05743408203125 -33.6859245300293 -32.35283279418945 -32.79505920410156 -31.603784561157227 -28.121822357177734 -30.600372314453125 -25.383163452148438 -24.22500991821289 -22.437400817871094 -26.649396896362305 -20.24366569519043 -17.619869232177734 -28.016860961914062 -27.0731258392334 -33.83794021606445 -31.004045486450195 -29.07590675354004 -27.06491470336914 -24.134977340698242 -35.97543716430664 -36.985599517822266 -31.0578556060791 -38.039710998535156 -35.9327392578125 -35.95981979370117 -36.037960052490234 -34.089576721191406 -37.917137145996094 -32.06663513183594 -37.90876388549805 -24.962444305419922 -37.97502899169922 -26.063207626342773 -21.984464645385742 -31.952926635742188 -36.01007843017578 -26.969057083129883 -27.114667892456055 -43.96139907836914 -32.01848602294922 -28.000093460083008 -30.97418785095215 +17.954712 +14.982252 +17.87423 +16.055346 +17.01031 +14.989362 +14.02825 +14.02825 +13.962824 +14.98465 +15.054734 +14.02806 +15.017461 +14.011122 +23.984015 +21.953356 +18.021372 +20.960659 +27.002932 +26.054928 +25.021048 +24.060783 +24.992626 +26.025896 +21.008963 +9.997323 +10.008873 +11.015614 +8.984381 +27.056273 +27.954748 +24.96382 +19.021257 +16.078384 +17.084846 +18.912634 +17.959133 +13.968528 +14.018355 +14.010034 +14.137308 +12.011098 +13.006697 +12.984775 +18.012455 +22.00474 +18.970812 +18.029924 +23.071554 +27.991362 +30.000834 +29.985615 +31.031736 +34.990253 +26.967302 +25.999796 +24.095812 +25.081615 +22.980812 +20.079912 +20.909641 +13.072282 +13.903404 +14.674936 +14.035739 +16.731209 +11.068417 +12.938885 +12.115098 +13.042213 +18.994919 +15.160597 +13.030983 +13.053903 +14.001831 +18.057858 +22.01792 +20.999369 +26.011547 +22.111374 +27.877815 +22.946644 +27.923784 +26.994347 +13.034757 +14.24575 +13.122979 +13.987467 +14.803948 +11.998187 +13.040553 +13.009436 +13.901614 +12.994156 +12.03696 +13.04159 +18.094955 +15.976967 +18.028542 +18.060488 +22.844336 +25.963295 +11.062668 +11.994574 +12.990145 +12.023825 +18.061037 +19.995335 +20.974764 +22.040897 +18.021378 +19.045523 +21.01 +25.968327 +14.736028 +15.956558 +28.989155 +24.012827 +20.10867 +19.132683 +15.064131 +23.736458 +19.998434 +10.984282 +19.972624 +19.042677 +15.221665 +31.002146 +25.890226 +31.999685 +25.00906 +15.959807 +15.944058 +17.881083 +15.871765 +13.018778 +14.012097 +13.975884 +14.042488 +29.01961 +25.996153 +26.072176 +31.014717 +31.963495 +27.956064 +24.122978 +25.952208 +24.033451 +25.945871 +30.94585 +19.1504 +17.938341 +14.969527 +15.029412 +15.929515 +15.017592 +15.947852 +14.005543 +17.002642 +16.028074 +15.130604 +17.95041 +20.864267 +19.963139 +13.088248 +28.95411 +23.201996 +19.906212 +22.879015 +24.043585 +24.985334 +24.001265 +18.124918 +29.038675 +18.975964 +23.006916 +22.929598 +21.991987 +24.972788 +33.017075 +27.878515 +25.001581 +25.045412 +26.012783 +27.04014 +17.452074 +16.072655 +15.495007 +14.530565 +21.939823 +21.70935 +23.996687 +22.458883 +29.007439 +24.491428 +29.007046 +32.975246 +19.975603 +18.045166 +18.40057 +17.498787 +29.519785 +32.05506 +27.974585 +26.512861 +19.99264 +13.0954685 +19.030304 +19.068851 +16.522606 +16.460438 +13.009901 +13.038945 +13.021155 +31.466349 +30.021654 +35.998512 +25.539139 +33.418556 +17.337261 +16.963696 +15.715875 +14.994597 +17.750278 +20.340742 +19.139072 +18.415356 +15.960318 +15.553962 +15.517823 +15.964746 +29.033403 +24.542044 +26.049543 +25.30916 +30.545773 +33.350586 +30.153393 +30.353912 +22.051655 +21.602196 +21.492878 +43.091045 +36.107777 +32.81315 +39.368404 +36.04449 +19.849482 +19.3784 +20.08656 +19.207964 +20.49756 +20.255398 +25.036238 +20.441147 +19.456656 +20.608181 +20.691229 +18.614502 +18.15189 +19.253084 +17.704586 +18.136839 +17.500305 +30.006634 +27.452211 +27.191925 +30.81277 +21.25714 +23.222563 +23.768042 +23.919083 +20.3232 +17.012014 +21.564257 +16.193281 +31.519686 +29.516258 +21.470201 +19.810432 +22.390066 +20.210506 +20.56704 +17.112446 +17.626488 +16.528008 +18.176292 +16.83267 +15.560725 +19.240955 +18.400383 +31.916048 +34.097004 +35.689323 +27.463135 +25.37999 +22.9343 +27.197863 +23.89102 +34.266754 +34.48694 +31.888367 +37.242218 +28.343292 +28.799206 +26.835245 +33.31721 +41.47746 +38.11838 +32.11092 +37.236824 +27.97895 +26.306782 +24.29884 +19.121279 +34.352245 +29.793219 +31.326942 +36.96474 +32.20539 +46.4897 +27.91294 +40.822067 +44.323593 +43.405476 +36.402622 +30.005796 +44.586563 +33.886387 +29.818222 +32.69688 +23.696493 +34.994213 +32.37437 +27.239323 +26.573202 +25.78848 +23.50769 +29.972324 +39.09056 +38.952435 +35.113052 +32.307854 +36.98349 +37.691246 +34.10184 +34.69183 +34.405178 +29.9012 +33.057434 +33.685925 +32.352833 +32.79506 +31.603785 +28.121822 +30.600372 +25.383163 +24.22501 +22.4374 +26.649397 +20.243666 +17.61987 +28.016861 +27.073126 +33.83794 +31.004045 +29.075907 +27.064915 +24.134977 +35.975437 +36.9856 +31.057856 +38.03971 +35.93274 +35.95982 +36.03796 +34.089577 +37.917137 +32.066635 +37.908764 +24.962444 +37.97503 +26.063208 +21.984465 +31.952927 +36.01008 +26.969057 +27.114668 +43.9614 +32.018486 +28.000093 +30.974188 diff --git a/pmml-sparkml-xgboost/src/test/resources/csv/XGBoostHousing.csv b/pmml-sparkml-xgboost/src/test/resources/csv/XGBoostHousing.csv new file mode 100644 index 00000000..f15540f2 --- /dev/null +++ b/pmml-sparkml-xgboost/src/test/resources/csv/XGBoostHousing.csv @@ -0,0 +1,507 @@ +MEDV +24.006643 +21.60819 +34.687775 +33.424084 +36.196552 +28.674088 +22.883934 +27.080019 +16.503788 +18.922468 +15.012172 +18.909338 +21.69635 +20.389261 +18.219116 +19.889473 +23.10256 +17.516499 +20.190826 +18.19965 +13.598208 +19.581858 +15.191056 +14.509015 +15.617169 +13.898878 +16.5854 +14.789288 +18.413103 +20.977215 +12.700901 +14.512897 +13.196488 +13.112962 +13.505169 +18.923346 +20.007988 +21.002981 +24.67058 +30.805996 +34.896465 +26.611542 +25.27585 +24.696829 +21.246292 +19.294678 +19.994402 +16.607105 +14.397262 +19.387602 +19.694271 +20.52888 +24.986353 +23.369402 +18.9009 +35.402542 +24.700241 +31.612476 +23.309378 +19.628082 +18.692259 +16.000055 +22.253119 +24.987957 +32.991943 +23.510653 +19.402653 +22.015982 +17.412722 +20.882637 +24.205172 +21.69139 +22.810053 +23.404093 +24.084112 +21.40628 +20.03675 +20.798565 +21.18261 +20.316397 +27.975317 +23.900307 +24.773197 +22.883133 +23.901848 +26.59349 +22.47151 +22.209951 +23.621042 +28.702604 +22.588387 +22.024843 +22.91013 +24.998367 +20.58529 +28.395155 +21.42045 +38.648712 +43.81899 +33.181786 +27.47262 +26.517767 +18.595116 +19.320986 +20.139978 +19.489758 +19.486292 +20.375671 +19.788794 +19.391525 +21.67399 +22.780334 +18.80206 +18.679976 +18.533731 +18.325525 +21.205046 +19.189053 +20.375774 +19.293064 +22.002106 +20.309647 +20.500517 +17.301527 +18.79101 +21.395475 +15.713493 +16.193527 +18.002995 +14.333428 +19.202225 +19.614704 +22.968626 +18.403646 +15.592739 +18.102642 +17.404793 +17.103365 +13.307752 +17.791801 +13.995791 +14.381534 +13.400004 +15.592194 +11.798298 +13.800429 +15.608604 +14.595116 +17.797762 +15.395279 +21.496836 +19.600878 +15.299222 +19.385466 +17.026583 +15.605686 +13.125185 +41.30643 +24.289343 +23.30389 +26.99312 +49.999752 +49.99057 +49.99901 +22.669342 +24.97784 +49.996433 +23.774317 +23.841413 +22.30317 +17.398159 +19.124937 +23.091564 +23.628523 +22.569174 +29.38766 +23.210732 +24.595425 +29.889824 +37.200676 +39.80832 +36.16865 +37.88867 +32.49242 +26.399357 +29.601759 +50.001053 +31.96144 +29.793528 +34.958984 +36.993866 +30.49148 +36.385532 +31.109705 +29.0962 +49.99294 +33.29906 +30.298119 +34.598476 +34.90267 +32.890938 +24.101646 +42.292454 +48.506374 +49.998775 +22.607655 +24.407467 +22.529524 +24.381931 +19.996096 +21.721924 +19.300547 +22.385126 +28.091465 +23.69032 +24.974405 +23.320543 +28.686903 +21.49019 +22.990225 +26.720703 +21.691256 +27.49701 +30.045126 +44.807365 +50.000607 +37.617844 +31.60566 +46.690765 +31.504126 +24.274021 +31.700308 +41.699287 +48.29596 +29.015354 +23.990562 +25.088919 +31.510357 +23.690159 +23.319029 +22.017843 +20.092794 +22.187181 +23.700665 +17.600052 +18.509161 +24.294388 +20.49716 +24.473566 +26.188585 +24.397917 +24.806982 +29.604046 +42.79512 +21.901808 +20.898344 +44.000103 +50.00252 +35.98701 +30.124266 +33.774616 +43.09866 +48.803276 +31.00037 +36.496296 +22.802296 +30.695328 +50.01196 +43.492645 +20.739262 +21.06836 +25.213186 +24.403873 +35.206993 +32.40919 +31.988907 +33.19971 +33.117775 +29.08966 +35.09116 +45.399162 +35.382908 +46.005215 +50.00078 +32.197292 +22.002214 +20.100243 +23.213142 +22.299448 +24.79907 +28.508778 +37.281895 +27.903936 +23.884926 +21.71949 +28.615696 +27.087778 +20.30764 +22.493189 +29.025143 +24.779404 +22.012598 +26.366695 +33.09396 +36.100803 +28.40324 +33.40841 +28.194986 +22.791582 +20.296345 +16.112078 +22.105682 +19.432777 +21.610403 +23.791311 +16.219904 +17.770512 +19.796835 +23.104143 +21.009132 +23.810524 +23.115267 +20.457441 +18.493639 +24.939436 +24.607693 +23.040773 +22.176718 +19.30472 +22.592258 +19.804924 +17.104446 +19.392462 +22.20807 +20.699501 +21.10976 +19.479198 +18.512295 +20.6114 +19.00591 +18.69171 +32.69921 +16.510439 +23.91401 +31.202417 +17.513779 +17.198532 +23.098482 +24.504684 +26.595076 +22.906013 +24.089987 +18.613 +30.100668 +18.198023 +20.627338 +17.788591 +21.68188 +22.67354 +22.614298 +24.987791 +19.903652 +20.796589 +16.838428 +21.901308 +27.476568 +21.895844 +23.10483 +50.00526 +49.98352 +49.997913 +49.99766 +49.99793 +13.7919235 +13.79626 +15.004488 +13.901392 +13.304462 +13.083019 +10.201021 +10.403306 +10.889442 +11.341562 +12.304087 +8.81809 +7.2074304 +10.505337 +7.4141045 +10.200378 +11.466115 +15.091864 +23.169638 +9.711703 +13.779004 +12.742147 +13.110499 +12.535206 +8.512496 +4.9968176 +6.2973814 +5.595813 +7.224117 +12.096754 +8.276129 +8.495309 +5.002509 +11.916117 +27.90082 +17.20432 +27.48439 +15.010497 +17.205027 +17.87981 +16.301579 +7.0076904 +7.2057066 +7.5045614 +10.375721 +8.810743 +8.416784 +16.665318 +14.219722 +20.791197 +13.403507 +11.70249 +8.270879 +10.206113 +10.896637 +11.002292 +9.521012 +14.507567 +14.099058 +16.109982 +14.28328 +11.700568 +13.402165 +9.600381 +8.697777 +8.4211445 +12.759801 +10.498915 +17.102335 +18.377224 +15.405584 +10.808222 +11.801628 +14.8988 +12.596382 +14.093806 +13.032793 +13.393737 +15.210168 +16.098993 +17.7872 +14.910462 +14.075624 +12.725547 +13.504153 +14.892534 +20.000216 +16.415888 +17.715899 +19.519192 +20.182745 +21.403805 +19.906784 +18.991926 +19.050493 +19.066137 +20.104908 +19.889973 +19.6557 +23.16753 +29.821228 +13.813316 +13.286968 +16.707495 +12.00484 +14.622487 +21.398697 +22.954037 +23.699102 +25.009645 +21.77827 +20.611162 +21.204657 +19.128548 +20.598816 +15.210358 +7.0138793 +8.087217 +13.600941 +20.1058 +21.793217 +24.416395 +23.089499 +19.702065 +18.321836 +21.191286 +17.496708 +16.893936 +22.39663 +20.59646 +23.892504 +22.00784 +11.909191 diff --git a/pmml-sparkml-xgboost/src/test/resources/pipeline/XGBoostAuto.zip b/pmml-sparkml-xgboost/src/test/resources/pipeline/XGBoostAuto.zip index d450f519..aeb82d11 100644 Binary files a/pmml-sparkml-xgboost/src/test/resources/pipeline/XGBoostAuto.zip and b/pmml-sparkml-xgboost/src/test/resources/pipeline/XGBoostAuto.zip differ diff --git a/pmml-sparkml-xgboost/src/test/resources/pipeline/XGBoostHousing.zip b/pmml-sparkml-xgboost/src/test/resources/pipeline/XGBoostHousing.zip new file mode 100644 index 00000000..79aea2fc Binary files /dev/null and b/pmml-sparkml-xgboost/src/test/resources/pipeline/XGBoostHousing.zip differ diff --git a/pmml-sparkml-xgboost/src/test/resources/pipeline/XGBoostIris.zip b/pmml-sparkml-xgboost/src/test/resources/pipeline/XGBoostIris.zip index 1aff344a..8aa7a55e 100644 Binary files a/pmml-sparkml-xgboost/src/test/resources/pipeline/XGBoostIris.zip and b/pmml-sparkml-xgboost/src/test/resources/pipeline/XGBoostIris.zip differ diff --git a/pmml-sparkml-xgboost/src/test/resources/schema/Housing.json b/pmml-sparkml-xgboost/src/test/resources/schema/Housing.json new file mode 100644 index 00000000..44a2a773 --- /dev/null +++ b/pmml-sparkml-xgboost/src/test/resources/schema/Housing.json @@ -0,0 +1 @@ +{"type":"struct","fields":[{"name":"CRIM","type":"double","nullable":true,"metadata":{}},{"name":"ZN","type":"double","nullable":true,"metadata":{}},{"name":"INDUS","type":"double","nullable":true,"metadata":{}},{"name":"CHAS","type":"integer","nullable":true,"metadata":{}},{"name":"NOX","type":"double","nullable":true,"metadata":{}},{"name":"RM","type":"double","nullable":true,"metadata":{}},{"name":"AGE","type":"double","nullable":true,"metadata":{}},{"name":"DIS","type":"double","nullable":true,"metadata":{}},{"name":"RAD","type":"integer","nullable":true,"metadata":{}},{"name":"TAX","type":"double","nullable":true,"metadata":{}},{"name":"PTRATIO","type":"double","nullable":true,"metadata":{}},{"name":"B","type":"double","nullable":true,"metadata":{}},{"name":"LSTAT","type":"double","nullable":true,"metadata":{}},{"name":"MEDV","type":"double","nullable":true,"metadata":{}}]} \ No newline at end of file diff --git a/pmml-sparkml-xgboost/src/test/resources/schema/Iris.json b/pmml-sparkml-xgboost/src/test/resources/schema/Iris.json index c72cb846..bcb7f35c 100644 --- a/pmml-sparkml-xgboost/src/test/resources/schema/Iris.json +++ b/pmml-sparkml-xgboost/src/test/resources/schema/Iris.json @@ -1 +1 @@ -{"type":"struct","fields":[{"name":"Sepal_Length","type":"double","nullable":true,"metadata":{}},{"name":"Sepal_Width","type":"double","nullable":true,"metadata":{}},{"name":"Petal_Length","type":"double","nullable":true,"metadata":{}},{"name":"Petal_Width","type":"double","nullable":true,"metadata":{}},{"name":"Species","type":"string","nullable":true,"metadata":{}}]} \ No newline at end of file +{"type":"struct","fields":[{"name":"Species","type":"string","nullable":true,"metadata":{}},{"name":"Sepal_Length","type":"float","nullable":true,"metadata":{}},{"name":"Sepal_Width","type":"float","nullable":true,"metadata":{}},{"name":"Petal_Length","type":"float","nullable":true,"metadata":{}},{"name":"Petal_Width","type":"float","nullable":true,"metadata":{}}]} \ No newline at end of file diff --git a/pmml-sparkml/src/main/java/org/jpmml/sparkml/DatasetUtil.java b/pmml-sparkml/src/main/java/org/jpmml/sparkml/DatasetUtil.java index d9745844..c41db0e6 100644 --- a/pmml-sparkml/src/main/java/org/jpmml/sparkml/DatasetUtil.java +++ b/pmml-sparkml/src/main/java/org/jpmml/sparkml/DatasetUtil.java @@ -41,8 +41,11 @@ import org.apache.spark.sql.catalog.Catalog; import org.apache.spark.sql.catalyst.plans.logical.LogicalPlan; import org.apache.spark.sql.execution.QueryExecution; +import org.apache.spark.sql.types.AtomicType; import org.apache.spark.sql.types.BooleanType; import org.apache.spark.sql.types.DoubleType; +import org.apache.spark.sql.types.FloatType; +import org.apache.spark.sql.types.FractionalType; import org.apache.spark.sql.types.IntegralType; import org.apache.spark.sql.types.StringType; import org.apache.spark.sql.types.StructField; @@ -178,24 +181,57 @@ public LogicalPlan createAnalyzedLogicalPlan(SparkSession sparkSession, StructTy static public DataType translateDataType(org.apache.spark.sql.types.DataType sparkDataType){ - if(sparkDataType instanceof StringType){ + if(sparkDataType instanceof AtomicType){ + return translateAtomicType((AtomicType)sparkDataType); + } else + + { + throw new IllegalArgumentException("Expected atomic data type, got " + sparkDataType.typeName() + " data type"); + } + } + + static + public DataType translateAtomicType(org.apache.spark.sql.types.AtomicType atomicType){ + + if(atomicType instanceof StringType){ return DataType.STRING; } else - if(sparkDataType instanceof IntegralType){ - return DataType.INTEGER; + if(atomicType instanceof IntegralType){ + return translateIntegralType((IntegralType)atomicType); } else - if(sparkDataType instanceof DoubleType){ - return DataType.DOUBLE; + if(atomicType instanceof FractionalType){ + return translateFractionalType((FractionalType)atomicType); } else - if(sparkDataType instanceof BooleanType){ + if(atomicType instanceof BooleanType){ return DataType.BOOLEAN; } else { - throw new IllegalArgumentException("Expected string, integral, double or boolean data type, got " + sparkDataType.typeName() + " data type"); + throw new IllegalArgumentException("Expected string, integral, fractional or boolean data type, got " + atomicType.typeName() + " data type"); + } + } + + static + public DataType translateIntegralType(IntegralType integralType){ + return DataType.INTEGER; + } + + static + public DataType translateFractionalType(FractionalType fractionalType){ + + if(fractionalType instanceof FloatType){ + return DataType.FLOAT; + } else + + if(fractionalType instanceof DoubleType){ + return DataType.DOUBLE; + } else + + { + throw new IllegalArgumentException("Expected float or double data type, got " + fractionalType.typeName() + " data type"); } } diff --git a/pmml-sparkml/src/main/java/org/jpmml/sparkml/ExpressionTranslator.java b/pmml-sparkml/src/main/java/org/jpmml/sparkml/ExpressionTranslator.java index ed12e626..af69165f 100644 --- a/pmml-sparkml/src/main/java/org/jpmml/sparkml/ExpressionTranslator.java +++ b/pmml-sparkml/src/main/java/org/jpmml/sparkml/ExpressionTranslator.java @@ -21,6 +21,7 @@ import java.util.Iterator; import java.util.List; import java.util.Objects; +import java.util.function.Function; import org.apache.spark.sql.catalyst.expressions.Abs; import org.apache.spark.sql.catalyst.expressions.Acos; @@ -74,6 +75,7 @@ import org.apache.spark.sql.catalyst.expressions.Sin; import org.apache.spark.sql.catalyst.expressions.Sinh; import org.apache.spark.sql.catalyst.expressions.Sqrt; +import org.apache.spark.sql.catalyst.expressions.StringReplace; import org.apache.spark.sql.catalyst.expressions.StringTrim; import org.apache.spark.sql.catalyst.expressions.Substring; import org.apache.spark.sql.catalyst.expressions.Subtract; @@ -85,6 +87,7 @@ import org.apache.spark.sql.catalyst.expressions.Upper; import org.apache.spark.sql.types.Decimal; import org.dmg.pmml.Apply; +import org.dmg.pmml.Constant; import org.dmg.pmml.DataType; import org.dmg.pmml.DerivedField; import org.dmg.pmml.FieldRef; @@ -93,6 +96,7 @@ import org.dmg.pmml.PMMLFunctions; import org.jpmml.converter.FieldNameUtil; import org.jpmml.converter.PMMLUtil; +import org.jpmml.converter.TypeUtil; import org.jpmml.converter.ValueUtil; import org.jpmml.converter.visitors.ExpressionCompactor; import scala.Option; @@ -331,7 +335,7 @@ private org.dmg.pmml.Expression translateInternal(Expression expression){ name = FieldNameUtil.create(dataType, ExpressionUtil.format(child)); } - OpType opType = ExpressionUtil.getOpType(dataType); + OpType opType = TypeUtil.getOpType(dataType); pmmlExpression = AliasExpression.unwrap(pmmlExpression); @@ -469,6 +473,16 @@ private org.dmg.pmml.Expression translateInternal(Expression expression){ return PMMLUtil.createApply(PMMLFunctions.MATCHES, translateInternal(left), translateInternal(right)); } else + if(expression instanceof StringReplace){ + StringReplace stringReplace = (StringReplace)expression; + + Expression srcExpr = stringReplace.srcExpr(); + Expression searchExpr = stringReplace.searchExpr(); + Expression replaceExpr = stringReplace.replaceExpr(); + + return PMMLUtil.createApply(PMMLFunctions.REPLACE, translateInternal(srcExpr), transformString(translateInternal(searchExpr), ExpressionTranslator::escapeSearchString), transformString(translateInternal(replaceExpr), ExpressionTranslator::escapeReplacementString)); + } else + if(expression instanceof StringTrim){ StringTrim stringTrim = (StringTrim)expression; @@ -625,6 +639,46 @@ private org.dmg.pmml.Expression translateInternal(Expression expression){ } } + static + private String escapeSearchString(String string){ + return escape(string, "<([{\\^-=$!|]})?*+.>"); + } + + static + private String escapeReplacementString(String string){ + return escape(string, "\\$"); + } + + static + private String escape(String string, String specialCharacters){ + StringBuilder sb = new StringBuilder(); + + for(int i = 0; i < string.length(); i++){ + char c = string.charAt(i); + + if(specialCharacters.indexOf(c) > -1){ + sb.append('\\'); + } + + sb.append(c); + } + + return sb.toString(); + } + + static + private Constant transformString(org.dmg.pmml.Expression pmmlExpression, Function function){ + Constant constant = (Constant)pmmlExpression; + + if(constant.getDataType() != DataType.STRING){ + throw new IllegalArgumentException(); + } + + constant.setValue(function.apply((String)constant.getValue())); + + return constant; + } + static private Object toSimpleObject(Object value){ Class clazz = value.getClass(); diff --git a/pmml-sparkml/src/main/java/org/jpmml/sparkml/ExpressionUtil.java b/pmml-sparkml/src/main/java/org/jpmml/sparkml/ExpressionUtil.java index 0b200b88..163671e2 100644 --- a/pmml-sparkml/src/main/java/org/jpmml/sparkml/ExpressionUtil.java +++ b/pmml-sparkml/src/main/java/org/jpmml/sparkml/ExpressionUtil.java @@ -19,30 +19,12 @@ package org.jpmml.sparkml; import org.apache.spark.sql.catalyst.expressions.Expression; -import org.dmg.pmml.DataType; -import org.dmg.pmml.OpType; public class ExpressionUtil { private ExpressionUtil(){ } - static - public OpType getOpType(DataType dataType){ - - switch(dataType){ - case STRING: - return OpType.CATEGORICAL; - case INTEGER: - case DOUBLE: - return OpType.CONTINUOUS; - case BOOLEAN: - return OpType.CATEGORICAL; - default: - throw new IllegalArgumentException("Data type " + dataType + " is not supported"); - } - } - static public String format(Expression expression){ return String.valueOf(expression); diff --git a/pmml-sparkml/src/main/java/org/jpmml/sparkml/PMMLBuilder.java b/pmml-sparkml/src/main/java/org/jpmml/sparkml/PMMLBuilder.java index 5eeeb4da..ffffb8c6 100644 --- a/pmml-sparkml/src/main/java/org/jpmml/sparkml/PMMLBuilder.java +++ b/pmml-sparkml/src/main/java/org/jpmml/sparkml/PMMLBuilder.java @@ -31,6 +31,7 @@ import java.util.ListIterator; import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.function.Function; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -48,6 +49,7 @@ import org.apache.spark.ml.tuning.TrainValidationSplitModel; import org.apache.spark.sql.Dataset; import org.apache.spark.sql.Row; +import org.apache.spark.sql.types.StructField; import org.apache.spark.sql.types.StructType; import org.dmg.pmml.DerivedField; import org.dmg.pmml.MiningField; @@ -308,6 +310,23 @@ public File buildFile(File file) throws IOException { return file; } + public PMMLBuilder extendSchema(Set names){ + StructType schema = getSchema(); + PipelineModel pipelineModel = getPipelineModel(); + + StructType transformedSchema = pipelineModel.transformSchema(schema); + + for(String name : names){ + StructField field = transformedSchema.apply(name); + + schema = schema.add(field); + } + + setSchema(schema); + + return this; + } + public PMMLBuilder putOption(String key, Object value){ return putOptions(Collections.singletonMap(key, value)); } diff --git a/pmml-sparkml/src/main/java/org/jpmml/sparkml/PredictionModelConverter.java b/pmml-sparkml/src/main/java/org/jpmml/sparkml/PredictionModelConverter.java index dc09d953..c8b4f3e1 100644 --- a/pmml-sparkml/src/main/java/org/jpmml/sparkml/PredictionModelConverter.java +++ b/pmml-sparkml/src/main/java/org/jpmml/sparkml/PredictionModelConverter.java @@ -39,9 +39,10 @@ import org.jpmml.converter.Label; import org.jpmml.converter.LabelUtil; import org.jpmml.converter.SchemaUtil; +import org.jpmml.sparkml.model.HasPredictionModelOptions; abstract -public class PredictionModelConverter & HasLabelCol & HasFeaturesCol & HasPredictionCol> extends ModelConverter { +public class PredictionModelConverter & HasLabelCol & HasFeaturesCol & HasPredictionCol> extends ModelConverter implements HasPredictionModelOptions { public PredictionModelConverter(T model){ super(model); diff --git a/pmml-sparkml/src/main/java/org/jpmml/sparkml/SparkMLEncoder.java b/pmml-sparkml/src/main/java/org/jpmml/sparkml/SparkMLEncoder.java index fb9dc9dd..494eaa0f 100644 --- a/pmml-sparkml/src/main/java/org/jpmml/sparkml/SparkMLEncoder.java +++ b/pmml-sparkml/src/main/java/org/jpmml/sparkml/SparkMLEncoder.java @@ -26,14 +26,11 @@ import java.util.Objects; import com.google.common.collect.Iterables; -import org.apache.spark.sql.types.BooleanType; -import org.apache.spark.sql.types.DoubleType; -import org.apache.spark.sql.types.IntegralType; -import org.apache.spark.sql.types.StringType; import org.apache.spark.sql.types.StructField; import org.apache.spark.sql.types.StructType; import org.dmg.pmml.DataField; import org.dmg.pmml.DataType; +import org.dmg.pmml.Field; import org.dmg.pmml.Model; import org.dmg.pmml.OpType; import org.dmg.pmml.PMML; @@ -45,7 +42,8 @@ import org.jpmml.converter.Feature; import org.jpmml.converter.ModelEncoder; import org.jpmml.converter.SchemaUtil; -import org.jpmml.converter.WildcardFeature; +import org.jpmml.converter.StringFeature; +import org.jpmml.converter.TypeUtil; import org.jpmml.model.visitors.AbstractVisitor; public class SparkMLEncoder extends ModelEncoder { @@ -101,23 +99,7 @@ public List getFeatures(String column){ dataField = createDataField(name); } - Feature feature; - - DataType dataType = dataField.requireDataType(); - switch(dataType){ - case STRING: - feature = new WildcardFeature(this, dataField); - break; - case INTEGER: - case DOUBLE: - feature = new ContinuousFeature(this, dataField); - break; - case BOOLEAN: - feature = new BooleanFeature(this, dataField); - break; - default: - throw new IllegalArgumentException("Data type " + dataType + " is not supported"); - } + Feature feature = createFeature(dataField); return Collections.singletonList(feature); } @@ -169,26 +151,28 @@ public DataField createDataField(String name){ StructField field = schema.apply(name); - org.apache.spark.sql.types.DataType sparkDataType = field.dataType(); - - if(sparkDataType instanceof StringType){ - return createDataField(name, OpType.CATEGORICAL, DataType.STRING); - } else + DataType dataType = DatasetUtil.translateDataType(field.dataType()); - if(sparkDataType instanceof IntegralType){ - return createDataField(name, OpType.CONTINUOUS, DataType.INTEGER); - } else + OpType opType = TypeUtil.getOpType(dataType); - if(sparkDataType instanceof DoubleType){ - return createDataField(name, OpType.CONTINUOUS, DataType.DOUBLE); - } else - - if(sparkDataType instanceof BooleanType){ - return createDataField(name, OpType.CATEGORICAL, DataType.BOOLEAN); - } else + return createDataField(name, opType, dataType); + } - { - throw new IllegalArgumentException("Expected string, integral, double or boolean data type, got " + sparkDataType.typeName() + " data type"); + public Feature createFeature(Field field){ + DataType dataType = field.requireDataType(); + OpType opType = field.requireOpType(); + + switch(dataType){ + case STRING: + return new StringFeature(this, field); + case INTEGER: + case FLOAT: + case DOUBLE: + return new ContinuousFeature(this, field); + case BOOLEAN: + return new BooleanFeature(this, field); + default: + throw new IllegalArgumentException("Data type " + dataType + " is not supported"); } } diff --git a/pmml-sparkml/src/main/java/org/jpmml/sparkml/feature/OneHotEncoderModelConverter.java b/pmml-sparkml/src/main/java/org/jpmml/sparkml/feature/OneHotEncoderModelConverter.java index 5a56981b..3ae9afd5 100644 --- a/pmml-sparkml/src/main/java/org/jpmml/sparkml/feature/OneHotEncoderModelConverter.java +++ b/pmml-sparkml/src/main/java/org/jpmml/sparkml/feature/OneHotEncoderModelConverter.java @@ -27,6 +27,7 @@ import org.jpmml.converter.CategoricalFeature; import org.jpmml.converter.Feature; import org.jpmml.converter.PMMLEncoder; +import org.jpmml.converter.SchemaUtil; import org.jpmml.sparkml.BinarizedCategoricalFeature; import org.jpmml.sparkml.MultiFeatureConverter; import org.jpmml.sparkml.SparkMLEncoder; @@ -80,9 +81,7 @@ public void registerFeatures(SparkMLEncoder encoder){ if(outputMode == InOutMode.MULTIPLE){ String[] outputCols = transformer.getOutputCols(); - if(outputCols.length != features.size()){ - throw new IllegalArgumentException("Expected " + outputCols.length + " features, got " + features.size() + " features"); - } + SchemaUtil.checkSize(outputCols.length, features); for(int i = 0; i < outputCols.length; i++){ String outputCol = outputCols[i]; diff --git a/pmml-sparkml/src/main/java/org/jpmml/sparkml/feature/SQLTransformerConverter.java b/pmml-sparkml/src/main/java/org/jpmml/sparkml/feature/SQLTransformerConverter.java index b5400390..42d17ec2 100644 --- a/pmml-sparkml/src/main/java/org/jpmml/sparkml/feature/SQLTransformerConverter.java +++ b/pmml-sparkml/src/main/java/org/jpmml/sparkml/feature/SQLTransformerConverter.java @@ -33,11 +33,9 @@ import org.dmg.pmml.OpType; import org.dmg.pmml.Visitor; import org.dmg.pmml.VisitorAction; -import org.jpmml.converter.BooleanFeature; -import org.jpmml.converter.ContinuousFeature; import org.jpmml.converter.Feature; import org.jpmml.converter.FieldNameUtil; -import org.jpmml.converter.StringFeature; +import org.jpmml.converter.TypeUtil; import org.jpmml.model.visitors.AbstractVisitor; import org.jpmml.sparkml.AliasExpression; import org.jpmml.sparkml.DatasetUtil; @@ -68,32 +66,32 @@ public List encodeFeatures(SparkMLEncoder encoder){ List result = new ArrayList<>(); - List> fields = encodeLogicalPlan(encoder, logicalPlan); - for(Field field : fields){ - String name = field.requireName(); - DataType dataType = field.requireDataType(); - OpType opType = field.requireOpType(); - - Feature feature; - - switch(dataType){ - case STRING: - feature = new StringFeature(encoder, field); - break; - case INTEGER: - case DOUBLE: - feature = new ContinuousFeature(encoder, field); - break; - case BOOLEAN: - feature = new BooleanFeature(encoder, field); - break; - default: - throw new IllegalArgumentException("Data type " + dataType + " is not supported"); - } + List objects = encodeLogicalPlan(encoder, logicalPlan); + for(Object object : objects){ + + if(object instanceof List){ + List features = (List)object; + + features.stream() + .map(Feature.class::cast) + .forEach(result::add); + } else + + if(object instanceof Field){ + Field field = (Field)object; + + String name = field.requireName(); + + Feature feature = encoder.createFeature(field); + + encoder.putOnlyFeature(name, feature); - encoder.putOnlyFeature(name, feature); + result.add(feature); + } else - result.add(feature); + { + throw new IllegalArgumentException(); + } } return result; @@ -105,8 +103,8 @@ public void registerFeatures(SparkMLEncoder encoder){ } static - public List> encodeLogicalPlan(SparkMLEncoder encoder, LogicalPlan logicalPlan){ - List> result = new ArrayList<>(); + public List encodeLogicalPlan(SparkMLEncoder encoder, LogicalPlan logicalPlan){ + List result = new ArrayList<>(); List children = JavaConversions.seqAsJavaList(logicalPlan.children()); for(LogicalPlan child : children){ @@ -120,6 +118,14 @@ public List> encodeLogicalPlan(SparkMLEncoder encoder, LogicalPlan logi if(pmmlExpression instanceof FieldRef){ FieldRef fieldRef = (FieldRef)pmmlExpression; + if(encoder.hasFeatures(fieldRef.requireField())){ + List features = encoder.getFeatures(fieldRef.requireField()); + + result.add(features); + + continue; + } + Field field = ensureField(encoder, fieldRef.requireField()); if(field != null){ result.add(field); @@ -142,7 +148,7 @@ public List> encodeLogicalPlan(SparkMLEncoder encoder, LogicalPlan logi DataType dataType = DatasetUtil.translateDataType(expression.dataType()); - OpType opType = ExpressionUtil.getOpType(dataType); + OpType opType = TypeUtil.getOpType(dataType); pmmlExpression = AliasExpression.unwrap(pmmlExpression); diff --git a/pmml-sparkml/src/main/java/org/jpmml/sparkml/testing/SparkMLEncoderBatch.java b/pmml-sparkml/src/main/java/org/jpmml/sparkml/testing/SparkMLEncoderBatch.java index 9c25eb2d..c4c50777 100644 --- a/pmml-sparkml/src/main/java/org/jpmml/sparkml/testing/SparkMLEncoderBatch.java +++ b/pmml-sparkml/src/main/java/org/jpmml/sparkml/testing/SparkMLEncoderBatch.java @@ -114,6 +114,8 @@ public PMML getPMML() throws Exception { pipelineModel = PipelineModelUtil.load(sparkSession, tmpPipelineDir); } + schema = updateSchema(schema, pipelineModel); + Dataset inputDataset; try(InputStream is = open(getInputCsvPath())){ @@ -124,7 +126,6 @@ public PMML getPMML() throws Exception { inputDataset = DatasetUtil.loadCsv(sparkSession, tmpCsvFile); } - inputDataset = DatasetUtil.castColumns(inputDataset, schema); Map options = getOptions(); @@ -160,6 +161,10 @@ public PMML getPMML() throws Exception { return pmml; } + protected StructType updateSchema(StructType schema, PipelineModel pipelineModel){ + return schema; + } + static private File toTmpFile(InputStream is, String prefix, String suffix) throws IOException { File tmpFile = File.createTempFile(prefix, suffix); diff --git a/pmml-sparkml/src/test/java/org/jpmml/sparkml/ExpressionTranslatorTest.java b/pmml-sparkml/src/test/java/org/jpmml/sparkml/ExpressionTranslatorTest.java index 9852d27f..25116a21 100644 --- a/pmml-sparkml/src/test/java/org/jpmml/sparkml/ExpressionTranslatorTest.java +++ b/pmml-sparkml/src/test/java/org/jpmml/sparkml/ExpressionTranslatorTest.java @@ -252,6 +252,12 @@ public void evaluateStringExpression(){ checkValue("SPARKSQL", "ucase(\"SparkSql\")"); checkValue("SPARKSQL", "upper(\"SparkSql\")"); + + checkValue("ABCDEF", "replace(\"ABCabc\", \"abc\", \"DEF\")"); + checkValue("ABCabc", "replace(\"ABCabc\", \"def\", \"DEF\")"); + checkValue("ABC", "replace(\"ABCabc\", \"abc\", \"\")"); + + checkValue("ABC$abc", "replace(\"ABC.abc\", \".\", \"$\")"); } @Test diff --git a/pmml-sparkml/src/test/java/org/jpmml/sparkml/feature/SQLTransformerConverterTest.java b/pmml-sparkml/src/test/java/org/jpmml/sparkml/feature/SQLTransformerConverterTest.java index 114c09b4..5373e918 100644 --- a/pmml-sparkml/src/test/java/org/jpmml/sparkml/feature/SQLTransformerConverterTest.java +++ b/pmml-sparkml/src/test/java/org/jpmml/sparkml/feature/SQLTransformerConverterTest.java @@ -30,7 +30,6 @@ import org.apache.spark.sql.types.StructType; import org.dmg.pmml.DataField; import org.dmg.pmml.DerivedField; -import org.dmg.pmml.Field; import org.jpmml.sparkml.ConverterFactory; import org.jpmml.sparkml.DatasetUtil; import org.jpmml.sparkml.SparkMLEncoder; @@ -76,7 +75,7 @@ private void checkFields(String sqlStatement, Collection dataFieldNames, LogicalPlan logicalPlan = DatasetUtil.createAnalyzedLogicalPlan(SQLTransformerConverterTest.sparkSession, SQLTransformerConverterTest.schema, sqlStatement); - List> fields = SQLTransformerConverter.encodeLogicalPlan(encoder, logicalPlan); + SQLTransformerConverter.encodeLogicalPlan(encoder, logicalPlan); Collection dataFields = (encoder.getDataFields()).values(); for(DataField dataField : dataFields){ diff --git a/pmml-sparkml/src/test/java/org/jpmml/sparkml/testing/ClassificationTest.java b/pmml-sparkml/src/test/java/org/jpmml/sparkml/testing/ClassificationTest.java index 21953695..80df823f 100644 --- a/pmml-sparkml/src/test/java/org/jpmml/sparkml/testing/ClassificationTest.java +++ b/pmml-sparkml/src/test/java/org/jpmml/sparkml/testing/ClassificationTest.java @@ -22,6 +22,8 @@ import java.util.function.Predicate; import com.google.common.base.Equivalence; +import org.apache.spark.ml.PipelineModel; +import org.apache.spark.sql.types.StructType; import org.dmg.pmml.general_regression.GeneralRegressionModel; import org.jpmml.converter.testing.Datasets; import org.jpmml.converter.testing.Fields; @@ -61,6 +63,22 @@ public Map getOptions(){ return options; } + + @Override + protected StructType updateSchema(StructType schema, PipelineModel pipelineModel){ + String algorithm = getAlgorithm(); + String dataset = getDataset(); + + if((MODEL_CHAIN).equals(algorithm) && (AUDIT).equals(dataset)){ + StructType transformedSchema = pipelineModel.transformSchema(schema); + + return schema + .add(transformedSchema.apply("genderPrediction")) + .add(transformedSchema.apply("genderProbability")); + } + + return super.updateSchema(schema, pipelineModel); + } }; return result; @@ -88,7 +106,7 @@ public void evaluateLogisticRegressionAudit() throws Exception { @Test public void evaluateModelChainAudit() throws Exception { - evaluate(MODEL_CHAIN, AUDIT, new PMMLEquivalence(1e-9, 1e-9)); + evaluate(MODEL_CHAIN, AUDIT, new PMMLEquivalence(3e-9, 3e-9)); } @Test diff --git a/pmml-sparkml/src/test/resources/csv/ModelChainAudit.csv b/pmml-sparkml/src/test/resources/csv/ModelChainAudit.csv index 4a302499..ac26a43a 100644 --- a/pmml-sparkml/src/test/resources/csv/ModelChainAudit.csv +++ b/pmml-sparkml/src/test/resources/csv/ModelChainAudit.csv @@ -1,1900 +1,1900 @@ Adjusted,probability(0),probability(1) -0,0.9344254456262523,0.0655745543737477 -0,0.9336909199603032,0.06630908003969682 -0,0.9733941490810277,0.026605850918972274 -1,0.32287938510731146,0.6771206148926885 -0,0.5225579306477305,0.4774420693522695 -0,0.5296493206468771,0.4703506793531229 -1,0.3337260440268404,0.6662739559731596 -0,0.8415958618299457,0.15840413817005428 -0,0.9172632741232813,0.08273672587671865 -0,0.9857617269205927,0.014238273079407282 -0,0.9444523028443487,0.05554769715565133 -0,0.9484792952750468,0.05152070472495318 -0,0.97613838560401,0.023861614395989994 -0,0.97613838560401,0.023861614395989994 -1,0.19775180294456252,0.8022481970554375 -0,0.974781890496186,0.02521810950381398 -0,0.9837102321715399,0.016289767828460144 -0,0.7598264608629761,0.24017353913702388 -1,0.42890560107478665,0.5710943989252133 -0,0.7062695270340532,0.2937304729659468 -0,0.9571371085716277,0.042862891428372296 -0,0.8645601288041969,0.13543987119580314 -0,0.9794222419788882,0.020577758021111836 -0,0.7318753201319532,0.2681246798680468 -0,0.9846343816827157,0.015365618317284335 -0,0.968347073008184,0.03165292699181599 -0,0.915951458102578,0.08404854189742195 -0,0.8062313574884334,0.19376864251156656 -0,0.5780155324255205,0.4219844675744795 -0,0.7857169103352979,0.2142830896647021 -0,0.8862819877558581,0.11371801224414191 -1,0.3343898394105634,0.6656101605894367 -0,0.9697995156123542,0.030200484387645776 -0,0.9668437629289193,0.03315623707108073 -0,0.9702098501931905,0.029790149806809496 -0,0.9842112873813965,0.015788712618603484 -0,0.7171845034509557,0.28281549654904425 -0,0.9071136130918039,0.09288638690819606 -0,0.6275852480069407,0.3724147519930593 -0,0.9006531653424745,0.09934683465752547 -1,0.10943991265438967,0.8905600873456103 -0,0.5112359734364791,0.4887640265635209 -0,0.6693328197246251,0.3306671802753749 -0,0.9960869854659883,0.003913014534011716 -0,0.8925241304919938,0.10747586950800625 -1,0.19202325250668342,0.8079767474933166 -0,0.9367902811256187,0.06320971887438132 -1,0.35594673424773043,0.6440532657522695 -0,0.9939063519834724,0.006093648016527564 -0,0.6332460323842942,0.3667539676157058 -0,0.966193159245499,0.03380684075450102 -1,0.15733306075791917,0.8426669392420808 -0,0.5737503904614545,0.4262496095385455 -0,0.9775484323404552,0.022451567659544813 -0,0.7598264608629761,0.24017353913702388 -0,0.9140385507071764,0.08596144929282357 -0,0.7898287730798366,0.21017122692016343 -0,0.9730246778230287,0.026975322176971295 -0,0.9870557969324706,0.012944203067529414 -0,0.727827265861008,0.272172734138992 -0,0.7798446040817404,0.2201553959182596 -0,0.9999981191959761,1.8808040238571522e-06 -0,0.9435867321847488,0.056413267815251245 -0,0.7270215042603512,0.27297849573964883 -0,0.7653100142359597,0.23468998576404032 -0,0.9784071147271822,0.021592885272817774 -1,0.31725797577805626,0.6827420242219437 -0,0.7815468516467412,0.2184531483532588 -0,0.9980161624851367,0.001983837514863307 -0,0.9756503494217681,0.024349650578231907 -0,0.6244333676733499,0.3755666323266501 -0,0.7420747645931464,0.25792523540685364 -0,0.9912388613369719,0.008761138663028079 -0,0.5901745491216535,0.40982545087834654 -1,0.3282798104785698,0.6717201895214302 -0,0.9749654022297282,0.025034597770271838 -0,0.9830353346857819,0.01696466531421814 -1,0.20381055516071273,0.7961894448392872 -0,0.9794822933548719,0.020517706645128087 -0,0.9753794812927021,0.024620518707297867 -0,0.934924501738447,0.06507549826155301 -0,0.7141022683157446,0.28589773168425536 -0,0.9730999350064664,0.02690006499353359 -1,0.3282798104785698,0.6717201895214302 -0,0.9219537637142956,0.0780462362857044 -0,0.9120862850977103,0.08791371490228972 -0,0.9925716215901326,0.007428378409867431 -0,0.7513770922605694,0.24862290773943063 -0,0.9654793597925255,0.03452064020747447 -0,0.6446619501087479,0.35533804989125206 -1,0.12270600701214303,0.8772939929878569 -0,0.5531158847107808,0.44688411528921923 -0,0.9860311943360254,0.013968805663974626 -1,0.14114135683431936,0.8588586431656806 -0,0.6566490221877405,0.34335097781225954 -0,0.6883500314088098,0.3116499685911902 -0,0.7062695270340532,0.2937304729659468 -0,0.6701840444047491,0.3298159555952509 -0,0.6238771009532826,0.37612289904671736 -0,0.6003030860974353,0.3996969139025647 -0,0.5970475562323969,0.4029524437676031 -0,0.7553094687058718,0.2446905312941282 -1,0.35594673424773043,0.6440532657522695 -0,0.9431793517826988,0.05682064821730115 -0,0.6244333676733499,0.3755666323266501 -0,0.973761294276794,0.02623870572320597 -0,0.9935722735596163,0.0064277264403836964 -0,0.5041268797100854,0.4958731202899146 -0,0.9107825251845326,0.08921747481546738 -0,0.6480861910335591,0.35191380896644087 -0,0.9462501790687399,0.05374982093126013 -0,0.9481986713206874,0.05180132867931264 -1,0.3490088571579282,0.6509911428420718 -0,0.9817599530180546,0.018240046981945368 -0,0.977138951123159,0.02286104887684104 -0,0.6915547024595058,0.3084452975404942 -0,0.8912079106522068,0.10879208934779316 -0,0.9830353346857819,0.01696466531421814 -1,0.44309297990154295,0.556907020098457 -0,0.6959624004268675,0.3040375995731325 -0,0.9849775957264689,0.015022404273531076 -0,0.9808713822066019,0.01912861779339814 -0,0.5721149704654837,0.42788502953451635 -0,0.9925191575209389,0.007480842479061112 -1,0.35763594075739785,0.6423640592426021 -0,0.992329833851183,0.0076701661488169925 -0,0.9812543925796274,0.018745607420372568 -1,0.418971033490155,0.5810289665098449 -0,0.7415799594530327,0.2584200405469673 -0,0.9035321726129015,0.09646782738709847 -0,0.9691785852488333,0.03082141475116673 -0,0.8205960121618256,0.17940398783817435 -1,0.37880577897249973,0.6211942210275003 -0,0.6903154325954225,0.3096845674045775 -1,0.41493092896750516,0.5850690710324948 -0,0.985412365797065,0.014587634202934963 -0,0.9705116015327665,0.0294883984672335 -0,0.997584396121752,0.0024156038782480183 -0,0.9524359312732382,0.04756406872676178 -0,0.963801833181699,0.036198166818301014 -0,0.7815468516467412,0.2184531483532588 -0,0.9864134408948032,0.013586559105196794 -0,0.7686881227505075,0.23131187724949254 -0,0.9214601927205099,0.07853980727949006 -0,0.7686881227505075,0.23131187724949254 -0,0.9505622022385427,0.04943779776145729 -1,0.3904478512502522,0.6095521487497477 -0,0.7773186407578012,0.22268135924219878 -0,0.9967384658310037,0.0032615341689963273 -1,0.35594673424773043,0.6440532657522695 -0,0.7920286440981337,0.20797135590186633 -1,0.3447515600509494,0.6552484399490506 -0,0.8513359921689423,0.1486640078310577 -0,0.9609570045283312,0.039042995471668784 -0,0.9710995819336341,0.028900418066365896 -1,0.3392170031320995,0.6607829968679004 -0,0.7404162975905035,0.25958370240949646 -0,0.6230978854086078,0.3769021145913922 -1,0.4658649408110479,0.5341350591889521 -0,0.7656058775089717,0.2343941224910283 -0,0.7686881227505075,0.23131187724949254 -0,0.7507353934598829,0.24926460654011706 -0,0.6915547024595058,0.3084452975404942 -0,0.6885100773020764,0.31148992269792364 -0,0.9772576914387597,0.022742308561240265 -1,0.25337928973621515,0.7466207102637848 +0,0.9344254458873551,0.0655745541126449 +0,0.9336909202582748,0.06630907974172517 +0,0.9733941492363053,0.026605850763694705 +1,0.3228793806571786,0.6771206193428214 +0,0.5225579301788705,0.47744206982112947 +0,0.5296493208775986,0.47035067912240136 +1,0.3337260394781259,0.6662739605218742 +0,0.8415958663732009,0.15840413362679906 +0,0.9172632742140893,0.08273672578591074 +0,0.985761726901135,0.01423827309886505 +0,0.944452303092299,0.055547696907701005 +0,0.9484792965626608,0.051520703437339166 +0,0.9761383855869508,0.023861614413049237 +0,0.9761383855869508,0.023861614413049237 +1,0.19775180418635113,0.8022481958136489 +0,0.9747818905811904,0.025218109418809642 +0,0.9837102323725282,0.016289767627471807 +0,0.7598264606395778,0.24017353936042218 +1,0.4289056001833648,0.5710943998166351 +0,0.7062695263043187,0.2937304736956813 +0,0.9571371088744242,0.04286289112557584 +0,0.8645601293661787,0.13543987063382135 +0,0.9794222420155089,0.02057775798449113 +0,0.7318753199520099,0.26812468004799006 +0,0.9846343819901067,0.015365618009893334 +0,0.9683470734890368,0.031652926510963186 +0,0.9159514567026965,0.08404854329730349 +0,0.8062313587724074,0.19376864122759263 +0,0.5780155337138472,0.4219844662861528 +0,0.7857169100774702,0.21428308992252976 +0,0.8862819883147728,0.11371801168522722 +1,0.3343898365537796,0.6656101634462204 +0,0.9697995156895638,0.030200484310436204 +0,0.9668437628503476,0.033156237149652434 +0,0.9702098510113181,0.02979014898868193 +0,0.9842112876545239,0.015788712345476075 +0,0.7171845049956456,0.28281549500435443 +0,0.9071136137972889,0.09288638620271106 +0,0.6275852464397581,0.3724147535602419 +0,0.9006531658446666,0.09934683415533341 +1,0.1094399122195893,0.8905600877804107 +0,0.5112359737062762,0.48876402629372384 +0,0.669332819025409,0.330667180974591 +0,0.9960869850821678,0.003913014917832247 +0,0.8925241305515248,0.1074758694484752 +1,0.19202324917883154,0.8079767508211685 +0,0.9367902816384415,0.06320971836155853 +1,0.35594672951100115,0.6440532704889989 +0,0.9939063517366823,0.006093648263317708 +0,0.6332460333878835,0.36675396661211646 +0,0.9661931590308457,0.03380684096915432 +1,0.15733305681125845,0.8426669431887416 +0,0.5737503917790989,0.4262496082209011 +0,0.9775484324784453,0.02245156752155475 +0,0.7598264606395778,0.24017353936042218 +0,0.9140385492824467,0.08596145071755334 +0,0.7898287728171346,0.2101712271828654 +0,0.9730246774501645,0.02697532254983548 +0,0.9870557971700432,0.012944202829956786 +0,0.7278272605867941,0.27217273941320586 +0,0.7798446009363337,0.22015539906366632 +0,0.9999981190302676,1.8809697324151387e-06 +0,0.9435867324218614,0.05641326757813858 +0,0.7270215040885271,0.27297849591147294 +0,0.7653100170850284,0.23468998291497156 +0,0.9784071147677329,0.0215928852322671 +1,0.317257975331374,0.682742024668626 +0,0.7815468513940321,0.21845314860596787 +0,0.998016162280172,0.001983837719828019 +0,0.9756503494734486,0.02434965052655136 +0,0.6244333670285168,0.3755666329714832 +0,0.7420747663132281,0.2579252336867719 +0,0.9912388614577915,0.008761138542208502 +0,0.5901745492218277,0.40982545077817234 +1,0.32827980597880174,0.6717201940211983 +0,0.9749654022143511,0.02503459778564887 +0,0.9830353347092533,0.016964665290746694 +1,0.20381055757828423,0.7961894424217157 +0,0.9794822935445643,0.020517706455435714 +0,0.9753794813745135,0.02462051862548653 +0,0.934924500449688,0.065075499550312 +0,0.7141022667795428,0.2858977332204572 +0,0.9730999349939957,0.02690006500600428 +1,0.32827980597880174,0.6717201940211983 +0,0.9219537625412993,0.07804623745870065 +0,0.912086283647841,0.08791371635215905 +0,0.9925716217080248,0.0074283782919751795 +0,0.7513770939202706,0.24862290607972937 +0,0.9654793598347513,0.034520640165248695 +0,0.6446619485375554,0.35533805146244457 +1,0.12270600874014924,0.8772939912598507 +0,0.553115884182992,0.44688411581700804 +0,0.9860311944564297,0.013968805543570273 +1,0.1411413543273286,0.8588586456726715 +0,0.6566490237598926,0.34335097624010735 +0,0.6883500298495393,0.3116499701504607 +0,0.7062695263043187,0.2937304736956813 +0,0.6701840443378602,0.32981595566213984 +0,0.6238771032275474,0.3761228967724526 +0,0.6003030896055642,0.3996969103944358 +0,0.5970475604725579,0.4029524395274421 +0,0.7553094684890868,0.24469053151091325 +1,0.35594672951100115,0.6440532704889989 +0,0.943179352453739,0.05682064754626104 +0,0.6244333670285168,0.3755666329714832 +0,0.973761293985516,0.02623870601448397 +0,0.9935722735953048,0.006427726404695244 +0,0.5041268792786964,0.49587312072130363 +0,0.9107825257185441,0.08921747428145588 +0,0.6480861910112509,0.35191380898874913 +0,0.94625017949099,0.053749820509010005 +0,0.948198671545288,0.05180132845471197 +1,0.34900885302844714,0.6509911469715528 +0,0.9817599530460086,0.018240046953991396 +0,0.9771389509628882,0.022861049037111836 +0,0.6915547023512743,0.30844529764872575 +0,0.891207910477237,0.10879208952276298 +0,0.9830353347092533,0.016964665290746694 +1,0.4430929775039801,0.55690702249602 +0,0.6959623997042166,0.3040376002957834 +0,0.9849775958580892,0.015022404141910806 +0,0.9808713824807782,0.01912861751922179 +0,0.5721149723546927,0.42788502764530734 +0,0.9925191576402902,0.007480842359709805 +1,0.35763593820632616,0.6423640617936739 +0,0.9923298339149806,0.007670166085019359 +0,0.9812543926991789,0.018745607300821088 +1,0.4189710311747739,0.5810289688252261 +0,0.7415799639509065,0.25842003604909347 +0,0.9035321668904144,0.09646783310958562 +0,0.9691785853517801,0.030821414648219858 +0,0.8205960118749454,0.17940398812505465 +1,0.37880577406230054,0.6211942259376995 +0,0.6903154330075861,0.30968456699241387 +1,0.41493092625639294,0.5850690737436071 +0,0.9854123657778728,0.014587634222127166 +0,0.9705116016067458,0.029488398393254234 +0,0.9975843958546124,0.002415604145387551 +0,0.9524359315274133,0.04756406847258665 +0,0.9638018332294722,0.036198166770527784 +0,0.7815468513940321,0.21845314860596787 +0,0.9864134411786146,0.013586558821385375 +0,0.7686881225146359,0.23131187748536408 +0,0.9214601913933965,0.07853980860660348 +0,0.7686881225146359,0.23131187748536408 +0,0.950562202448618,0.049437797551382 +1,0.39044784625962714,0.6095521537403729 +0,0.7773186405104566,0.22268135948954337 +0,0.9967384658757693,0.0032615341242306917 +1,0.35594672951100115,0.6440532704889989 +0,0.7920286450657736,0.20797135493422636 +1,0.3447515554065841,0.6552484445934159 +0,0.8513359914014629,0.14866400859853712 +0,0.9609570042689161,0.03904299573108394 +0,0.9710995819245745,0.028900418075425538 +1,0.33921699853517007,0.6607830014648299 +0,0.7404162993510155,0.2595837006489845 +0,0.623097883900533,0.376902116099467 +1,0.4658649395443848,0.5341350604556152 +0,0.7656058814414085,0.2343941185585915 +0,0.7686881225146359,0.23131187748536408 +0,0.750735393249963,0.24926460675003703 +0,0.6915547023512743,0.30844529764872575 +0,0.6885100813749542,0.3114899186250458 +0,0.9772576914202065,0.022742308579793535 +1,0.25337929109108015,0.7466207089089199 0,1.0,0.0 -0,0.6701840444047491,0.3298159555952509 -1,0.22058144213416866,0.7794185578658314 -0,0.8065607799837647,0.19343922001623526 +0,0.6701840443378602,0.32981595566213984 +1,0.2205814405695658,0.7794185594304341 +0,0.8065607797214436,0.19343922027855642 0,1.0,0.0 -0,0.9928115716470803,0.007188428352919662 -0,0.9406519107577025,0.05934808924229751 -0,0.9353181636214367,0.06468183637856328 -0,0.9743580251011529,0.02564197489884712 -0,0.8107779741682712,0.18922202583172876 -0,0.9761520912992743,0.02384790870072573 -0,0.8889844773931472,0.11101552260685277 -1,0.14779613104299397,0.8522038689570061 -0,0.6536749568823242,0.34632504311767576 -0,0.7579447384622395,0.24205526153776047 -0,0.9814611180555921,0.018538881944407892 -0,0.9800260546006138,0.01997394539938624 -0,0.7559432202067301,0.2440567797932699 -0,0.5962215854517939,0.40377841454820607 -0,0.9639358606287814,0.03606413937121855 -0,0.8648946697473175,0.13510533025268245 -0,0.9774090473904261,0.02259095260957389 -1,0.15671617450894273,0.8432838254910573 -0,0.7235836994913335,0.2764163005086665 -0,0.9758706774996683,0.02412932250033173 -0,0.6967761290442566,0.30322387095574344 -0,0.9773430683847547,0.02265693161524529 +0,0.9928115718865845,0.007188428113415468 +0,0.9406519104056311,0.05934808959436888 +0,0.9353181641484757,0.06468183585152432 +0,0.9743580250866918,0.02564197491330822 +0,0.8107779713439086,0.1892220286560914 +0,0.9761520914624937,0.02384790853750629 +0,0.8889844701524174,0.11101552984758256 +1,0.14779612731295175,0.8522038726870482 +0,0.6536749568485897,0.34632504315141033 +0,0.7579447420143423,0.24205525798565775 +0,0.9814611182916121,0.01853888170838791 +0,0.980026054587507,0.019973945412492977 +0,0.7559432218364055,0.2440567781635945 +0,0.5962215872858557,0.4037784127141443 +0,0.9639358607756899,0.036064139224310066 +0,0.8648946704431856,0.13510532955681442 +0,0.977409047603366,0.022590952396634 +1,0.1567161717419569,0.843283828258043 +0,0.7235837039664007,0.2764162960335993 +0,0.9758706776513318,0.02412932234866816 +0,0.6967761289262361,0.3032238710737639 +0,0.977343068429525,0.022656931570474992 0,1.0,0.0 -0,0.7686881227505075,0.23131187724949254 -0,0.8633619151621964,0.1366380848378036 -0,0.9817599530180546,0.018240046981945368 -0,0.5078651109505368,0.49213488904946323 -0,0.9882636796581608,0.011736320341839246 -0,0.9789609568989697,0.02103904310103033 -0,0.6907331810291065,0.3092668189708935 -0,0.731119435449719,0.268880564550281 -0,0.6270266205131043,0.3729733794868957 -0,0.9867610695509226,0.013238930449077424 -0,0.9043743222122671,0.0956256777877329 -0,0.9710995819336341,0.028900418066365896 -1,0.22648961202220239,0.7735103879777976 -0,0.91695934910494,0.08304065089505996 -0,0.9943257452452604,0.005674254754739594 -1,0.2949982509202934,0.7050017490797066 -0,0.9394781644635364,0.06052183553646362 -0,0.9729031288422672,0.02709687115773285 -0,0.7011414575480455,0.29885854245195453 -0,0.9751316257442615,0.024868374255738512 -1,0.47762561843518725,0.5223743815648128 -0,0.9825644962818689,0.017435503718131073 -0,0.9909948223107437,0.00900517768925635 -0,0.9564584640519271,0.04354153594807286 -0,0.9846003730459517,0.015399626954048284 -0,0.5832777200196416,0.4167222799803584 -0,0.6253354768460283,0.3746645231539717 -0,0.6415720538732839,0.35842794612671613 -0,0.8629058020645787,0.13709419793542132 -0,0.9826202561669306,0.017379743833069394 -0,0.6358967681508146,0.36410323184918536 -0,0.9846003730459517,0.015399626954048284 -0,0.7882363396251284,0.2117636603748716 -0,0.6252379027028793,0.37476209729712073 -0,0.7559432202067301,0.2440567797932699 -0,0.7019472611210625,0.29805273887893746 -0,0.5772875634820358,0.4227124365179642 -0,0.9104670411228997,0.08953295887710033 -0,0.9602084975824983,0.039791502417501734 -0,0.8167192419854342,0.18328075801456578 -0,0.98344066699051,0.016559333009489974 -0,0.7862941891587608,0.21370581084123919 -0,0.593783898143424,0.406216101856576 -1,0.48231596597634635,0.5176840340236537 -0,0.974454003134269,0.025545996865731002 -0,0.9815557639487252,0.018444236051274765 -1,0.2318782265261144,0.7681217734738857 -0,0.6424565677846762,0.3575434322153238 -0,0.881429366894451,0.11857063310554905 -0,0.6801277902248066,0.3198722097751934 -1,0.47974898105803343,0.5202510189419666 -0,0.5924978676937606,0.40750213230623944 -0,0.8298244779510752,0.17017552204892483 -0,0.9799121369163574,0.020087863083642632 -1,0.14170723775393929,0.8582927622460608 -0,0.7960248420342629,0.20397515796573706 -0,0.7513770922605694,0.24862290773943063 -0,0.9881089450023817,0.011891054997618333 -0,0.711345830228956,0.28865416977104397 -0,0.9877874151987776,0.012212584801222448 -0,0.972001540940604,0.02799845905939602 -0,0.6576384417504055,0.34236155824959447 -0,0.9468328634813502,0.053167136518649794 -0,0.9068601890458692,0.09313981095413082 -1,0.3854229399707375,0.6145770600292625 -0,0.8222949216881041,0.17770507831189586 -0,0.5531158847107808,0.44688411528921923 -0,0.9628640725524813,0.0371359274475187 -0,0.9575318000677564,0.0424681999322436 -0,0.9513616540495906,0.04863834595040939 -0,0.952031725712899,0.04796827428710104 -0,0.6478889572441139,0.3521110427558861 -0,0.7733293680453981,0.2266706319546019 -1,0.4330648601809812,0.5669351398190188 -0,0.9382311068223657,0.06176889317763434 -0,0.9811452317812663,0.018854768218733664 -1,0.3959054505892922,0.6040945494107077 -0,0.6668642965789235,0.33313570342107646 -0,0.9700219971107322,0.029978002889267774 -0,0.6592216368547027,0.3407783631452973 -0,0.9267962029999883,0.07320379700001167 -1,0.10079645572695702,0.8992035442730429 -0,0.5503625914605791,0.4496374085394209 -1,0.23751150537902144,0.7624884946209786 -0,0.7389174535262321,0.26108254647376794 -1,0.23522306324716594,0.7647769367528341 -0,0.8155359943644038,0.18446400563559617 -0,0.5997023847468465,0.40029761525315355 -1,0.3447515600509494,0.6552484399490506 -0,0.676349276437478,0.323650723562522 -1,0.42496996326983383,0.5750300367301662 -0,0.975239732283379,0.024760267716620987 -0,0.9905199570998765,0.009480042900123498 -0,0.9317162382384132,0.06828376176158679 -0,0.9611376644013403,0.0388623355986597 -0,0.9873234201402851,0.012676579859714932 -0,0.9745026204317258,0.025497379568274248 -0,0.9856003922849298,0.014399607715070206 -1,0.1826067358723613,0.8173932641276387 -0,0.9451527093602197,0.05484729063978033 -0,0.773032358302647,0.22696764169735295 -0,0.9823675816681184,0.01763241833188156 -0,0.963801833181699,0.036198166818301014 -0,0.9014581667104885,0.0985418332895115 -1,0.26102045385214606,0.7389795461478539 -0,0.9587193355898546,0.04128066441014544 -0,0.98344066699051,0.016559333009489974 -0,0.6647250461652902,0.33527495383470984 -0,0.5745686487006133,0.4254313512993867 -0,0.9402910151707574,0.059708984829242584 -0,0.9767920038785867,0.023207996121413332 -1,0.23500075115089267,0.7649992488491073 -0,0.9888366621240349,0.01116333787596513 -0,0.9367902811256187,0.06320971887438132 -0,0.9446086342697468,0.05539136573025316 -0,0.7403031549259417,0.2596968450740583 -0,0.9853372142798187,0.014662785720181315 -0,0.9591815894158044,0.04081841058419555 -1,0.2965990607986724,0.7034009392013276 -0,0.935408023819963,0.06459197618003698 -0,0.974454003134269,0.025545996865731002 -0,0.9539166004059386,0.04608339959406138 -0,0.9895777908150949,0.010422209184905107 -0,0.711345830228956,0.28865416977104397 -0,0.9749765645750719,0.02502343542492813 -1,0.4140979894687374,0.5859020105312627 -0,0.9925191575209389,0.007480842479061112 -1,0.16820509757488478,0.8317949024251152 -0,0.7318753201319532,0.2681246798680468 -0,0.9188130328869005,0.08118696711309947 -0,0.972094792350556,0.02790520764944404 -1,0.4321057679978471,0.5678942320021529 -0,0.9802133846871859,0.019786615312814115 -0,0.986365940108983,0.013634059891016959 -0,0.9174001772867583,0.08259982271324173 -0,0.8213250882697071,0.17867491173029293 -0,0.8328217364170062,0.1671782635829938 -1,0.1605635732273179,0.8394364267726822 -0,0.773032358302647,0.22696764169735295 -0,0.9733773719645683,0.026622628035431695 -0,0.9727851050826587,0.027214894917341304 -0,0.7827974585625862,0.2172025414374138 -0,0.8861182326712382,0.11388176732876176 -0,0.9335468665895642,0.0664531334104358 -0,0.9191143635188499,0.0808856364811501 -0,0.702124752927655,0.29787524707234503 -1,0.2222097621555992,0.7777902378444008 -0,0.9755587534049672,0.024441246595032773 -1,0.323532082242649,0.6764679177573509 -0,0.980966552663528,0.019033447336472054 -0,0.8018152810157129,0.19818471898428713 -0,0.934924501738447,0.06507549826155301 -0,0.717150943211247,0.28284905678875305 -0,0.9618335219171051,0.03816647808289486 -0,0.986365940108983,0.013634059891016959 -0,0.6967761290442566,0.30322387095574344 -0,0.6367873585273063,0.3632126414726937 -0,0.7128384756679268,0.2871615243320732 -0,0.9888118486873932,0.011188151312606753 -0,0.9707855049916286,0.029214495008371366 -0,0.9306554255467212,0.0693445744532788 -0,0.7270215042603512,0.27297849573964883 -0,0.8043712658955567,0.19562873410444326 -0,0.9733941490810277,0.026605850918972274 -0,0.9862230815981121,0.013776918401887883 -0,0.9694158798635599,0.030584120136440074 -0,0.773032358302647,0.22696764169735295 -0,0.8828441140560602,0.11715588594393977 -0,0.9838458312552877,0.016154168744712316 -0,0.980966552663528,0.019033447336472054 -0,0.7686881227505075,0.23131187724949254 -0,0.9911883188180843,0.008811681181915665 -0,0.5901745491216535,0.40982545087834654 -0,0.8695139474334876,0.13048605256651236 -1,0.42608074627595227,0.5739192537240477 -1,0.36730166610516723,0.6326983338948328 -0,0.9402020983372913,0.05979790166270871 -0,0.7753301548478634,0.22466984515213662 -0,0.7766467923898605,0.22335320761013955 -0,0.971431371091704,0.028568628908296034 -0,0.7513770922605694,0.24862290773943063 -0,0.9773158530328475,0.022684146967152485 -0,0.9724485777970615,0.02755142220293849 -0,0.915951458102578,0.08404854189742195 -0,0.9830353346857819,0.01696466531421814 -0,0.9463695937695746,0.053630406230425365 -0,0.7141022683157446,0.28589773168425536 -0,0.9826202561669306,0.017379743833069394 -0,0.9936050346829429,0.0063949653170570775 -0,0.6010947260512252,0.39890527394877484 -0,0.8913851006837447,0.10861489931625534 -0,0.5647600533391419,0.4352399466608581 -0,0.9800697882083058,0.019930211791694186 -0,0.7690932382562501,0.2309067617437499 -0,0.6301834191264717,0.3698165808735283 -0,0.7997416038264353,0.20025839617356467 -0,0.97613838560401,0.023861614395989994 -1,0.3904478512502522,0.6095521487497477 -0,0.9881961778700037,0.01180382212999631 -0,0.8432468335717151,0.15675316642828485 -0,0.914906113078762,0.08509388692123798 -1,0.25337928973621515,0.7466207102637848 -0,0.833040485954846,0.16695951404515397 -0,0.9253490262036536,0.07465097379634644 -0,0.9715911059547812,0.028408894045218847 -0,0.9818795299622387,0.018120470037761294 -0,0.959986168914535,0.04001383108546497 -1,0.17373181634197984,0.8262681836580201 -0,0.9288102911456723,0.07118970885432774 -0,0.9630710258631938,0.03692897413680618 -0,0.9522641512582144,0.0477358487417856 -0,0.9647811825974669,0.035218817402533076 -0,0.974167897707578,0.025832102292422054 -0,0.5531158847107808,0.44688411528921923 -0,0.6119181120216348,0.3880818879783652 -0,0.5878380464129214,0.41216195358707863 -0,0.7148264687073673,0.2851735312926327 -1,0.205716962224951,0.7942830377750489 -0,0.8504496503992234,0.14955034960077662 -0,0.6747535025727799,0.3252464974272201 -0,0.9717302603312116,0.02826973966878843 -0,0.6488685493324067,0.3511314506675933 -0,0.9949612021002441,0.00503879789975592 -0,0.8174985463682447,0.1825014536317553 -1,0.24395888389753953,0.7560411161024605 -0,0.9571344500612686,0.04286554993873137 -0,0.9830353346857819,0.01696466531421814 -1,0.3392170031320995,0.6607829968679004 -1,0.2580602933670051,0.7419397066329949 -1,0.42244507181404795,0.577554928185952 -0,0.8508380920550515,0.14916190794494855 -0,0.9318669470159435,0.06813305298405647 -0,0.8295237623249863,0.17047623767501374 -1,0.14227948243851724,0.8577205175614828 -0,0.8119960297485439,0.1880039702514561 -0,0.7815468516467412,0.2184531483532588 -0,0.9565937839530082,0.0434062160469918 -0,0.7604522236782896,0.23954777632171043 -0,0.8252173657281165,0.17478263427188345 -0,0.852776933441664,0.14722306655833595 -1,0.22610342434458558,0.7738965756554144 -0,0.9741701790502847,0.02582982094971531 -0,0.7924993416696237,0.20750065833037634 -0,0.9842229721320847,0.01577702786791535 -0,0.7688389584785037,0.2311610415214963 -0,0.7642860913204171,0.23571390867958286 -0,0.964657271939583,0.03534272806041705 -0,0.9789206566808658,0.02107934331913419 -0,0.6915547024595058,0.3084452975404942 -1,0.42608074627595227,0.5739192537240477 -1,0.2822963119771454,0.7177036880228547 -0,0.9929256601786515,0.00707433982134853 -0,0.6284145649505634,0.37158543504943664 -1,0.26758997291146114,0.7324100270885389 -0,0.9418884647042578,0.0581115352957422 -0,0.9773430683847547,0.02265693161524529 -0,0.9796328081991228,0.020367191800877205 -0,0.9305416762651566,0.0694583237348434 -0,0.6809644713949542,0.3190355286050458 -0,0.9633365520688978,0.03666344793110221 -0,0.8955483281804315,0.10445167181956849 -0,0.9351330005318279,0.06486699946817209 -0,0.7944434679773442,0.20555653202265578 -1,0.39358534658973865,0.6064146534102614 -1,0.37880577897249973,0.6211942210275003 -0,0.9682067852900127,0.031793214709987305 -1,0.2667614966395647,0.7332385033604353 -0,0.8788235684953619,0.12117643150463808 -1,0.22147929906562872,0.7785207009343713 -0,0.7016885610341704,0.29831143896582957 -0,0.9351618271381732,0.0648381728618268 -0,0.8846075654895033,0.11539243451049674 -0,0.98344066699051,0.016559333009489974 -0,0.9687290681976247,0.03127093180237528 -0,0.9840026084764383,0.01599739152356172 -1,0.4871279299911585,0.5128720700088415 -0,0.9708885786154885,0.029111421384511504 -1,0.3774411430530209,0.6225588569469791 -0,0.973834551670669,0.026165448329330987 -0,0.9879245464277325,0.01207545357226747 -0,0.8916016587979952,0.10839834120200476 -1,0.060251865046211876,0.9397481349537882 -0,0.5419844271958338,0.45801557280416616 -1,0.28204591789684297,0.717954082103157 -0,0.6701840444047491,0.3298159555952509 -0,0.9634722369756104,0.03652776302438965 -0,0.6922863072758125,0.30771369272418747 -0,0.9927507861130835,0.007249213886916461 -1,0.36535351093251145,0.6346464890674886 -0,0.7366740902436469,0.26332590975635306 -1,0.20951416453638833,0.7904858354636117 -1,0.41299596561669166,0.5870040343833083 -0,0.9560313379971999,0.04396866200280014 -0,0.7906074157210009,0.2093925842789991 -0,0.7461045557820679,0.2538954442179321 -0,0.9732004925556951,0.026799507444304926 -1,0.2667614966395647,0.7332385033604353 -0,0.9239073264543463,0.07609267354565374 -0,0.9825644962818689,0.017435503718131073 -1,0.3963169480195413,0.6036830519804587 -0,0.7366740902436469,0.26332590975635306 -0,0.5572918206039901,0.4427081793960099 -1,0.31817276511508463,0.6818272348849154 -0,0.9286766932879327,0.07132330671206732 -0,0.9847016191089683,0.015298380891031749 -0,0.6630101467311648,0.33698985326883524 -0,0.7686881227505075,0.23131187724949254 -0,0.7837329803539734,0.21626701964602657 -0,0.9425461918253709,0.057453808174629084 -0,0.9078212273221727,0.09217877267782726 -0,0.9684353565758611,0.031564643424138894 -0,0.6301834191264717,0.3698165808735283 -0,0.9466434483605858,0.05335655163941422 -0,0.7769079164152412,0.22309208358475885 -0,0.9720901222954443,0.027909877704555663 -1,0.4008214990033557,0.5991785009966444 -0,0.5132136436597794,0.4867863563402206 -0,0.9618335219171051,0.03816647808289486 -0,0.9688687417205221,0.031131258279477936 -0,0.684202084738239,0.31579791526176104 -0,0.9945966369235769,0.0054033630764230844 -0,0.9674052383663291,0.03259476163367092 -0,0.9414048700727974,0.058595129927202616 -0,0.9749654022297282,0.025034597770271838 -0,0.889711805153712,0.11028819484628805 -1,0.32287938510731146,0.6771206148926885 -1,0.11683957525740797,0.883160424742592 -0,0.6528031975713948,0.3471968024286052 -0,0.9178256243869165,0.0821743756130835 -0,0.8532940790753784,0.14670592092462165 -0,0.9812543925796274,0.018745607420372568 -0,0.7019472611210625,0.29805273887893746 -0,0.6051668913071782,0.39483310869282184 -0,0.8919039572096088,0.1080960427903912 -0,0.7109442731225742,0.28905572687742576 -0,0.7865126296707439,0.21348737032925613 -0,0.9635988205833551,0.03640117941664489 -0,0.974454003134269,0.025545996865731002 -1,0.25507286861599293,0.7449271313840071 -0,0.9939254559447287,0.006074544055271303 -0,0.9770089536685448,0.02299104633145521 -0,0.7571687428438816,0.24283125715611842 -0,0.9338141836348829,0.06618581636511711 -0,0.7540022980055747,0.24599770199442528 -0,0.9182622638020578,0.08173773619794222 -0,0.959986168914535,0.04001383108546497 -0,0.8732868439430888,0.12671315605691125 -0,0.8991848150811113,0.10081518491888875 -1,0.3846102957588268,0.6153897042411731 -0,0.717150943211247,0.28284905678875305 -1,0.2993527792862126,0.7006472207137874 -0,0.9735996798487235,0.02640032015127647 -0,0.9714750264451664,0.028524973554833633 -1,0.2715997928754723,0.7284002071245277 -0,0.9692077692346394,0.03079223076536064 -0,0.712746712564538,0.28725328743546197 -0,0.5206402521612168,0.4793597478387832 -0,0.7827546592598802,0.2172453407401198 -0,0.9209240902437217,0.07907590975627832 -0,0.9661926784569104,0.03380732154308963 -0,0.9407725661361998,0.05922743386380025 -0,0.717150943211247,0.28284905678875305 -1,0.37880577897249973,0.6211942210275003 -0,0.5772875634820358,0.4227124365179642 -0,0.9173340747462657,0.08266592525373428 -1,0.22062517965641626,0.7793748203435837 -0,0.9440002885448276,0.05599971145517235 -0,0.9291956315538432,0.07080436844615678 -1,0.3203853183759755,0.6796146816240245 -1,0.22648961202220239,0.7735103879777976 -0,0.717150943211247,0.28284905678875305 -0,0.6854546714084185,0.31454532859158146 -1,0.3774411430530209,0.6225588569469791 -0,0.9768428510001056,0.023157148999894406 -0,0.9839285019169595,0.016071498083040536 -0,0.8538767364982139,0.14612326350178606 -0,0.7344506490931323,0.2655493509068677 -0,0.919592879592464,0.08040712040753595 -0,0.97613838560401,0.023861614395989994 -0,0.9178256243869165,0.0821743756130835 -0,0.9619745497067961,0.03802545029320392 -1,0.3175258049291606,0.6824741950708394 -0,0.9714150317860495,0.028584968213950512 -0,0.598879172380276,0.401120827619724 -0,0.9930834718678876,0.0069165281321124095 -0,0.774377166841285,0.225622833158715 -0,0.9767045998800852,0.023295400119914822 -0,0.9861028391471198,0.013897160852880175 -0,0.9582942123955417,0.04170578760445831 -0,0.7978779143646892,0.20212208563531076 -0,0.895476288199632,0.10452371180036801 -0,0.9338141836348829,0.06618581636511711 -0,0.8130888711274837,0.18691112887251626 -0,0.9196616648812495,0.08033833511875055 -0,0.8406723355747516,0.15932766442524837 -0,0.9102149304160234,0.08978506958397658 -0,0.9685221041451161,0.03147789585488392 -1,0.21361664903977667,0.7863833509602234 -1,0.2500417588663015,0.7499582411336985 -0,0.7008550933571439,0.2991449066428561 -0,0.9939254559447287,0.006074544055271303 -0,0.9087636933498707,0.09123630665012927 -0,0.5652405019804635,0.4347594980195365 -0,0.5712745914576014,0.4287254085423986 -0,0.8158661061004573,0.1841338938995427 -1,0.3616048760001127,0.6383951239998873 -0,0.9698871871693067,0.030112812830693336 -0,0.958485063544146,0.041514936455854023 -0,0.9730999350064664,0.02690006499353359 -0,0.6333153805801207,0.3666846194198793 -0,0.9568945371746185,0.043105462825381524 -0,0.9288102911456723,0.07118970885432774 -0,0.9359650587135719,0.06403494128642806 -0,0.7293740169638211,0.2706259830361789 -0,0.7228013593038424,0.2771986406961576 -0,0.8887373776512265,0.11126262234877349 -0,0.9484872835539507,0.05151271644604927 -1,0.2434068661742441,0.7565931338257559 -0,0.6959624004268675,0.3040375995731325 -0,0.9178256243869165,0.0821743756130835 -0,0.9333070137476829,0.06669298625231712 -0,0.9552318470994738,0.04476815290052616 -0,0.9769603221106204,0.02303967788937955 -0,0.9541263477356833,0.04587365226431672 -0,0.6614347830639818,0.33856521693601815 +0,0.7686881225146359,0.23131187748536408 +0,0.8633619144226775,0.1366380855773225 +0,0.9817599530460086,0.018240046953991396 +0,0.5078651111972631,0.4921348888027369 +0,0.9882636797797564,0.011736320220243623 +0,0.9789609568284525,0.021039043171547478 +0,0.6907331803104858,0.3092668196895142 +0,0.7311194347078946,0.26888056529210536 +0,0.6270266077305022,0.37297339226949777 +0,0.9867610695308057,0.013238930469194332 +0,0.9043743204556433,0.09562567954435675 +0,0.9710995819245745,0.028900418075425538 +1,0.2264896133307178,0.7735103866692822 +0,0.9169593482626328,0.08304065173736719 +0,0.9943257453759863,0.005674254624013719 +1,0.2949982462145083,0.7050017537854917 +0,0.9394781641695106,0.06052183583048942 +0,0.9729031289374773,0.027096871062522676 +0,0.7011414568216894,0.2988585431783106 +0,0.9751316259830881,0.024868374016911887 +1,0.4776256174250034,0.5223743825749966 +0,0.9825644963905824,0.01743550360941759 +0,0.9909948226360749,0.009005177363925143 +0,0.9564584643784831,0.04354153562151686 +0,0.9846003730641867,0.015399626935813315 +0,0.5832777194384138,0.4167222805615862 +0,0.6253354768710926,0.3746645231289074 +0,0.6415720532056668,0.3584279467943332 +0,0.862905803681123,0.13709419631887698 +0,0.9826202561918406,0.01737974380815943 +0,0.6358967674904791,0.3641032325095209 +0,0.9846003730641867,0.015399626935813315 +0,0.7882363412410203,0.21176365875897973 +0,0.6252379044032118,0.3747620955967882 +0,0.7559432218364055,0.2440567781635945 +0,0.7019472609934829,0.2980527390065171 +0,0.5772875629110026,0.4227124370889974 +0,0.9104670409415774,0.08953295905842262 +0,0.9602084976426429,0.03979150235735707 +0,0.8167192447164268,0.18328075528357324 +0,0.9834406670125966,0.01655933298740342 +0,0.7862941905828418,0.21370580941715822 +0,0.5937838981293703,0.40621610187062973 +1,0.4823159655607003,0.5176840344392997 +0,0.9744540031909713,0.025545996809028693 +0,0.9815557639992788,0.018444236000721204 +1,0.23187822638864378,0.7681217736113563 +0,0.6424565677739692,0.3575434322260308 +0,0.8814293584334166,0.11857064156658337 +0,0.6801277895152316,0.31987221048476844 +1,0.4797489785563209,0.5202510214436791 +0,0.5924978661489674,0.4075021338510326 +0,0.8298244761323712,0.1701755238676288 +0,0.9799121369511163,0.02008786304888366 +1,0.14170723416446843,0.8582927658355316 +0,0.7960248451387058,0.20397515486129425 +0,0.7513770939202706,0.24862290607972937 +0,0.9881089451116947,0.01189105488830533 +0,0.7113458294961652,0.2886541705038348 +0,0.9877874153870603,0.012212584612939725 +0,0.9720015412395646,0.027998458760435385 +0,0.6576384463607061,0.3423615536392939 +0,0.9468328630229841,0.053167136977015916 +0,0.9068601869735158,0.09313981302648422 +1,0.38542293738605227,0.6145770626139477 +0,0.8222949232089556,0.17770507679104441 +0,0.553115884182992,0.44688411581700804 +0,0.9628640727924995,0.037135927207500474 +0,0.9575317954527882,0.042468204547211785 +0,0.9513616540867721,0.04863834591322791 +0,0.952031726040196,0.047968273959803964 +0,0.6478889583089114,0.35211104169108864 +0,0.773329367321736,0.22667063267826404 +1,0.4330648594131908,0.5669351405868093 +0,0.9382311073213029,0.06176889267869712 +0,0.9811452316409633,0.018854768359036655 +1,0.3959054510479797,0.6040945489520203 +0,0.6668642950096755,0.3331357049903245 +0,0.9700219977256188,0.029978002274381188 +0,0.6592216368097243,0.34077836319027566 +0,0.9267961958669254,0.07320380413307459 +1,0.10079645722363538,0.8992035427763646 +0,0.5503625899659594,0.44963741003404056 +1,0.2375115013925816,0.7624884986074184 +0,0.7389174535720692,0.26108254642793083 +1,0.23522306457237369,0.7647769354276264 +0,0.8155359981199876,0.18446400188001244 +0,0.599702384720568,0.400297615279432 +1,0.3447515554065841,0.6552484445934159 +0,0.6763492785504043,0.3236507214495957 +1,0.42496996093303796,0.575030039066962 +0,0.9752397324244505,0.0247602675755495 +0,0.9905199572548262,0.009480042745173778 +0,0.931716237688821,0.06828376231117905 +0,0.9611376644582249,0.038862335541775095 +0,0.9873234202471312,0.012676579752868844 +0,0.9745026203568317,0.02549737964316834 +0,0.9856003923670594,0.01439960763294057 +1,0.18260673707126107,0.8173932629287389 +0,0.9451527090608005,0.05484729093919949 +0,0.7730323580609136,0.22696764193908636 +0,0.9823675819022893,0.017632418097710656 +0,0.9638018332294722,0.036198166770527784 +0,0.9014581639074342,0.09854183609256584 +1,0.2610204536829905,0.7389795463170095 +0,0.9587193333745719,0.041280666625428064 +0,0.9834406670125966,0.01655933298740342 +0,0.6647250461092591,0.3352749538907409 +0,0.5745686471741991,0.4254313528258009 +0,0.9402910146739216,0.05970898532607838 +0,0.9767920039255804,0.02320799607441959 +1,0.23500075575458668,0.7649992442454133 +0,0.9888366625369021,0.011163337463097944 +0,0.9367902816384415,0.06320971836155853 +0,0.9446086349158445,0.05539136508415554 +0,0.7403031551981748,0.2596968448018252 +0,0.9853372144075956,0.014662785592404415 +0,0.9591815896866327,0.040818410313367304 +1,0.29659905660549973,0.7034009433945003 +0,0.935408017018688,0.06459198298131197 +0,0.9744540031909713,0.025545996809028693 +0,0.953916600595699,0.04608339940430095 +0,0.9895777911942493,0.010422208805750732 +0,0.7113458294961652,0.2886541705038348 +0,0.9749765650815395,0.025023434918460485 +1,0.4140979843314967,0.5859020156685033 +0,0.9925191576402902,0.007480842359709805 +1,0.16820510127953398,0.831794898720466 +0,0.7318753199520099,0.26812468004799006 +0,0.9188130320579119,0.08118696794208813 +0,0.9720947929199834,0.027905207080016647 +1,0.4321057627642731,0.567894237235727 +0,0.9802133845420745,0.019786615457925483 +0,0.9863659402258536,0.013634059774146445 +0,0.9174001762639742,0.08259982373602581 +0,0.8213250919904679,0.17867490800953212 +0,0.8328217378446978,0.16717826215530218 +1,0.16056357401059929,0.8394364259894007 +0,0.7730323580609136,0.22696764193908636 +0,0.9733773727933179,0.02662262720668207 +0,0.9727851052843386,0.02721489471566141 +0,0.7827974622536052,0.21720253774639475 +0,0.8861182312734305,0.11388176872656952 +0,0.9335468597604991,0.06645314023950089 +0,0.9191143559322297,0.08088564406777032 +0,0.702124757922078,0.29787524207792204 +1,0.2222097634553397,0.7777902365446603 +0,0.9755587533887248,0.024441246611275225 +1,0.3235320794559482,0.6764679205440518 +0,0.9809665526491147,0.019033447350885302 +0,0.801815280739826,0.198184719260174 +0,0.934924500449688,0.065075499550312 +0,0.717150943056396,0.28284905694360396 +0,0.9618335220605343,0.038166477939465704 +0,0.9863659402258536,0.013634059774146445 +0,0.6967761289262361,0.3032238710737639 +0,0.6367873585283663,0.3632126414716337 +0,0.712838477570415,0.28716152242958504 +0,0.988811848889703,0.011188151110297029 +0,0.9707855048717379,0.02921449512826213 +0,0.9306554257256157,0.06934457427438434 +0,0.7270215040885271,0.27297849591147294 +0,0.8043712669776598,0.19562873302234018 +0,0.9733941492363053,0.026605850763694705 +0,0.9862230818918477,0.013776918108152292 +0,0.9694158782873789,0.03058412171262115 +0,0.7730323580609136,0.22696764193908636 +0,0.8828441122547159,0.11715588774528407 +0,0.9838458313991028,0.016154168600897245 +0,0.9809665526491147,0.019033447350885302 +0,0.7686881225146359,0.23131187748536408 +0,0.9911883189608655,0.008811681039134545 +0,0.5901745492218277,0.40982545077817234 +0,0.8695139454865217,0.13048605451347828 +1,0.4260807410731218,0.5739192589268782 +1,0.36730166127971187,0.6326983387202881 +0,0.9402020985653508,0.05979790143464925 +0,0.7753301582229691,0.22466984177703087 +0,0.7766467988749999,0.22335320112500012 +0,0.9714313714772724,0.028568628522727568 +0,0.7513770939202706,0.24862290607972937 +0,0.9773158532573492,0.022684146742650846 +0,0.972448577785669,0.027551422214331045 +0,0.9159514567026965,0.08404854329730349 +0,0.9830353347092533,0.016964665290746694 +0,0.9463695944715194,0.05363040552848064 +0,0.7141022667795428,0.2858977332204572 +0,0.9826202561918406,0.01737974380815943 +0,0.9936050349592334,0.0063949650407666425 +0,0.6010947254410245,0.3989052745589755 +0,0.8913851029377428,0.10861489706225724 +0,0.5647600540899171,0.43523994591008286 +0,0.9800697884646796,0.019930211535320375 +0,0.7690932317454161,0.2309067682545839 +0,0.630183418473733,0.36981658152626695 +0,0.799741603749694,0.20025839625030595 +0,0.9761383855869508,0.023861614413049237 +1,0.39044784625962714,0.6095521537403729 +0,0.988196178020698,0.011803821979301965 +0,0.8432468329703569,0.15675316702964315 +0,0.9149061131503762,0.08509388684962382 +1,0.25337929109108015,0.7466207089089199 +0,0.8330404833148892,0.16695951668511078 +0,0.925349024761623,0.07465097523837705 +0,0.9715911061457785,0.028408893854221517 +0,0.9818795303447541,0.01812046965524594 +0,0.9599861690685509,0.04001383093144906 +1,0.17373181853941022,0.8262681814605898 +0,0.928810291916031,0.07118970808396896 +0,0.9630710260153111,0.03692897398468886 +0,0.9522641521084801,0.047735847891519856 +0,0.9647811827393182,0.03521881726068177 +0,0.9741678979454123,0.025832102054587747 +0,0.553115884182992,0.44688411581700804 +0,0.6119181114710284,0.38808188852897163 +0,0.5878380464112084,0.4121619535887916 +0,0.7148264700140181,0.2851735299859819 +1,0.2057169616580976,0.7942830383419024 +0,0.8504496550238725,0.1495503449761275 +0,0.6747535018682195,0.3252464981317805 +0,0.9717302601845915,0.02826973981540848 +0,0.6488685515899225,0.3511314484100775 +0,0.9949612015521735,0.005038798447826509 +0,0.8174985475715437,0.18250145242845628 +1,0.24395888860187404,0.756041111398126 +0,0.9571344501456372,0.04286554985436275 +0,0.9830353347092533,0.016964665290746694 +1,0.33921699853517007,0.6607830014648299 +1,0.25806029472844694,0.7419397052715531 +1,0.42244507048184476,0.5775549295181552 +0,0.8508380913424077,0.14916190865759227 +0,0.9318669456775465,0.06813305432245353 +0,0.8295237653441917,0.1704762346558083 +1,0.14227948217421357,0.8577205178257864 +0,0.8119960307826968,0.18800396921730322 +0,0.7815468513940321,0.21845314860596787 +0,0.9565937839637454,0.04340621603625461 +0,0.7604522252780715,0.23954777472192845 +0,0.8252173635133139,0.17478263648668613 +0,0.8527769317797443,0.14722306822025566 +1,0.22610342327828356,0.7738965767217164 +0,0.9741701791385846,0.025829820861415387 +0,0.7924993428257124,0.20750065717428756 +0,0.9842229721515545,0.01577702784844548 +0,0.7688389625952247,0.23116103740477534 +0,0.764286091090656,0.23571390890934396 +0,0.9646572718094224,0.0353427281905776 +0,0.9789206567194166,0.021079343280583362 +0,0.6915547023512743,0.30844529764872575 +1,0.4260807410731218,0.5739192589268782 +1,0.2822963133659336,0.7177036866340665 +0,0.9929256602902455,0.0070743397097544625 +0,0.6284145666386162,0.37158543336138383 +1,0.26758997428497777,0.7324100257150222 +0,0.9418884647901815,0.05811153520981849 +0,0.977343068429525,0.022656931570474992 +0,0.9796328087324129,0.020367191267587126 +0,0.9305416760823346,0.06945832391766538 +0,0.6809644713069667,0.3190355286930333 +0,0.963336552075579,0.036663447924421 +0,0.8955483175148556,0.10445168248514436 +0,0.9351329998538822,0.06486700014611779 +0,0.7944434693445953,0.2055565306554047 +1,0.3935853432847728,0.6064146567152272 +1,0.37880577406230054,0.6211942259376995 +0,0.9682067852863796,0.0317932147136204 +1,0.26676149276832906,0.7332385072316709 +0,0.8788235681022085,0.12117643189779148 +1,0.2214792957413147,0.7785207042586852 +0,0.7016885647248472,0.2983114352751528 +0,0.9351618269573514,0.0648381730426486 +0,0.8846075656900355,0.11539243430996449 +0,0.9834406670125966,0.01655933298740342 +0,0.9687290683163357,0.03127093168366435 +0,0.9840026088891195,0.0159973911108805 +1,0.48712792797855753,0.5128720720214425 +0,0.9708885787219067,0.029111421278093297 +1,0.37744113872202445,0.6225588612779756 +0,0.9738345517300135,0.026165448269986458 +0,0.9879245465283526,0.012075453471647402 +0,0.8916016480324226,0.10839835196757741 +1,0.06025186521152417,0.9397481347884759 +0,0.5419844270645059,0.4580155729354941 +1,0.2820459229786945,0.7179540770213055 +0,0.6701840443378602,0.32981595566213984 +0,0.9634722370828015,0.0365277629171985 +0,0.6922863092993109,0.3077136907006891 +0,0.9927507862277846,0.007249213772215435 +1,0.36535350817159906,0.6346464918284009 +0,0.7366740900558344,0.2633259099441656 +1,0.20951416882841473,0.7904858311715852 +1,0.4129959633232711,0.5870040366767288 +0,0.9560313381743496,0.0439686618256504 +0,0.7906074199861568,0.2093925800138432 +0,0.7461045555792662,0.25389544442073375 +0,0.9732004926177735,0.026799507382226473 +1,0.26676149276832906,0.7332385072316709 +0,0.9239073262698869,0.07609267373011308 +0,0.9825644963905824,0.01743550360941759 +1,0.39631694299042497,0.603683057009575 +0,0.7366740900558344,0.2633259099441656 +0,0.5572918194408606,0.4427081805591394 +1,0.31817276236394126,0.6818272376360588 +0,0.9286766918984457,0.0713233081015543 +0,0.98470161942744,0.015298380572560055 +0,0.6630101461101758,0.33698985388982416 +0,0.7686881225146359,0.23131187748536408 +0,0.7837329766161698,0.2162670233838302 +0,0.9425461915181325,0.05745380848186754 +0,0.9078212246687565,0.09217877533124352 +0,0.9684353566827748,0.031564643317225194 +0,0.630183418473733,0.36981658152626695 +0,0.9466434479820626,0.05335655201793743 +0,0.7769079183239761,0.2230920816760239 +0,0.9720901224608925,0.027909877539107453 +1,0.4008214945276234,0.5991785054723766 +0,0.5132136466453705,0.4867863533546295 +0,0.9618335220605343,0.038166477939465704 +0,0.968868741301316,0.03113125869868405 +0,0.6842020845486535,0.3157979154513465 +0,0.9945966370475456,0.00540336295245436 +0,0.9674052385174178,0.032594761482582224 +0,0.9414048701397151,0.05859512986028492 +0,0.9749654022143511,0.02503459778564887 +0,0.8897118038946047,0.11028819610539531 +1,0.3228793806571786,0.6771206193428214 +1,0.11683957669884903,0.883160423301151 +0,0.6528031968901682,0.3471968031098318 +0,0.9178256230115883,0.08217437698841168 +0,0.853294069974296,0.14670593002570398 +0,0.9812543926991789,0.018745607300821088 +0,0.7019472609934829,0.2980527390065171 +0,0.6051668930834193,0.3948331069165807 +0,0.8919039552670416,0.10809604473295842 +0,0.7109442734766935,0.28905572652330647 +0,0.7865126320642666,0.21348736793573342 +0,0.9635988207168097,0.03640117928319031 +0,0.9744540031909713,0.025545996809028693 +1,0.25507286623782904,0.744927133762171 +0,0.9939254560240894,0.006074543975910562 +0,0.9770089535620886,0.02299104643791139 +0,0.7571687404939504,0.24283125950604956 +0,0.9338141841764737,0.06618581582352634 +0,0.7540023041515711,0.2459976958484289 +0,0.9182622622505955,0.08173773774940452 +0,0.9599861690685509,0.04001383093144906 +0,0.8732868445850689,0.1267131554149311 +0,0.8991848168571411,0.10081518314285887 +1,0.38461029080785525,0.6153897091921448 +0,0.717150943056396,0.28284905694360396 +1,0.29935277656446485,0.7006472234355352 +0,0.9735996796722064,0.026400320327793603 +0,0.9714750263266031,0.028524973673396903 +1,0.27159978894990316,0.7284002110500969 +0,0.9692077690130091,0.03079223098699091 +0,0.7127467139792338,0.28725328602076616 +0,0.5206402510612876,0.47935974893871236 +0,0.7827546565594765,0.2172453434405235 +0,0.9209240828085113,0.07907591719148865 +0,0.9661926789694306,0.03380732103056938 +0,0.9407725667625448,0.05922743323745516 +0,0.717150943056396,0.28284905694360396 +1,0.37880577406230054,0.6211942259376995 +0,0.5772875629110026,0.4227124370889974 +0,0.9173340752649174,0.08266592473508261 +1,0.22062517958485442,0.7793748204151456 +0,0.9440002888603767,0.05599971113962332 +0,0.9291956313150485,0.07080436868495155 +1,0.32038531550585025,0.6796146844941497 +1,0.2264896133307178,0.7735103866692822 +0,0.717150943056396,0.28284905694360396 +0,0.6854546706941573,0.31454532930584267 +1,0.37744113872202445,0.6225588612779756 +0,0.9768428514793894,0.02315714852061057 +0,0.9839285018990853,0.016071498100914683 +0,0.8538767354937165,0.14612326450628355 +0,0.7344506503033278,0.2655493496966722 +0,0.9195928806127167,0.08040711938728329 +0,0.9761383855869508,0.023861614413049237 +0,0.9178256230115883,0.08217437698841168 +0,0.9619745499542092,0.03802545004579083 +1,0.3175258005293088,0.6824741994706912 +0,0.9714150319568035,0.028584968043196546 +0,0.598879167148123,0.40112083285187705 +0,0.993083471907326,0.006916528092673957 +0,0.7743771727101585,0.2256228272898415 +0,0.9767045998622561,0.023295400137743894 +0,0.9861028391274199,0.013897160872580083 +0,0.9582942122572837,0.04170578774271627 +0,0.7978779140929603,0.20212208590703973 +0,0.8954762900877529,0.10452370991224713 +0,0.9338141841764737,0.06618581582352634 +0,0.8130888756841581,0.1869111243158419 +0,0.9196616635301781,0.08033833646982191 +0,0.8406723344856739,0.1593276655143261 +0,0.910214931056293,0.08978506894370697 +0,0.968522103940086,0.03147789605991402 +1,0.21361665338453284,0.7863833466154672 +1,0.2500417551664008,0.7499582448335992 +0,0.7008550953634329,0.29914490463656707 +0,0.9939254560240894,0.006074543975910562 +0,0.9087636938990004,0.09123630610099964 +0,0.5652405014305755,0.43475949856942453 +0,0.5712745908970164,0.4287254091029836 +0,0.8158661073135286,0.1841338926864714 +1,0.3616048712185432,0.6383951287814569 +0,0.969887187327845,0.030112812672155043 +0,0.9584850641602245,0.0415149358397755 +0,0.9730999349939957,0.02690006500600428 +0,0.6333153790110737,0.3666846209889263 +0,0.9568945376317802,0.04310546236821977 +0,0.928810291916031,0.07118970808396896 +0,0.9359650587457835,0.0640349412542165 +0,0.7293740176681514,0.27062598233184865 +0,0.7228013611454764,0.27719863885452356 +0,0.8887373781945257,0.1112626218054743 +0,0.9484872781480032,0.051512721851996846 +1,0.2434068625765638,0.7565931374234363 +0,0.6959623997042166,0.3040376002957834 +0,0.9178256230115883,0.08217437698841168 +0,0.9333070142676421,0.06669298573235793 +0,0.9552318475539119,0.044768152446088116 +0,0.9769603222386632,0.023039677761336752 +0,0.95412634821995,0.045873651780049984 +0,0.6614347767053491,0.3385652232946509 0,1.0,0.0 -0,0.6583565422712777,0.3416434577287223 -0,0.9918415451227941,0.0081584548772059 -0,0.9718872482546652,0.028112751745334785 -0,0.905848258535964,0.09415174146403604 -0,0.5633510079460906,0.4366489920539094 -0,0.9751999072699254,0.024800092730074552 -0,0.9834502494941718,0.016549750505828187 -0,0.9730246778230287,0.026975322176971295 -0,0.9696865943498809,0.030313405650119085 -0,0.7205684249193918,0.27943157508060823 -0,0.8758941237104666,0.1241058762895334 +0,0.6583565415837299,0.3416434584162701 +0,0.9918415447399368,0.008158455260063202 +0,0.9718872483224957,0.028112751677504266 +0,0.9058482584565075,0.09415174154349248 +0,0.5633510067738141,0.4366489932261859 +0,0.975199907264876,0.024800092735123958 +0,0.9834502496422827,0.01654975035771733 +0,0.9730246774501645,0.02697532254983548 +0,0.9696865943434019,0.030313405656598125 +0,0.7205684242463709,0.2794315757536291 +0,0.8758941266767125,0.12410587332328749 0,1.0,0.0 -0,0.7456512093135818,0.25434879068641825 -0,0.5780155324255205,0.4219844675744795 -0,0.8018152810157129,0.19818471898428713 -0,0.6467614816615627,0.35323851833843734 -0,0.9634722369756104,0.03652776302438965 -0,0.8523722165449106,0.14762778345508942 -0,0.9719737240634457,0.028026275936554268 -0,0.8434846667293455,0.15651533327065448 -0,0.8790758652805165,0.12092413471948349 -1,0.0544472456464606,0.9455527543535394 -0,0.9803278322989799,0.019672167701020093 -0,0.9850545624482876,0.014945437551712404 -0,0.7414173190928417,0.2585826809071583 -0,0.9739257756847386,0.026074224315261407 -0,0.9677949699672405,0.03220503003275954 -0,0.9764001731938935,0.023599826806106505 -0,0.7355467784672975,0.26445322153270245 -1,0.1194191299526717,0.8805808700473283 -0,0.9740237487022756,0.025976251297724406 -0,0.9939254559447287,0.006074544055271303 -0,0.9267223611391624,0.0732776388608376 -1,0.057035899028781104,0.9429641009712189 -0,0.9821952057657117,0.017804794234288268 -0,0.9768053430676734,0.023194656932326585 -1,0.21798799464188431,0.7820120053581157 -1,0.16143467303939923,0.8385653269606008 -0,0.8648946697473175,0.13510533025268245 -0,0.9271672437481583,0.07283275625184171 -0,0.6743243463750952,0.3256756536249048 -0,0.9641953996932442,0.03580460030675581 -0,0.9730999350064664,0.02690006499353359 +0,0.7456512140554147,0.2543487859445853 +0,0.5780155337138472,0.4219844662861528 +0,0.801815280739826,0.198184719260174 +0,0.6467614821956037,0.3532385178043963 +0,0.9634722370828015,0.0365277629171985 +0,0.8523722177965838,0.1476277822034162 +0,0.9719737246128406,0.028026275387159405 +0,0.8434846675628446,0.15651533243715543 +0,0.8790758635655088,0.12092413643449118 +1,0.05444724562015652,0.9455527543798434 +0,0.9803278324262967,0.01967216757370327 +0,0.9850545624293854,0.014945437570614617 +0,0.7414173188974085,0.2585826811025915 +0,0.9739257760114337,0.026074223988566292 +0,0.9677949701668808,0.032205029833119236 +0,0.9764001733261539,0.02359982667384608 +0,0.7355467787526939,0.2644532212473061 +1,0.11941912689228258,0.8805808731077174 +0,0.9740237488526815,0.025976251147318496 +0,0.9939254560240894,0.006074543975910562 +0,0.9267223605135471,0.07327763948645294 +1,0.0570358989957947,0.9429641010042054 +0,0.9821952057921153,0.017804794207884722 +0,0.9768053432900892,0.023194656709910833 +1,0.2179879959325789,0.7820120040674211 +1,0.16143467663773375,0.8385653233622663 +0,0.8648946704431856,0.13510532955681442 +0,0.927167243228899,0.07283275677110101 +0,0.6743243468322311,0.3256756531677689 +0,0.964195399698007,0.03580460030199295 +0,0.9730999349939957,0.02690006500600428 0,1.0,0.0 -0,0.7366740902436469,0.26332590975635306 -0,0.97613838560401,0.023861614395989994 -1,0.3616048760001127,0.6383951239998873 -0,0.8607229815801999,0.1392770184198001 -1,0.15508414606017606,0.8449158539398239 -0,0.914776395755125,0.08522360424487496 -0,0.9389740137048652,0.06102598629513478 -0,0.773032358302647,0.22696764169735295 -0,0.6333153805801207,0.3666846194198793 -0,0.9769138087663678,0.023086191233632203 -0,0.9588785101187774,0.04112148988122255 -0,0.9922000041628516,0.00779999583714841 -0,0.7938824320561242,0.2061175679438758 -1,0.19653542938184934,0.8034645706181507 -0,0.9764137321562044,0.023586267843795583 -0,0.9793085138428244,0.020691486157175643 -0,0.9850545624482876,0.014945437551712404 -0,0.5451239210800168,0.45487607891998316 -0,0.9866927723585631,0.01330722764143688 -0,0.9999997593838,2.4061619996462724e-07 -0,0.6747535025727799,0.3252464974272201 -0,0.7750123244981622,0.22498767550183785 -0,0.9967596733073679,0.0032403266926320784 -0,0.9940267386628875,0.005973261337112512 -0,0.7318753201319532,0.2681246798680468 -1,0.37880577897249973,0.6211942210275003 -1,0.3927614390954258,0.6072385609045742 -0,0.894237724987558,0.10576227501244195 +0,0.7366740900558344,0.2633259099441656 +0,0.9761383855869508,0.023861614413049237 +1,0.3616048712185432,0.6383951287814569 +0,0.8607229832597558,0.13927701674024417 +1,0.1550841456995215,0.8449158543004784 +0,0.914776397858539,0.08522360214146096 +0,0.9389740130655516,0.061025986934448384 +0,0.7730323580609136,0.22696764193908636 +0,0.6333153790110737,0.3666846209889263 +0,0.9769138089194422,0.02308619108055776 +0,0.9588785105517647,0.04112148944823535 +0,0.9922000042873876,0.007799995712612362 +0,0.7938824317887884,0.20611756821121163 +1,0.19653543021868236,0.8034645697813176 +0,0.9764137324667297,0.02358626753327031 +0,0.9793085139756488,0.020691486024351224 +0,0.9850545624293854,0.014945437570614617 +0,0.5451239199364029,0.45487608006359714 +0,0.9866927724719976,0.013307227528002397 +0,0.9999997593626662,2.406373338370571e-07 +0,0.6747535018682195,0.3252464981317805 +0,0.7750123264200813,0.22498767357991867 +0,0.9967596729763148,0.0032403270236851522 +0,0.994026738695156,0.005973261304843991 +0,0.7318753199520099,0.26812468004799006 +1,0.37880577406230054,0.6211942259376995 +1,0.39276143785422646,0.6072385621457735 +0,0.8942377262218285,0.10576227377817149 0,1.0,0.0 -0,0.9748100265614459,0.025189973438554114 -0,0.9767045998800852,0.023295400119914822 -0,0.6110037931044224,0.38899620689557757 -0,0.8849466045952228,0.11505339540477721 -0,0.8570606464031777,0.1429393535968223 -0,0.9730999350064664,0.02690006499353359 -0,0.7821322495494681,0.21786775045053186 -1,0.09297065668816341,0.9070293433118366 -0,0.7414173190928417,0.2585826809071583 -0,0.8117119436319965,0.1882880563680035 -0,0.6675268459320026,0.3324731540679974 -0,0.9038712605088491,0.09612873949115086 -0,0.9736322855033741,0.026367714496625894 -0,0.9547432592537566,0.04525674074624342 -0,0.6480861910335591,0.35191380896644087 -1,0.270453218142616,0.729546781857384 -1,0.36730166610516723,0.6326983338948328 -0,0.7019472611210625,0.29805273887893746 -0,0.6415720538732839,0.35842794612671613 -0,0.9788532827152723,0.021146717284727723 -1,0.37303576155109447,0.6269642384489056 -1,0.2688005075883175,0.7311994924116825 -1,0.3656672673938042,0.6343327326061958 -0,0.9772576914387597,0.022742308561240265 -0,0.9830353346857819,0.01696466531421814 -0,0.973834551670669,0.026165448329330987 -0,0.965372847713349,0.03462715228665103 -1,0.48831475648288014,0.5116852435171199 -0,0.9629413294630923,0.0370586705369077 +0,0.9748100269152292,0.025189973084770778 +0,0.9767045998622561,0.023295400137743894 +0,0.6110037918743915,0.38899620812560853 +0,0.8849466032761938,0.11505339672380621 +0,0.8570606484880019,0.1429393515119981 +0,0.9730999349939957,0.02690006500600428 +0,0.7821322510023228,0.21786774899767725 +1,0.09297065727087991,0.9070293427291201 +0,0.7414173188974085,0.2585826811025915 +0,0.8117119464110604,0.18828805358893963 +0,0.6675268460558951,0.3324731539441049 +0,0.9038712589555709,0.09612874104442914 +0,0.9736322858516621,0.02636771414833794 +0,0.95474325964278,0.04525674035722005 +0,0.6480861910112509,0.35191380898874913 +1,0.2704532147079846,0.7295467852920154 +1,0.36730166127971187,0.6326983387202881 +0,0.7019472609934829,0.2980527390065171 +0,0.6415720532056668,0.3584279467943332 +0,0.978853282855106,0.021146717144894023 +1,0.373035756682749,0.626964243317251 +1,0.2688005059078027,0.7311994940921973 +1,0.365667267373486,0.634332732626514 +0,0.9772576914202065,0.022742308579793535 +0,0.9830353347092533,0.016964665290746694 +0,0.9738345517300135,0.026165448269986458 +0,0.9653728485423765,0.03462715145762352 +1,0.4883147640779541,0.5116852359220458 +0,0.962941329330509,0.03705867066949098 0,1.0,0.0 -0,0.9561928287886933,0.04380717121130673 -0,0.9637335714211123,0.03626642857888773 -0,0.6310798767026964,0.3689201232973036 -1,0.3613482454940674,0.6386517545059326 -0,0.9780883393812354,0.021911660618764595 -1,0.4022160532380508,0.5977839467619492 -0,0.9909019183976336,0.009098081602366359 -0,0.795773532467236,0.20422646753276397 -0,0.6367873585273063,0.3632126414726937 +0,0.9561928290848797,0.04380717091512032 +0,0.9637335716539331,0.03626642834606686 +0,0.6310798767156823,0.36892012328431767 +1,0.36134824572643454,0.6386517542735655 +0,0.9780883392774703,0.021911660722529702 +1,0.40221604817164147,0.5977839518283585 +0,0.9909019184764305,0.009098081523569501 +0,0.7957735323976826,0.20422646760231744 +0,0.6367873585283663,0.3632126414716337 0,1.0,0.0 -0,0.7007316769944025,0.29926832300559747 -0,0.9599153757285203,0.04008462427147974 -0,0.6415720538732839,0.35842794612671613 -0,0.6801277902248066,0.3198722097751934 -1,0.328938121198265,0.6710618788017351 -0,0.7039547859714389,0.2960452140285611 -1,0.2572509584765007,0.7427490415234993 -0,0.9813250522219219,0.0186749477780781 -0,0.9727497164606669,0.02725028353933312 -1,0.3175258049291606,0.6824741950708394 -1,0.13827694475200022,0.8617230552479997 -0,0.9870118730329409,0.012988126967059088 -0,0.9826202561669306,0.017379743833069394 +0,0.7007316773772397,0.29926832262276026 +0,0.9599153766629178,0.04008462333708218 +0,0.6415720532056668,0.3584279467943332 +0,0.6801277895152316,0.31987221048476844 +1,0.3289381183763417,0.6710618816236583 +0,0.7039547844246561,0.2960452155753439 +1,0.2572509547144248,0.7427490452855752 +0,0.9813250523933821,0.01867494760661792 +0,0.9727497166209574,0.02725028337904256 +1,0.3175258005293088,0.6824741994706912 +1,0.1382769453092777,0.8617230546907223 +0,0.987011873143035,0.012988126856965043 +0,0.9826202561918406,0.01737974380815943 0,1.0,0.0 -0,0.8768154041108259,0.12318459588917408 -0,0.9623487891016664,0.037651210898333565 -0,0.7815468516467412,0.2184531483532588 -0,0.9973999011220012,0.0026000988779988354 -0,0.9959336520469043,0.004066347953095684 -0,0.9813142625836055,0.018685737416394455 -0,0.97613838560401,0.023861614395989994 -0,0.6647250461652902,0.33527495383470984 -0,0.7991568456772803,0.2008431543227197 -1,0.2965990607986724,0.7034009392013276 -1,0.2914936430773607,0.7085063569226393 -0,0.9929256601786515,0.00707433982134853 -0,0.773032358302647,0.22696764169735295 -1,0.45735951835469935,0.5426404816453007 -1,0.3379174035242179,0.6620825964757822 -0,0.9753224724188423,0.02467752758115771 -0,0.9913348407851763,0.008665159214823692 -0,0.9772576914387597,0.022742308561240265 -0,0.9767045998800852,0.023295400119914822 -1,0.410491430558715,0.5895085694412849 -1,0.11019117188080332,0.8898088281191967 -1,0.1861191925859709,0.8138808074140291 -0,0.9696020861115172,0.030397913888482786 -0,0.6051423819492792,0.39485761805072084 -0,0.858496119237632,0.14150388076236797 -0,0.7758557849866691,0.22414421501333093 -0,0.7815468516467412,0.2184531483532588 -0,0.9685527876988234,0.03144721230117664 -1,0.43892332652522675,0.5610766734747732 -1,0.31505385053703444,0.6849461494629656 -0,0.9749654022297282,0.025034597770271838 -0,0.973884316268665,0.026115683731334993 -0,0.8759835612549101,0.12401643874508994 -0,0.9784071147271822,0.021592885272817774 -0,0.9705284415764033,0.029471558423596722 -0,0.9803278322989799,0.019672167701020093 -0,0.9842229721320847,0.01577702786791535 -0,0.6366910340709862,0.36330896592901385 -0,0.9533461767636459,0.04665382323635414 -0,0.6010947260512252,0.39890527394877484 -0,0.5638138272991664,0.4361861727008336 -0,0.9979774187183013,0.002022581281698743 -0,0.97613838560401,0.023861614395989994 -0,0.9676868019532548,0.03231319804674515 -1,0.17573413718839775,0.8242658628116022 -1,0.37880577897249973,0.6211942210275003 -0,0.97613838560401,0.023861614395989994 -0,0.9767045998800852,0.023295400119914822 -0,0.9813500738062599,0.018649926193740063 -0,0.8995114983695062,0.10048850163049383 -0,0.9596989600628204,0.040301039937179595 -0,0.9773028006147908,0.0226971993852092 -0,0.659128077180429,0.340871922819571 -1,0.3007992714526863,0.6992007285473136 -0,0.9808578941650442,0.01914210583495579 -1,0.3904478512502522,0.6095521487497477 -0,0.9821381069694676,0.017861893030532427 -0,0.7553094687058718,0.2446905312941282 -0,0.6592216368547027,0.3407783631452973 -0,0.8926426557166715,0.10735734428332855 -0,0.984950570837686,0.015049429162313999 -0,0.7420747645931464,0.25792523540685364 -0,0.7686881227505075,0.23131187724949254 -0,0.9369808073405764,0.06301919265942357 -0,0.8445799664291047,0.1554200335708953 -0,0.6251328675639949,0.3748671324360051 -1,0.274958040537795,0.7250419594622051 -1,0.3490088571579282,0.6509911428420718 -0,0.9871222552769059,0.012877744723094109 -0,0.8404668063027078,0.15953319369729224 -0,0.881429366894451,0.11857063310554905 -0,0.9751066600587104,0.024893339941289616 -0,0.9826202561669306,0.017379743833069394 -0,0.9022715865038218,0.09772841349617822 -0,0.9658179862052191,0.03418201379478092 -0,0.8657894958823975,0.1342105041176025 -0,0.9371503085540169,0.06284969144598307 -0,0.9842229721320847,0.01577702786791535 -0,0.7837825584828474,0.2162174415171526 -0,0.5997023847468465,0.40029761525315355 -0,0.975239732283379,0.024760267716620987 -0,0.7230547327372085,0.27694526726279145 -0,0.978659570143232,0.021340429856767984 -0,0.9080612044877384,0.09193879551226158 -0,0.9706021808827321,0.02939781911726791 -0,0.97613838560401,0.023861614395989994 -1,0.2569507134318178,0.7430492865681821 -0,0.8629058020645787,0.13709419793542132 -0,0.6630101467311648,0.33698985326883524 -0,0.9794616033682197,0.020538396631780254 -0,0.9780419396685811,0.021958060331418894 -1,0.29100415741248287,0.7089958425875171 -0,0.9853372142798187,0.014662785720181315 -0,0.9927507861130835,0.007249213886916461 -1,0.11685687255789182,0.8831431274421082 -0,0.9755587534049672,0.024441246595032773 -0,0.857606885730786,0.14239311426921397 -0,0.9707241038116405,0.029275896188359463 -0,0.9935971749533942,0.006402825046605831 -1,0.36730166610516723,0.6326983338948328 -1,0.36384957294551895,0.6361504270544811 -0,0.5883144938735076,0.41168550612649235 -1,0.22574916336866405,0.774250836631336 -0,0.6128287992132734,0.3871712007867266 -0,0.9778940716231216,0.022105928376878414 -0,0.5800205089288866,0.41997949107111343 -0,0.9812543925796274,0.018745607420372568 -0,0.7622205433473188,0.2377794566526812 -0,0.6078949082830236,0.3921050917169764 -0,0.6693328197246251,0.3306671802753749 -0,0.6186480145419742,0.38135198545802584 -0,0.9793564373764272,0.02064356262357281 -1,0.37880577897249973,0.6211942210275003 -0,0.7815468516467412,0.2184531483532588 -0,0.5887701683475733,0.41122983165242666 -1,0.32287938510731146,0.6771206148926885 -1,0.3904478512502522,0.6095521487497477 -0,0.9720901222954443,0.027909877704555663 -0,0.7011414575480455,0.29885854245195453 -1,0.3282798104785698,0.6717201895214302 -0,0.9873234201402851,0.012676579859714932 -0,0.7640633126449845,0.2359366873550155 -1,0.30175581402810203,0.698244185971898 -0,0.9627262159733226,0.03727378402667736 -0,0.9907917915236814,0.009208208476318647 -0,0.9890893611971258,0.01091063880287424 -0,0.7268721930528644,0.27312780694713557 -0,0.928238899302714,0.07176110069728603 -1,0.40704641356752674,0.5929535864324733 -0,0.5102742873264416,0.48972571267355836 -0,0.9643319022406791,0.035668097759320894 -0,0.6168575311658645,0.3831424688341355 -0,0.9140385507071764,0.08596144929282357 -0,0.9686435435132281,0.03135645648677188 -0,0.8935092430879537,0.10649075691204635 -0,0.9635988205833551,0.03640117941664489 -0,0.6253354768460283,0.3746645231539717 -1,0.4022160532380508,0.5977839467619492 -0,0.9838458312552877,0.016154168744712316 -0,0.9383171870550145,0.061682812944985455 -0,0.920237699226788,0.079762300773212 -0,0.6415720538732839,0.35842794612671613 -0,0.8092410330143365,0.19075896698566353 -1,0.056616178893629986,0.94338382110637 -1,0.24875472753382366,0.7512452724661763 -0,0.9805987442694896,0.019401255730510436 -1,0.35213992629563146,0.6478600737043685 -0,0.9808578941650442,0.01914210583495579 -0,0.7307349736228858,0.26926502637711425 -1,0.2396763193115835,0.7603236806884165 -0,0.8820307120648768,0.11796928793512318 -0,0.9322777652120916,0.0677222347879084 -0,0.9220937834389692,0.0779062165610308 -0,0.9757208259774772,0.024279174022522776 -0,0.9821381069694676,0.017861893030532427 -1,0.3392170031320995,0.6607829968679004 -0,0.9772576914387597,0.022742308561240265 -0,0.8717029836930945,0.1282970163069055 -0,0.9120862850977103,0.08791371490228972 -1,0.041463304725441054,0.958536695274559 -0,0.593218099998218,0.40678190000178205 -1,0.4511444806599532,0.5488555193400468 -0,0.9767045998800852,0.023295400119914822 -0,0.9755587534049672,0.024441246595032773 -0,0.9808713822066019,0.01912861779339814 -0,0.964190871321436,0.035809128678564006 -0,0.9319974785357926,0.06800252146420738 -0,0.9853945848824407,0.014605415117559306 -0,0.6472079563570786,0.3527920436429214 -0,0.6225204677474702,0.37747953225252984 -1,0.22147929906562872,0.7785207009343713 -0,0.9679753580308021,0.03202464196919785 -0,0.9283305131885002,0.07166948681149976 -0,0.6701840444047491,0.3298159555952509 -0,0.9767045998800852,0.023295400119914822 -0,0.6817917926619327,0.3182082073380673 -0,0.9507427454518338,0.04925725454816621 -0,0.9507427454518338,0.04925725454816621 -1,0.1826067358723613,0.8173932641276387 -1,0.41352278603993425,0.5864772139600658 -0,0.7046940610674329,0.29530593893256707 -0,0.9980527250722193,0.0019472749277806845 -0,0.6583565422712777,0.3416434577287223 -0,0.53290189538631,0.46709810461368995 -0,0.9799067014627577,0.020093298537242288 -0,0.9508342115070629,0.04916578849293707 -0,0.5661860144200872,0.4338139855799128 -0,0.7259853502878454,0.2740146497121546 -0,0.6878664083097877,0.31213359169021226 -0,0.9777979497151855,0.02220205028481448 -0,0.6186480145419742,0.38135198545802584 -0,0.9761611416334921,0.023838858366507898 -0,0.9784483751373906,0.02155162486260942 -0,0.7461045557820679,0.2538954442179321 -0,0.5712745914576014,0.4287254085423986 -0,0.9808945629895603,0.019105437010439652 -0,0.9846092949570385,0.015390705042961472 -0,0.7735554570945841,0.22644454290541594 -0,0.6624292492588936,0.33757075074110643 -0,0.9799505804111965,0.020049419588803463 -0,0.9999997819285003,2.1807149974684137e-07 -0,0.5227726122605694,0.47722738773943063 +0,0.8768154055591199,0.12318459444088015 +0,0.9623487861672393,0.03765121383276071 +0,0.7815468513940321,0.21845314860596787 +0,0.99739990083491,0.002600099165089964 +0,0.9959336521045374,0.004066347895462563 +0,0.9813142626131685,0.018685737386831547 +0,0.9761383855869508,0.023861614413049237 +0,0.6647250461092591,0.3352749538907409 +0,0.7991568481837753,0.2008431518162247 +1,0.29659905660549973,0.7034009433945003 +1,0.29149363893702795,0.708506361062972 +0,0.9929256602902455,0.0070743397097544625 +0,0.7730323580609136,0.22696764193908636 +1,0.45735951752775816,0.5426404824722418 +1,0.3379173994807573,0.6620826005192427 +0,0.9753224728002899,0.02467752719971006 +0,0.9913348408593766,0.00866515914062338 +0,0.9772576914202065,0.022742308579793535 +0,0.9767045998622561,0.023295400137743894 +1,0.4104914292621928,0.5895085707378072 +1,0.11019117169125255,0.8898088283087474 +1,0.1861191965581099,0.8138808034418901 +0,0.9696020857003677,0.030397914299632345 +0,0.6051423807249261,0.3948576192750739 +0,0.8584961190980261,0.14150388090197386 +0,0.7758557862448743,0.22414421375512572 +0,0.7815468513940321,0.21845314860596787 +0,0.9685527878923592,0.03144721210764079 +1,0.43892333275672624,0.5610766672432738 +1,0.31505384770357847,0.6849461522964215 +0,0.9749654022143511,0.02503459778564887 +0,0.9738843161933056,0.02611568380669438 +0,0.8759835618796061,0.12401643812039387 +0,0.9784071147677329,0.0215928852322671 +0,0.9705284418718368,0.029471558128163156 +0,0.9803278324262967,0.01967216757370327 +0,0.9842229721515545,0.01577702784844548 +0,0.6366910357258654,0.3633089642741346 +0,0.9533461717251008,0.04665382827489917 +0,0.6010947254410245,0.3989052745589755 +0,0.5638138273477918,0.43618617265220816 +0,0.9979774184888985,0.0020225815111014622 +0,0.9761383855869508,0.023861614413049237 +0,0.9676868019756236,0.03231319802437638 +1,0.17573413512291367,0.8242658648770863 +1,0.37880577406230054,0.6211942259376995 +0,0.9761383855869508,0.023861614413049237 +0,0.9767045998622561,0.023295400137743894 +0,0.9813500737389126,0.018649926261087413 +0,0.8995114967628692,0.10048850323713077 +0,0.9596989600780572,0.04030103992194278 +0,0.9773028006676456,0.022697199332354367 +0,0.6591280787418111,0.3408719212581889 +1,0.300799269678401,0.699200730321599 +0,0.9808578941962762,0.019142105803723775 +1,0.39044784625962714,0.6095521537403729 +0,0.9821381070816895,0.01786189291831053 +0,0.7553094684890868,0.24469053151091325 +0,0.6592216368097243,0.34077836319027566 +0,0.8926426540280399,0.10735734597196012 +0,0.984950571125145,0.015049428874855053 +0,0.7420747663132281,0.2579252336867719 +0,0.7686881225146359,0.23131187748536408 +0,0.9369808070176594,0.0630191929823406 +0,0.8445799686898358,0.15542003131016424 +0,0.6251328687057829,0.3748671312942171 +1,0.27495803606783786,0.7250419639321621 +1,0.34900885302844714,0.6509911469715528 +0,0.9871222553838781,0.0128777446161219 +0,0.8404667955437986,0.15953320445620145 +0,0.8814293584334166,0.11857064156658337 +0,0.9751066599843023,0.02489334001569765 +0,0.9826202561918406,0.01737974380815943 +0,0.9022715879562822,0.09772841204371785 +0,0.9658179863667856,0.03418201363321438 +0,0.8657894974642785,0.13421050253572153 +0,0.9371503088183251,0.06284969118167494 +0,0.9842229721515545,0.01577702784844548 +0,0.7837825617490334,0.21621743825096662 +0,0.599702384720568,0.400297615279432 +0,0.9752397324244505,0.0247602675755495 +0,0.7230547380501382,0.2769452619498618 +0,0.9786595705889387,0.02134042941106129 +0,0.9080612029867275,0.09193879701327246 +0,0.9706021814611216,0.02939781853887835 +0,0.9761383855869508,0.023861614413049237 +1,0.2569507152544114,0.7430492847455886 +0,0.862905803681123,0.13709419631887698 +0,0.6630101461101758,0.33698985388982416 +0,0.9794616032983153,0.02053839670168467 +0,0.9780419397885491,0.02195806021145086 +1,0.2910041558432064,0.7089958441567936 +0,0.9853372144075956,0.014662785592404415 +0,0.9927507862277846,0.007249213772215435 +1,0.11685686955973591,0.883143130440264 +0,0.9755587533887248,0.024441246611275225 +0,0.8576068762018659,0.14239312379813407 +0,0.9707241039878524,0.02927589601214764 +0,0.9935971753460706,0.006402824653929384 +1,0.36730166127971187,0.6326983387202881 +1,0.3638495718001922,0.6361504281998078 +0,0.5883144933615441,0.41168550663845593 +1,0.22574915998989567,0.7742508400101044 +0,0.6128287985851651,0.38717120141483485 +0,0.97789407183312,0.02210592816687995 +0,0.5800205113828826,0.4199794886171174 +0,0.9812543926991789,0.018745607300821088 +0,0.7622205444162569,0.23777945558374314 +0,0.6078949083451327,0.3921050916548673 +0,0.669332819025409,0.330667180974591 +0,0.6186480139053537,0.38135198609464627 +0,0.9793564375119685,0.020643562488031453 +1,0.37880577406230054,0.6211942259376995 +0,0.7815468513940321,0.21845314860596787 +0,0.5887701690375033,0.41122983096249666 +1,0.3228793806571786,0.6771206193428214 +1,0.39044784625962714,0.6095521537403729 +0,0.9720901224608925,0.027909877539107453 +0,0.7011414568216894,0.2988585431783106 +1,0.32827980597880174,0.6717201940211983 +0,0.9873234202471312,0.012676579752868844 +0,0.7640633157034611,0.2359366842965389 +1,0.3017558097825129,0.6982441902174872 +0,0.9627262161116898,0.03727378388831015 +0,0.9907917916867851,0.009208208313214894 +0,0.9890893613086038,0.01091063869139619 +0,0.7268721961214859,0.2731278038785141 +0,0.9282388987405293,0.07176110125947066 +1,0.4070464112965929,0.5929535887034071 +0,0.510274286882412,0.48972571311758795 +0,0.9643319021336151,0.03566809786638492 +0,0.6168575328986096,0.38314246710139044 +0,0.9140385492824467,0.08596145071755334 +0,0.9686435439377267,0.03135645606227333 +0,0.8935092436010006,0.10649075639899941 +0,0.9635988207168097,0.03640117928319031 +0,0.6253354768710926,0.3746645231289074 +1,0.40221604817164147,0.5977839518283585 +0,0.9838458313991028,0.016154168600897245 +0,0.9383171805339366,0.061682819466063354 +0,0.9202377001007358,0.0797622998992642 +0,0.6415720532056668,0.3584279467943332 +0,0.8092410358465393,0.19075896415346072 +1,0.056616179192792666,0.9433838208072073 +1,0.2487547288817662,0.7512452711182338 +0,0.9805987445612625,0.019401255438737497 +1,0.35213992554059886,0.6478600744594012 +0,0.9808578941962762,0.019142105803723775 +0,0.7307349739216485,0.26926502607835145 +1,0.23967632064468689,0.7603236793553131 +0,0.8820307134494493,0.11796928655055072 +0,0.9322777657685751,0.06772223423142487 +0,0.9220937824942432,0.07790621750575677 +0,0.9757208265446321,0.024279173455367897 +0,0.9821381070816895,0.01786189291831053 +1,0.33921699853517007,0.6607830014648299 +0,0.9772576914202065,0.022742308579793535 +0,0.8717029874472153,0.1282970125527847 +0,0.912086283647841,0.08791371635215905 +1,0.041463304874034795,0.9585366951259652 +0,0.5932181002935344,0.4067818997064656 +1,0.4511444778186148,0.5488555221813852 +0,0.9767045998622561,0.023295400137743894 +0,0.9755587533887248,0.024441246611275225 +0,0.9808713824807782,0.01912861751922179 +0,0.9641908717973325,0.03580912820266746 +0,0.9319974784536159,0.06800252154638409 +0,0.9853945851257573,0.014605414874242717 +0,0.6472079556824974,0.35279204431750255 +0,0.622520467974896,0.377479532025104 +1,0.2214792957413147,0.7785207042586852 +0,0.9679753581538668,0.032024641846133184 +0,0.9283305124700395,0.0716694875299605 +0,0.6701840443378602,0.32981595566213984 +0,0.9767045998622561,0.023295400137743894 +0,0.6817917916244844,0.31820820837551556 +0,0.9507427457949588,0.049257254205041234 +0,0.9507427457949588,0.049257254205041234 +1,0.18260673707126107,0.8173932629287389 +1,0.4135227839221499,0.5864772160778501 +0,0.7046940624226393,0.2953059375773607 +0,0.998052725111942,0.0019472748880580149 +0,0.6583565415837299,0.3416434584162701 +0,0.5329018942637862,0.4670981057362138 +0,0.9799067017438251,0.020093298256174896 +0,0.9508342116021917,0.049165788397808274 +0,0.5661860145721144,0.43381398542788563 +0,0.7259853521405621,0.27401464785943785 +0,0.6878664102638825,0.3121335897361175 +0,0.9777979496959514,0.02220205030404865 +0,0.6186480139053537,0.38135198609464627 +0,0.9761611413634372,0.023838858636562765 +0,0.9784483750662728,0.021551624933727198 +0,0.7461045555792662,0.25389544442073375 +0,0.5712745908970164,0.4287254091029836 +0,0.9808945629215596,0.019105437078440368 +0,0.9846092950926114,0.015390704907388586 +0,0.773555458188362,0.22644454181163798 +0,0.6624292538059193,0.3375707461940807 +0,0.9799505803419166,0.02004941965808338 +0,0.9999997819093465,2.180906535365068e-07 +0,0.5227726186961664,0.4772273813038336 0,1.0,0.0 -1,0.05192234900786895,0.948077650992131 -0,0.9777979497151855,0.02220205028481448 -0,0.9610645815655748,0.03893541843442516 -1,0.41710139861298506,0.582898601387015 -0,0.8926426557166715,0.10735734428332855 -1,0.3904478512502522,0.6095521487497477 -0,0.9817704900837013,0.01822950991629868 -0,0.9415700045382143,0.05842999546178573 -1,0.3904478512502522,0.6095521487497477 -0,0.9932897914391449,0.006710208560855135 -0,0.9861620233310429,0.013837976668957142 -0,0.9567868043486781,0.04321319565132187 -0,0.6838175424616044,0.3161824575383956 -0,0.9214601927205099,0.07853980727949006 -1,0.13135331855184773,0.8686466814481523 -0,0.7121354162505884,0.2878645837494116 -1,0.3449856979931819,0.6550143020068181 -1,0.3904478512502522,0.6095521487497477 -0,0.9773863150172287,0.022613684982771276 -0,0.8758070544081887,0.12419294559181127 -0,0.9395605462274876,0.060439453772512364 -0,0.7773186407578012,0.22268135924219878 -0,0.9814203796169445,0.018579620383055495 -0,0.9014586367368963,0.0985413632631037 -0,0.9794616033682197,0.020538396631780254 -1,0.2724377123071541,0.7275622876928459 -0,0.717150943211247,0.28284905678875305 -0,0.9821381069694676,0.017861893030532427 -1,0.3447515600509494,0.6552484399490506 -0,0.8934829275244796,0.10651707247552045 -0,0.7725336822884012,0.22746631771159875 -0,0.5951829293028902,0.4048170706971098 -0,0.7585750037917427,0.2414249962082573 -0,0.6310798767026964,0.3689201232973036 -0,0.9743580251011529,0.02564197489884712 -0,0.9700169908639349,0.02998300913606511 -0,0.9692809416254862,0.03071905837451383 -0,0.6255342531341683,0.3744657468658317 -0,0.9515001736588393,0.04849982634116068 -1,0.22627311189241597,0.773726888107584 -0,0.9910673244138196,0.008932675586180383 -0,0.9527960465273189,0.04720395347268114 -0,0.6755062593366195,0.32449374066338055 -1,0.19683273792642442,0.8031672620735756 -0,0.97613838560401,0.023861614395989994 -0,0.9500364174525444,0.04996358254745559 -0,0.6701840444047491,0.3298159555952509 -0,0.9805857895898834,0.019414210410116595 -1,0.17537885296045486,0.8246211470395451 -1,0.3282798104785698,0.6717201895214302 -0,0.9904531422046708,0.009546857795329156 -1,0.41493092896750516,0.5850690710324948 -0,0.9767045998800852,0.023295400119914822 -0,0.9482466598422028,0.0517533401577972 -0,0.9780545765765519,0.021945423423448074 -0,0.8484051522418296,0.15159484775817045 -0,0.659128077180429,0.340871922819571 -0,0.9735121737263935,0.026487826273606463 +1,0.05192234933466734,0.9480776506653327 +0,0.9777979496959514,0.02220205030404865 +0,0.9610645818205849,0.03893541817941515 +1,0.4171013956859011,0.5828986043140989 +0,0.8926426540280399,0.10735734597196012 +1,0.39044784625962714,0.6095521537403729 +0,0.9817704902502314,0.018229509749768558 +0,0.9415700047585644,0.05842999524143555 +1,0.39044784625962714,0.6095521537403729 +0,0.9932897916626584,0.006710208337341594 +0,0.986162023753295,0.01383797624670502 +0,0.9567868039217803,0.04321319607821972 +0,0.6838175439139088,0.3161824560860912 +0,0.9214601913933965,0.07853980860660348 +1,0.1313533191541949,0.8686466808458051 +0,0.7121354161045903,0.2878645838954097 +1,0.344985694357669,0.655014305642331 +1,0.39044784625962714,0.6095521537403729 +0,0.9773863149449503,0.02261368505504968 +0,0.8758070529238325,0.12419294707616746 +0,0.9395605468020327,0.060439453197967286 +0,0.7773186405104566,0.22268135948954337 +0,0.9814203796019348,0.018579620398065155 +0,0.9014586382836351,0.09854136171636485 +0,0.9794616032983153,0.02053839670168467 +1,0.27243771368614894,0.7275622863138511 +0,0.717150943056396,0.28284905694360396 +0,0.9821381070816895,0.01786189291831053 +1,0.3447515554065841,0.6552484445934159 +0,0.8934829299023399,0.1065170700976601 +0,0.7725336862089903,0.22746631379100968 +0,0.5951829287020731,0.4048170712979269 +0,0.7585750081917095,0.24142499180829047 +0,0.6310798767156823,0.36892012328431767 +0,0.9743580250866918,0.02564197491330822 +0,0.9700169910457604,0.029983008954239554 +0,0.9692809420260412,0.030719057973958797 +0,0.6255342588957745,0.3744657411042255 +0,0.9515001738247686,0.04849982617523141 +1,0.22627311639363287,0.7737268836063671 +0,0.9910673234957208,0.008932676504279202 +0,0.9527960468152098,0.047203953184790204 +0,0.6755062608262457,0.32449373917375435 +1,0.1968327395488646,0.8031672604511354 +0,0.9761383855869508,0.023861614413049237 +0,0.9500364174794005,0.049963582520599514 +0,0.6701840443378602,0.32981595566213984 +0,0.9805857896402582,0.01941421035974178 +1,0.17537885413688956,0.8246211458631104 +1,0.32827980597880174,0.6717201940211983 +0,0.990453142361508,0.009546857638491946 +1,0.41493092625639294,0.5850690737436071 +0,0.9767045998622561,0.023295400137743894 +0,0.9482466595330342,0.05175334046696578 +0,0.9780545768626634,0.021945423137336606 +0,0.8484051539632465,0.15159484603675355 +0,0.6591280787418111,0.3408719212581889 +0,0.9735121742885786,0.026487825711421387 0,1.0,0.0 -0,0.9945966369235769,0.0054033630764230844 -0,0.5984224194818467,0.4015775805181533 -0,0.7598264608629761,0.24017353913702388 -0,0.6860176319153672,0.31398236808463276 -0,0.7163696351080917,0.2836303648919083 -0,0.98344066699051,0.016559333009489974 -1,0.17227531109902927,0.8277246889009707 -0,0.9668771747296341,0.03312282527036592 -0,0.9522399786844671,0.04776002131553292 -1,0.31626953274252895,0.6837304672574711 -0,0.6490124643552279,0.35098753564477214 +0,0.9945966370475456,0.00540336295245436 +0,0.5984224179319861,0.40157758206801386 +0,0.7598264606395778,0.24017353936042218 +0,0.6860176357462516,0.31398236425374837 +0,0.7163696343725674,0.2836303656274326 +0,0.9834406670125966,0.01655933298740342 +1,0.17227531335315951,0.8277246866468405 +0,0.9668771749100368,0.033122825089963226 +0,0.952239973534768,0.04776002646523203 +1,0.31626952887865,0.68373047112135 +0,0.6490124584651837,0.35098754153481626 0,1.0,0.0 -0,0.6351026992895143,0.36489730071048565 -0,0.6755975361350013,0.3244024638649987 -0,0.9909710819731536,0.009028918026846355 -1,0.29759550585831684,0.7024044941416832 -0,0.9887563890950697,0.011243610904930312 -0,0.9264334365470878,0.07356656345291224 -0,0.8428441466259597,0.15715585337404026 -1,0.45126217888381975,0.5487378211161802 -0,0.8978001096522159,0.1021998903477841 -0,0.9500364174525444,0.04996358254745559 -0,0.911855794310913,0.08814420568908699 -0,0.9551509517368554,0.04484904826314462 -0,0.968220862919782,0.031779137080217956 -0,0.5286904640127911,0.4713095359872089 -1,0.3613195508306997,0.6386804491693003 -1,0.27366198318409385,0.7263380168159062 -0,0.9353902532962287,0.06460974670377129 -0,0.8565526242159648,0.1434473757840352 -1,0.19392211836682638,0.8060778816331736 -0,0.9707241038116405,0.029275896188359463 -0,0.9059871503064145,0.09401284969358548 -0,0.8529462974145507,0.14705370258544925 -0,0.9003288314466549,0.09967116855334512 -0,0.5572918206039901,0.4427081793960099 -0,0.958207688015087,0.041792311984912955 -0,0.9893431551909128,0.01065684480908724 -0,0.7062695270340532,0.2937304729659468 -0,0.8370660049203301,0.16293399507966988 -0,0.9898014220837262,0.010198577916273766 -0,0.9770089536685448,0.02299104633145521 -0,0.9772302004418826,0.02276979955811742 -0,0.9605967177880145,0.039403282211985524 -0,0.9799505804111965,0.020049419588803463 -0,0.952883888747802,0.047116111252197945 -0,0.9726470731958986,0.027352926804101396 -0,0.9108468565558293,0.08915314344417069 -0,0.9892927156172252,0.010707284382774795 -1,0.32287938510731146,0.6771206148926885 -1,0.45972227541871624,0.5402777245812838 -0,0.8238796960936805,0.1761203039063195 -1,0.04208438686322339,0.9579156131367766 -0,0.9838364740336993,0.016163525966300663 -0,0.6374772073614484,0.3625227926385516 -0,0.97613838560401,0.023861614395989994 -0,0.9769735668365422,0.02302643316345776 -0,0.9559433515909989,0.04405664840900114 -0,0.977727330053908,0.022272669946092005 -0,0.6137415402887543,0.3862584597112457 -0,0.9749892482326861,0.025010751767313932 -0,0.97613838560401,0.023861614395989994 -0,0.6594122267699262,0.34058777323007383 -0,0.6999248423041687,0.30007515769583126 -0,0.9932113573780084,0.006788642621991636 -0,0.9746388376864413,0.02536116231355867 -0,0.8686682898530724,0.13133171014692757 -1,0.41299596561669166,0.5870040343833083 -1,0.20381055516071273,0.7961894448392872 -0,0.9025142840539233,0.09748571594607669 -1,0.35594673424773043,0.6440532657522695 -0,0.9772576914387597,0.022742308561240265 -0,0.9737363090430736,0.026263690956926378 -0,0.9929256601786515,0.00707433982134853 -0,0.7018601265366639,0.29813987346333615 -0,0.9929256601786515,0.00707433982134853 -1,0.3337260440268404,0.6662739559731596 -0,0.8877136694310461,0.11228633056895387 -0,0.711345830228956,0.28865416977104397 -0,0.7815468516467412,0.2184531483532588 -0,0.850042944061792,0.14995705593820796 -1,0.31295753643396185,0.6870424635660382 -0,0.978815477316713,0.021184522683286966 -0,0.7642860913204171,0.23571390867958286 +0,0.6351026936063835,0.3648973063936165 +0,0.6755975360574588,0.32440246394254124 +0,0.990971081030992,0.009028918969008037 +1,0.2975955049972079,0.7024044950027921 +0,0.988756389237555,0.011243610762444955 +0,0.9264334374524738,0.07356656254752625 +0,0.8428441479638675,0.15715585203613247 +1,0.4512621780714139,0.5487378219285861 +0,0.8978001078025653,0.10219989219743475 +0,0.9500364174794005,0.049963582520599514 +0,0.9118557917541278,0.08814420824587221 +0,0.955150952041949,0.044849047958051 +0,0.9682208635742797,0.03177913642572028 +0,0.5286904635317635,0.4713095364682365 +1,0.3613195502602945,0.6386804497397055 +1,0.2736619814743833,0.7263380185256167 +0,0.9353902541293863,0.06460974587061374 +0,0.8565526222839714,0.14344737771602856 +1,0.19392211784854863,0.8060778821514514 +0,0.9707241039878524,0.02927589601214764 +0,0.905987148779409,0.094012851220591 +0,0.8529462953454613,0.1470537046545387 +0,0.9003288319167283,0.0996711680832717 +0,0.5572918194408606,0.4427081805591394 +0,0.9582076882941454,0.04179231170585462 +0,0.989343155382639,0.01065684461736105 +0,0.7062695263043187,0.2937304736956813 +0,0.8370660041893876,0.1629339958106124 +0,0.9898014222518496,0.010198577748150361 +0,0.9770089535620886,0.02299104643791139 +0,0.9772302008292029,0.022769799170797134 +0,0.9605967179848808,0.03940328201511922 +0,0.9799505803419166,0.02004941965808338 +0,0.952883888797594,0.047116111202406 +0,0.9726470735408894,0.027352926459110583 +0,0.9108468557064651,0.08915314429353494 +0,0.9892927157947285,0.01070728420527145 +1,0.3228793806571786,0.6771206193428214 +1,0.45972227568400376,0.5402777243159962 +0,0.8238796995804206,0.17612030041957938 +1,0.04208438686532961,0.9579156131346704 +0,0.9838364740544525,0.016163525945547486 +0,0.6374772091239385,0.36252279087606154 +0,0.9761383855869508,0.023861614413049237 +0,0.976973567138719,0.023026432861281032 +0,0.955943349137493,0.044056650862506985 +0,0.977727330210404,0.022272669789595967 +0,0.6137415403383895,0.38625845966161054 +0,0.9749892479521924,0.02501075204780756 +0,0.9761383855869508,0.023861614413049237 +0,0.6594122322250976,0.3405877677749024 +0,0.699924839637681,0.30007516036231896 +0,0.9932113574327981,0.006788642567201908 +0,0.9746388378321129,0.025361162167887086 +0,0.8686682901122368,0.13133170988776321 +1,0.4129959633232711,0.5870040366767288 +1,0.20381055757828423,0.7961894424217157 +0,0.9025142845103015,0.09748571548969853 +1,0.35594672951100115,0.6440532704889989 +0,0.9772576914202065,0.022742308579793535 +0,0.9737363090295806,0.026263690970419362 +0,0.9929256602902455,0.0070743397097544625 +0,0.7018601279051392,0.2981398720948608 +0,0.9929256602902455,0.0070743397097544625 +1,0.3337260394781259,0.6662739605218742 +0,0.8877136695031134,0.11228633049688663 +0,0.7113458294961652,0.2886541705038348 +0,0.7815468513940321,0.21845314860596787 +0,0.8500429433525316,0.1499570566474684 +1,0.3129575342308808,0.6870424657691192 +0,0.9788154776744667,0.02118452232553325 +0,0.764286091090656,0.23571390890934396 0,1.0,0.0 -0,0.9486105344906257,0.05138946550937429 -0,0.97613838560401,0.023861614395989994 -1,0.2464031220833893,0.7535968779166107 -0,0.9717819060045612,0.028218093995438842 -0,0.5864738813880147,0.4135261186119853 -0,0.7598264608629761,0.24017353913702388 -0,0.7045762476597642,0.29542375234023577 -1,0.048872477382925376,0.9511275226170747 -0,0.934924501738447,0.06507549826155301 -0,0.9873234201402851,0.012676579859714932 -0,0.787924945837645,0.21207505416235495 -0,0.9846003730459517,0.015399626954048284 -0,0.905826754539612,0.09417324546038797 -0,0.9570288009882171,0.04297119901178292 -0,0.9918931367104831,0.00810686328951693 -1,0.31295753643396185,0.6870424635660382 -1,0.3904478512502522,0.6095521487497477 -0,0.9654337953416712,0.034566204658328825 -0,0.8609116934490035,0.13908830655099647 -1,0.12201184842360242,0.8779881515763975 -0,0.9730999350064664,0.02690006499353359 -0,0.9717819060045612,0.028218093995438842 -0,0.7598264608629761,0.24017353913702388 -0,0.9849775957264689,0.015022404273531076 -0,0.8693554463206092,0.13064455367939076 -0,0.9821381069694676,0.017861893030532427 -0,0.9580289711018808,0.04197102889811921 -0,0.9028322739129565,0.0971677260870435 -0,0.9818561684313816,0.01814383156861843 -0,0.7604522236782896,0.23954777632171043 -1,0.27649275180389377,0.7235072481961062 -1,0.25113158749034115,0.7488684125096589 -0,0.7119581250750853,0.28804187492491473 -0,0.5722169126179493,0.42778308738205073 -0,0.6358967681508146,0.36410323184918536 -0,0.7420747645931464,0.25792523540685364 +0,0.9486105347661538,0.05138946523384624 +0,0.9761383855869508,0.023861614413049237 +1,0.2464031200910259,0.7535968799089741 +0,0.9717819059943048,0.028218094005695193 +0,0.5864738825353462,0.41352611746465384 +0,0.7598264606395778,0.24017353936042218 +0,0.7045762477013637,0.29542375229863627 +1,0.048872477540058426,0.9511275224599416 +0,0.934924500449688,0.065075499550312 +0,0.9873234202471312,0.012676579752868844 +0,0.787924946771849,0.212075053228151 +0,0.9846003730641867,0.015399626935813315 +0,0.9058267525868762,0.09417324741312383 +0,0.9570288012430351,0.04297119875696487 +0,0.991893136787573,0.00810686321242704 +1,0.3129575342308808,0.6870424657691192 +1,0.39044784625962714,0.6095521537403729 +0,0.9654337958189724,0.03456620418102763 +0,0.8609116914126078,0.13908830858739218 +1,0.12201184990906863,0.8779881500909313 +0,0.9730999349939957,0.02690006500600428 +0,0.9717819059943048,0.028218094005695193 +0,0.7598264606395778,0.24017353936042218 +0,0.9849775958580892,0.015022404141910806 +0,0.8693554479535834,0.13064455204641656 +0,0.9821381070816895,0.01786189291831053 +0,0.9580289713489696,0.04197102865103042 +0,0.9028322744008304,0.09716772559916964 +0,0.9818561685431735,0.01814383145682652 +0,0.7604522252780715,0.23954777472192845 +1,0.27649274782420624,0.7235072521757937 +1,0.25113158332170604,0.748868416678294 +0,0.7119581259062812,0.28804187409371884 +0,0.5722169127569281,0.4277830872430719 +0,0.6358967674904791,0.3641032325095209 +0,0.7420747663132281,0.2579252336867719 0,1.0,0.0 -0,0.9609570045283312,0.039042995471668784 -0,0.9758089923952735,0.024191007604726478 -1,0.1998485354180392,0.8001514645819607 -0,0.9302887004782149,0.06971129952178512 -0,0.5933299419552538,0.4066700580447462 -0,0.97403863670434,0.02596136329566001 -1,0.3616048760001127,0.6383951239998873 -0,0.731119435449719,0.268880564550281 -0,0.9346978179428364,0.06530218205716365 -0,0.5041268797100854,0.4958731202899146 -0,0.9628640725524813,0.0371359274475187 -0,0.6007982719151775,0.39920172808482246 -1,0.4269202259510869,0.5730797740489131 -0,0.9404520056528636,0.059547994347136424 -0,0.9661002181576414,0.033899781842358645 -0,0.9100940428144673,0.08990595718553274 -0,0.9808578941650442,0.01914210583495579 -0,0.9380645074734132,0.06193549252658681 -0,0.9730999350064664,0.02690006499353359 -0,0.9760626164748324,0.02393738352516761 -0,0.9916299879961867,0.008370012003813265 -0,0.6358967681508146,0.36410323184918536 -0,0.7221131832365618,0.2778868167634382 -0,0.9601337398725822,0.039866260127417785 -0,0.9871222552769059,0.012877744723094109 -0,0.9803906024272447,0.01960939757275526 -0,0.9846092949570385,0.015390705042961472 -0,0.8374501832452907,0.16254981675470925 -1,0.3616048760001127,0.6383951239998873 -0,0.7857169103352979,0.2142830896647021 -0,0.9276243080700263,0.07237569192997373 -1,0.21382438597853393,0.7861756140214661 -0,0.9652651309931448,0.034734869006855185 -0,0.9794222419788882,0.020577758021111836 -0,0.6472079563570786,0.3527920436429214 -0,0.9214601927205099,0.07853980727949006 -0,0.9730999350064664,0.02690006499353359 -0,0.6463314663740927,0.35366853362590733 -0,0.9920073366440121,0.007992663355987917 -1,0.32576409774503945,0.6742359022549606 -0,0.9749654022297282,0.025034597770271838 -0,0.7857169103352979,0.2142830896647021 -0,0.6801277902248066,0.3198722097751934 -0,0.9850545624482876,0.014945437551712404 -0,0.9925716215901326,0.007428378409867431 -0,0.9010191116831568,0.09898088831684315 -1,0.22648961202220239,0.7735103879777976 -1,0.31222006096408356,0.6877799390359165 -1,0.3971383646420456,0.6028616353579543 -0,0.9481986713206874,0.05180132867931264 -0,0.7037180641041113,0.2962819358958887 +0,0.9609570042689161,0.03904299573108394 +0,0.9758089929172808,0.02419100708271915 +1,0.19984853780859793,0.8001514621914021 +0,0.9302886991144547,0.06971130088554534 +0,0.593329940743595,0.406670059256405 +0,0.9740386370504819,0.02596136294951812 +1,0.3616048712185432,0.6383951287814569 +0,0.7311194347078946,0.26888056529210536 +0,0.9346978182531925,0.06530218174680746 +0,0.5041268792786964,0.49587312072130363 +0,0.9628640727924995,0.037135927207500474 +0,0.6007982756798352,0.39920172432016476 +1,0.4269202231937474,0.5730797768062525 +0,0.9404520059261459,0.05954799407385414 +0,0.9661002182772175,0.03389978172278252 +0,0.9100940413391699,0.08990595866083007 +0,0.9808578941962762,0.019142105803723775 +0,0.9380645071759472,0.06193549282405275 +0,0.9730999349939957,0.02690006500600428 +0,0.9760626166463277,0.023937383353672348 +0,0.9916299882974903,0.008370011702509728 +0,0.6358967674904791,0.3641032325095209 +0,0.722113183073102,0.277886816926898 +0,0.9601337401353958,0.03986625986460424 +0,0.9871222553838781,0.0128777446161219 +0,0.980390602460208,0.019609397539791962 +0,0.9846092950926114,0.015390704907388586 +0,0.8374501811466609,0.16254981885333908 +1,0.3616048712185432,0.6383951287814569 +0,0.7857169100774702,0.21428308992252976 +0,0.9276243083807125,0.07237569161928747 +1,0.21382438725992392,0.7861756127400761 +0,0.9652651311854454,0.034734868814554565 +0,0.9794222420155089,0.02057775798449113 +0,0.6472079556824974,0.35279204431750255 +0,0.9214601913933965,0.07853980860660348 +0,0.9730999349939957,0.02690006500600428 +0,0.6463314657738727,0.3536685342261273 +0,0.9920073367720055,0.007992663227994523 +1,0.3257640948385816,0.6742359051614184 +0,0.9749654022143511,0.02503459778564887 +0,0.7857169100774702,0.21428308992252976 +0,0.6801277895152316,0.31987221048476844 +0,0.9850545624293854,0.014945437570614617 +0,0.9925716217080248,0.0074283782919751795 +0,0.9010191115739464,0.09898088842605357 +1,0.2264896133307178,0.7735103866692822 +1,0.312220056615111,0.687779943384889 +1,0.3971383620050483,0.6028616379949516 +0,0.948198671545288,0.05180132845471197 +0,0.7037180652456597,0.2962819347543403 0,1.0,0.0 -0,0.9860141570079329,0.013985842992067066 -1,0.23522306324716594,0.7647769367528341 -0,0.6647250461652902,0.33527495383470984 +0,0.9860141573800355,0.013985842619964495 +1,0.23522306457237369,0.7647769354276264 +0,0.6647250461092591,0.3352749538907409 0,1.0,0.0 -0,0.9749654022297282,0.025034597770271838 -0,0.9756967467035718,0.02430325329642824 -0,0.9778728731963393,0.02212712680366069 -0,0.9785112061617521,0.021488793838247866 -0,0.9920073366440121,0.007992663355987917 -1,0.37880577897249973,0.6211942210275003 -0,0.9864041270721176,0.013595872927882446 -0,0.9803278322989799,0.019672167701020093 -0,0.9935879937847124,0.006412006215287591 -0,0.9867610695509226,0.013238930449077424 -0,0.740673289914856,0.25932671008514396 -0,0.9767045998800852,0.023295400119914822 -0,0.9338141836348829,0.06618581636511711 -0,0.9822473115725889,0.017752688427411067 -0,0.6368946921032396,0.36310530789676043 -0,0.6755975361350013,0.3244024638649987 -0,0.9176466826346666,0.08235331736533336 -0,0.9661645736446729,0.0338354263553271 -0,0.915951458102578,0.08404854189742195 -0,0.7170664618268551,0.2829335381731449 -0,0.9677949699672405,0.03220503003275954 -0,0.9749654022297282,0.025034597770271838 -0,0.6854546714084185,0.31454532859158146 -1,0.40814360012373946,0.5918563998762605 -0,0.9929256601786515,0.00707433982134853 -0,0.6055919173706806,0.39440808262931937 -0,0.9657337274666666,0.034266272533333364 -0,0.9387539419012776,0.06124605809872241 -1,0.3846102957588268,0.6153897042411731 -1,0.27649275180389377,0.7235072481961062 -1,0.052138961396156626,0.9478610386038434 -0,0.9803906024272447,0.01960939757275526 -0,0.9178256243869165,0.0821743756130835 -1,0.3616048760001127,0.6383951239998873 -0,0.5336135179125612,0.4663864820874388 -0,0.9927507861130835,0.007249213886916461 -0,0.8867025542761262,0.11329744572387379 -1,0.3226091748622674,0.6773908251377325 -1,0.2974384629543519,0.7025615370456482 -0,0.9762278623234297,0.02377213767657027 -0,0.9873234201402851,0.012676579859714932 -1,0.4140979894687374,0.5859020105312627 -0,0.9767045998800852,0.023295400119914822 -0,0.6689249916390864,0.33107500836091364 -0,0.7213402561300846,0.27865974386991543 -0,0.9682985069746772,0.03170149302532277 -0,0.9726949401728794,0.027305059827120615 -0,0.949578082840758,0.05042191715924205 -0,0.9755587534049672,0.024441246595032773 -1,0.1518886518412605,0.8481113481587395 -1,0.3846102957588268,0.6153897042411731 -0,0.9777979497151855,0.02220205028481448 -0,0.9731554329986032,0.026844567001396813 +0,0.9749654022143511,0.02503459778564887 +0,0.9756967466296698,0.024303253370330236 +0,0.9778728736722343,0.0221271263277657 +0,0.9785112062511039,0.021488793748896118 +0,0.9920073367720055,0.007992663227994523 +1,0.37880577406230054,0.6211942259376995 +0,0.986404127219007,0.013595872780992946 +0,0.9803278324262967,0.01967216757370327 +0,0.9935879939339564,0.006412006066043641 +0,0.9867610695308057,0.013238930469194332 +0,0.740673297174405,0.259326702825595 +0,0.9767045998622561,0.023295400137743894 +0,0.9338141841764737,0.06618581582352634 +0,0.9822473117318246,0.017752688268175443 +0,0.6368946937821873,0.3631053062178127 +0,0.6755975360574588,0.32440246394254124 +0,0.917646682995381,0.08235331700461901 +0,0.9661645736951598,0.033835426304840155 +0,0.9159514567026965,0.08404854329730349 +0,0.7170664631225085,0.28293353687749145 +0,0.9677949701668808,0.032205029833119236 +0,0.9749654022143511,0.02503459778564887 +0,0.6854546706941573,0.31454532930584267 +1,0.40814359502127695,0.591856404978723 +0,0.9929256602902455,0.0070743397097544625 +0,0.6055919173323068,0.3944080826676932 +0,0.9657337274582817,0.03426627254171832 +0,0.9387539418202777,0.061246058179722285 +1,0.38461029080785525,0.6153897091921448 +1,0.27649274782420624,0.7235072521757937 +1,0.052138961870479235,0.9478610381295207 +0,0.980390602460208,0.019609397539791962 +0,0.9178256230115883,0.08217437698841168 +1,0.3616048712185432,0.6383951287814569 +0,0.5336135153196113,0.4663864846803887 +0,0.9927507862277846,0.007249213772215435 +0,0.8867025526399132,0.11329744736008684 +1,0.32260917440042336,0.6773908255995766 +1,0.2974384612814059,0.7025615387185942 +0,0.9762278623727263,0.023772137627273704 +0,0.9873234202471312,0.012676579752868844 +1,0.4140979843314967,0.5859020156685033 +0,0.9767045998622561,0.023295400137743894 +0,0.6689249907588781,0.3310750092411219 +0,0.7213402553921456,0.27865974460785436 +0,0.9682985072050212,0.0317014927949788 +0,0.9726949403626638,0.027305059637336204 +0,0.9495780831940176,0.0504219168059824 +0,0.9755587533887248,0.024441246611275225 +1,0.15188865149329608,0.8481113485067039 +1,0.38461029080785525,0.6153897091921448 +0,0.9777979496959514,0.02220205030404865 +0,0.9731554329149872,0.026844567085012816 0,1.0,0.0 -0,0.773032358302647,0.22696764169735295 -1,0.17896426058032214,0.8210357394196779 -0,0.8695139474334876,0.13048605256651236 -0,0.7821322495494681,0.21786775045053186 -0,0.9749654022297282,0.025034597770271838 -0,0.7675204452535409,0.2324795547464591 -1,0.3854229399707375,0.6145770600292625 -1,0.3971383646420456,0.6028616353579543 -0,0.7815468516467412,0.2184531483532588 -0,0.5638138272991664,0.4361861727008336 -0,0.9825880917703266,0.017411908229673423 -0,0.9405274829117715,0.05947251708822854 -1,0.11186014103090974,0.8881398589690903 -0,0.7414173190928417,0.2585826809071583 -0,0.8301889876497512,0.16981101235024876 -0,0.773032358302647,0.22696764169735295 -0,0.773032358302647,0.22696764169735295 -0,0.8263230418569831,0.17367695814301687 -1,0.42328784222330795,0.576712157776692 -1,0.243780112172221,0.756219887827779 -0,0.9882144625831446,0.011785537416855396 -0,0.8467043000586474,0.15329569994135261 -0,0.7270215042603512,0.27297849573964883 -0,0.9850545624482876,0.014945437551712404 -1,0.10473557975954373,0.8952644202404563 -0,0.6862838461175894,0.3137161538824106 -0,0.9927507861130835,0.007249213886916461 -1,0.3109752155188297,0.6890247844811703 -0,0.9784483751373906,0.02155162486260942 -0,0.9846003730459517,0.015399626954048284 -0,0.9762278623234297,0.02377213767657027 -0,0.6390080608111259,0.36099193918887407 -0,0.6160181814400543,0.38398181855994573 -1,0.3784010666555574,0.6215989333444426 -0,0.9624344981827987,0.03756550181720131 -0,0.9856883490770616,0.014311650922938401 -0,0.9671908842104556,0.032809115789544374 -0,0.7403031549259417,0.2596968450740583 -0,0.7747589179763041,0.22524108202369586 -0,0.9564152221002078,0.043584777899792204 +0,0.7730323580609136,0.22696764193908636 +1,0.17896426176806565,0.8210357382319343 +0,0.8695139454865217,0.13048605451347828 +0,0.7821322510023228,0.21786774899767725 +0,0.9749654022143511,0.02503459778564887 +0,0.7675204483638716,0.23247955163612843 +1,0.38542293738605227,0.6145770626139477 +1,0.3971383620050483,0.6028616379949516 +0,0.7815468513940321,0.21845314860596787 +0,0.5638138273477918,0.43618617265220816 +0,0.9825880917103655,0.01741190828963446 +0,0.9405274824113884,0.059472517588611606 +1,0.11186014058261491,0.888139859417385 +0,0.7414173188974085,0.2585826811025915 +0,0.8301889887592323,0.1698110112407677 +0,0.7730323580609136,0.22696764193908636 +0,0.7730323580609136,0.22696764193908636 +0,0.8263230400160382,0.17367695998396182 +1,0.4232878387805313,0.5767121612194688 +1,0.2437801110110617,0.7562198889889383 +0,0.9882144626807815,0.011785537319218498 +0,0.8467043008714716,0.15329569912852836 +0,0.7270215040885271,0.27297849591147294 +0,0.9850545624293854,0.014945437570614617 +1,0.10473558109337044,0.8952644189066296 +0,0.6862838460193694,0.3137161539806306 +0,0.9927507862277846,0.007249213772215435 +1,0.31097521170118436,0.6890247882988156 +0,0.9784483750662728,0.021551624933727198 +0,0.9846003730641867,0.015399626935813315 +0,0.9762278623727263,0.023772137627273704 +0,0.6390080592407422,0.3609919407592578 +0,0.6160181798781983,0.3839818201218017 +1,0.37840106714279476,0.6215989328572052 +0,0.9624344991309655,0.03756550086903454 +0,0.9856883492011007,0.01431165079889929 +0,0.9671908845649342,0.032809115435065817 +0,0.7403031551981748,0.2596968448018252 +0,0.7747589128157573,0.22524108718424274 +0,0.9564152229581585,0.043584777041841494 0,1.0,0.0 -0,0.5508329781381863,0.4491670218618137 -0,0.7642860913204171,0.23571390867958286 -0,0.593218099998218,0.40678190000178205 -0,0.6922863072758125,0.30771369272418747 -0,0.5549147925307855,0.44508520746921454 -0,0.8401733674055579,0.15982663259444208 -1,0.3684112332812383,0.6315887667187616 -1,0.45821142255871994,0.5417885774412801 -0,0.973884316268665,0.026115683731334993 -0,0.9767179881086949,0.023282011891305077 -1,0.07535336993162303,0.924646630068377 -0,0.9873234201402851,0.012676579859714932 -0,0.9842229721320847,0.01577702786791535 -0,0.8508466704095153,0.14915332959048466 -0,0.8886349755303367,0.11136502446966334 -0,0.9386318078302315,0.06136819216976852 -0,0.9618329122412806,0.038167087758719354 -0,0.908310010704805,0.091689989295195 -0,0.717150943211247,0.28284905678875305 -0,0.7712632891691192,0.22873671083088076 -0,0.9567707243526508,0.04322927564734924 -0,0.5591870178468379,0.4408129821531621 -0,0.9934468435715458,0.006553156428454221 -0,0.9794222419788882,0.020577758021111836 +0,0.5508329728507008,0.44916702714929924 +0,0.764286091090656,0.23571390890934396 +0,0.5932181002935344,0.4067818997064656 +0,0.6922863092993109,0.3077136907006891 +0,0.5549147951803306,0.4450852048196694 +0,0.8401733652179251,0.15982663478207493 +1,0.3684112321678284,0.6315887678321717 +1,0.45821142421562167,0.5417885757843783 +0,0.9738843161933056,0.02611568380669438 +0,0.9767179882669694,0.023282011733030572 +1,0.07535337037714261,0.9246466296228574 +0,0.9873234202471312,0.012676579752868844 +0,0.9842229721515545,0.01577702784844548 +0,0.8508466721696656,0.14915332783033441 +0,0.8886349749208187,0.11136502507918133 +0,0.938631807906008,0.061368192093992024 +0,0.9618329127436264,0.03816708725637363 +0,0.9083100098422239,0.09168999015777612 +0,0.717150943056396,0.28284905694360396 +0,0.7712632870325556,0.22873671296744436 +0,0.9567707246955844,0.04322927530441556 +0,0.5591870173078839,0.4408129826921161 +0,0.9934468438549588,0.00655315614504115 +0,0.9794222420155089,0.02057775798449113 0,1.0,0.0 -1,0.27734001902313543,0.7226599809768646 -0,0.5745686487006133,0.4254313512993867 -0,0.9561928287886933,0.04380717121130673 +1,0.27734002040722483,0.7226599795927752 +0,0.5745686471741991,0.4254313528258009 +0,0.9561928290848797,0.04380717091512032 0,1.0,0.0 -0,0.9812107905719707,0.018789209428029308 -0,0.9724485777970615,0.02755142220293849 -0,0.9902843427413008,0.009715657258699162 -0,0.8221142079982013,0.17788579200179866 -0,0.97613838560401,0.023861614395989994 -0,0.9777710969299702,0.022228903070029782 -0,0.6318785674082255,0.36812143259177454 -1,0.38691124939491184,0.6130887506050882 -0,0.9431153405625384,0.05688465943746157 -0,0.9043743222122671,0.0956256777877329 -0,0.9637807132585038,0.036219286741496215 -0,0.9846003730459517,0.015399626954048284 -0,0.9315063048672857,0.0684936951327143 -0,0.7798465518815348,0.22015344811846516 -0,0.9773430683847547,0.02265693161524529 -0,0.9825644962818689,0.017435503718131073 -0,0.5531158847107808,0.44688411528921923 -0,0.7938824320561242,0.2061175679438758 -0,0.6809644713949542,0.3190355286050458 -0,0.941021137930803,0.058978862069197 -0,0.981436706110427,0.018563293889573007 -0,0.9888693927504901,0.011130607249509872 -0,0.9813142625836055,0.018685737416394455 -0,0.9834502494941718,0.016549750505828187 -0,0.949364413151881,0.050635586848118974 -0,0.6272962740900139,0.3727037259099861 -0,0.828571409687101,0.17142859031289903 -0,0.975239732283379,0.024760267716620987 -0,0.9778837829969662,0.02211621700303379 -0,0.7070672806407018,0.2929327193592982 -0,0.9700169908639349,0.02998300913606511 -1,0.24418696540572682,0.7558130345942732 -0,0.7686881227505075,0.23131187724949254 -0,0.8978001096522159,0.1021998903477841 -0,0.5286904640127911,0.4713095359872089 -0,0.6951499840166476,0.3048500159833524 -1,0.11434245242174639,0.8856575475782537 -0,0.9767045998800852,0.023295400119914822 -1,0.2418646390248516,0.7581353609751484 -0,0.9807732932253421,0.019226706774657876 -0,0.9720708987628448,0.027929101237155196 -0,0.7553094687058718,0.2446905312941282 -0,0.9214601927205099,0.07853980727949006 -0,0.7815468516467412,0.2184531483532588 -0,0.9565813833202017,0.043418616679798294 -0,0.993952416449432,0.006047583550568003 -0,0.7560597482238963,0.24394025177610368 -0,0.9339059856110893,0.06609401438891072 -0,0.9933283299352051,0.006671670064794855 -0,0.5998436726058235,0.4001563273941765 -0,0.8973229430314038,0.10267705696859619 -0,0.6903154325954225,0.3096845674045775 -0,0.9807732932253421,0.019226706774657876 +0,0.9812107906890424,0.018789209310957622 +0,0.972448577785669,0.027551422214331045 +0,0.9902843429614333,0.009715657038566694 +0,0.8221142121879316,0.17788578781206843 +0,0.9761383855869508,0.023861614413049237 +0,0.9777710973071859,0.02222890269281408 +0,0.6318785697487316,0.3681214302512684 +1,0.3869112481725644,0.6130887518274356 +0,0.9431153409279194,0.05688465907208062 +0,0.9043743204556433,0.09562567954435675 +0,0.9637807133772754,0.036219286622724556 +0,0.9846003730641867,0.015399626935813315 +0,0.9315063054427986,0.06849369455720145 +0,0.7798465551605178,0.22015344483948218 +0,0.977343068429525,0.022656931570474992 +0,0.9825644963905824,0.01743550360941759 +0,0.553115884182992,0.44688411581700804 +0,0.7938824317887884,0.20611756821121163 +0,0.6809644713069667,0.3190355286930333 +0,0.9410211384029374,0.05897886159706256 +0,0.9814367065030462,0.018563293496953848 +0,0.988869392839732,0.011130607160268036 +0,0.9813142626131685,0.018685737386831547 +0,0.9834502496422827,0.01654975035771733 +0,0.9493644134669725,0.050635586533027466 +0,0.6272962767870961,0.3727037232129039 +0,0.8285714118238655,0.1714285881761345 +0,0.9752397324244505,0.0247602675755495 +0,0.9778837829075024,0.02211621709249756 +0,0.707067280503794,0.29293271949620603 +0,0.9700169910457604,0.029983008954239554 +1,0.24418696674641285,0.7558130332535872 +0,0.7686881225146359,0.23131187748536408 +0,0.8978001078025653,0.10219989219743475 +0,0.5286904635317635,0.4713095364682365 +0,0.6951499833625543,0.3048500166374457 +1,0.11434244948493473,0.8856575505150652 +0,0.9767045998622561,0.023295400137743894 +1,0.24186463706679626,0.7581353629332037 +0,0.9807732936928457,0.019226706307154284 +0,0.9720708982725622,0.02792910172743779 +0,0.7553094684890868,0.24469053151091325 +0,0.9214601913933965,0.07853980860660348 +0,0.7815468513940321,0.21845314860596787 +0,0.95658138379104,0.04341861620896004 +0,0.9939524158018589,0.006047584198141109 +0,0.7560597432567554,0.2439402567432446 +0,0.9339059786659912,0.06609402133400877 +0,0.9933283300232839,0.006671669976716088 +0,0.5998436744383004,0.40015632556169956 +0,0.8973229442205916,0.10267705577940844 +0,0.6903154330075861,0.30968456699241387 +0,0.9807732936928457,0.019226706307154284 0,1.0,0.0 -0,0.7213402561300846,0.27865974386991543 -0,0.9873234201402851,0.012676579859714932 -1,0.31222006096408356,0.6877799390359165 -0,0.9545125371127166,0.04548746288728345 -1,0.08573432082522602,0.914265679174774 -0,0.9822054959482313,0.017794504051768745 -0,0.9749654022297282,0.025034597770271838 -0,0.6254442040344353,0.37455579596556465 -0,0.9795388798330438,0.020461120166956226 -1,0.38906754319653886,0.6109324568034611 -0,0.6975007664313666,0.3024992335686334 -0,0.9329021972863,0.06709780271370003 -0,0.7736339642676687,0.22636603573233127 -0,0.6125354443242774,0.3874645556757226 -0,0.9629413294630923,0.0370586705369077 -0,0.9618335219171051,0.03816647808289486 -0,0.7773186407578012,0.22268135924219878 -0,0.678863928980139,0.32113607101986097 -0,0.9014581667104885,0.0985418332895115 -0,0.9611760818869727,0.03882391811302732 -0,0.986365940108983,0.013634059891016959 -0,0.9838364740336993,0.016163525966300663 -0,0.9802133846871859,0.019786615312814115 -0,0.9817599530180546,0.018240046981945368 -0,0.7889618166982482,0.21103818330175184 -0,0.9323031787299275,0.06769682127007248 -0,0.9791560853370542,0.020843914662945773 -0,0.9606395373099155,0.03936046269008453 -0,0.7307688436408574,0.26923115635914263 -1,0.2619783908964366,0.7380216091035634 -0,0.9777979497151855,0.02220205028481448 -0,0.9755587534049672,0.024441246595032773 -0,0.9334120199961391,0.0665879800038609 -1,0.28143980019899284,0.7185601998010072 -0,0.6862838461175894,0.3137161538824106 -0,0.6809644713949542,0.3190355286050458 -1,0.10316197179102819,0.8968380282089718 -0,0.8023600998962741,0.1976399001037259 -1,0.36730166610516723,0.6326983338948328 +0,0.7213402553921456,0.27865974460785436 +0,0.9873234202471312,0.012676579752868844 +1,0.312220056615111,0.687779943384889 +0,0.9545125378920726,0.04548746210792742 +1,0.08573431860423679,0.9142656813957633 +0,0.9822054961099648,0.01779450389003523 +0,0.9749654022143511,0.02503459778564887 +0,0.6254442057591776,0.3745557942408224 +0,0.9795388798206505,0.020461120179349535 +1,0.3890675387911701,0.6109324612088298 +0,0.6975007684247552,0.30249923157524483 +0,0.9329021975562372,0.06709780244376284 +0,0.7736339657787246,0.22636603422127544 +0,0.6125354480253313,0.38746455197466867 +0,0.962941329330509,0.03705867066949098 +0,0.9618335220605343,0.038166477939465704 +0,0.7773186405104566,0.22268135948954337 +0,0.6788639288000138,0.3211360711999862 +0,0.9014581639074342,0.09854183609256584 +0,0.9611760824257073,0.03882391757429271 +0,0.9863659402258536,0.013634059774146445 +0,0.9838364740544525,0.016163525945547486 +0,0.9802133845420745,0.019786615457925483 +0,0.9817599530460086,0.018240046953991396 +0,0.7889618181295924,0.21103818187040757 +0,0.9323031790292244,0.06769682097077556 +0,0.9791560858112428,0.020843914188757195 +0,0.9606395373228753,0.039360462677124675 +0,0.7307688468698113,0.26923115313018875 +1,0.26197838707971255,0.7380216129202875 +0,0.9777979496959514,0.02220205030404865 +0,0.9755587533887248,0.024441246611275225 +0,0.9334120186827423,0.06658798131725774 +1,0.2814397961654454,0.7185602038345547 +0,0.6862838460193694,0.3137161539806306 +0,0.6809644713069667,0.3190355286930333 +1,0.103161971626378,0.896838028373622 +0,0.8023601012077307,0.1976398987922693 +1,0.36730166127971187,0.6326983387202881 0,1.0,0.0 -0,0.7461045557820679,0.2538954442179321 -0,0.9686185956228414,0.03138140437715864 -0,0.9831318456926855,0.016868154307314476 -0,0.9390596199536563,0.06094038004634372 -0,0.9628640725524813,0.0371359274475187 +0,0.7461045555792662,0.25389544442073375 +0,0.9686185954990137,0.031381404500986254 +0,0.9831318456756387,0.016868154324361284 +0,0.9390596202358445,0.06094037976415545 +0,0.9628640727924995,0.037135927207500474 0,1.0,0.0 -0,0.6367873585273063,0.3632126414726937 -0,0.9730246778230287,0.026975322176971295 -0,0.7553094687058718,0.2446905312941282 -1,0.12468947298392283,0.8753105270160771 -0,0.7857169103352979,0.2142830896647021 -0,0.9780419396685811,0.021958060331418894 -0,0.9762278623234297,0.02377213767657027 -0,0.9901299647898908,0.009870035210109207 -0,0.9739257756847386,0.026074224315261407 -0,0.9394225647285183,0.06057743527148174 -0,0.8300536554261916,0.16994634457380842 -0,0.829194617730535,0.17080538226946496 -0,0.6903154325954225,0.3096845674045775 -0,0.9641868026883863,0.0358131973116137 -0,0.6830495108695097,0.3169504891304903 -0,0.6415720538732839,0.35842794612671613 -0,0.7907721152802145,0.20922788471978548 -0,0.9932113573780084,0.006788642621991636 -0,0.7815468516467412,0.2184531483532588 -0,0.9346978179428364,0.06530218205716365 -0,0.9253490262036536,0.07465097379634644 -0,0.8836126118236679,0.1163873881763321 -1,0.32700137699680165,0.6729986230031983 -0,0.9049104655053786,0.09508953449462143 -0,0.9773013631913525,0.022698636808647477 -0,0.9347607146645202,0.06523928533547985 -0,0.7826272654406649,0.21737273455933515 -0,0.9460256896297057,0.05397431037029432 -0,0.9727497164606669,0.02725028353933312 -0,0.7605536576940035,0.23944634230599648 -0,0.9784483751373906,0.02155162486260942 -0,0.9302887004782149,0.06971129952178512 -0,0.7121354162505884,0.2878645837494116 -0,0.9772302004418826,0.02276979955811742 -0,0.9707241038116405,0.029275896188359463 -0,0.9807965905490547,0.01920340945094534 -0,0.746754154585437,0.25324584541456296 +0,0.6367873585283663,0.3632126414716337 +0,0.9730246774501645,0.02697532254983548 +0,0.7553094684890868,0.24469053151091325 +1,0.1246894697964184,0.8753105302035816 +0,0.7857169100774702,0.21428308992252976 +0,0.9780419397885491,0.02195806021145086 +0,0.9762278623727263,0.023772137627273704 +0,0.9901299651243571,0.009870034875642864 +0,0.9739257760114337,0.026074223988566292 +0,0.9394225650529762,0.060577434947023834 +0,0.8300536563456934,0.1699463436543066 +0,0.8291946157898581,0.1708053842101419 +0,0.6903154330075861,0.30968456699241387 +0,0.9641868030286939,0.03581319697130614 +0,0.6830495093070151,0.31695049069298487 +0,0.6415720532056668,0.3584279467943332 +0,0.7907721178538613,0.20922788214613874 +0,0.9932113574327981,0.006788642567201908 +0,0.7815468513940321,0.21845314860596787 +0,0.9346978182531925,0.06530218174680746 +0,0.925349024761623,0.07465097523837705 +0,0.8836126104044101,0.11638738959558992 +1,0.32700137304198224,0.6729986269580177 +0,0.904910465638304,0.09508953436169598 +0,0.9773013631260995,0.022698636873900502 +0,0.9347607146349544,0.06523928536504564 +0,0.7826272676389056,0.21737273236109445 +0,0.9460256897440671,0.05397431025593291 +0,0.9727497166209574,0.02725028337904256 +0,0.7605536591819925,0.23944634081800753 +0,0.9784483750662728,0.021551624933727198 +0,0.9302886991144547,0.06971130088554534 +0,0.7121354161045903,0.2878645838954097 +0,0.9772302008292029,0.022769799170797134 +0,0.9707241039878524,0.02927589601214764 +0,0.980796590672433,0.019203409327567034 +0,0.7467541562752805,0.2532458437247195 0,1.0,0.0 -0,0.9447559753640398,0.05524402463596023 -0,0.7070672806407018,0.2929327193592982 -1,0.21028836538617626,0.7897116346138238 -0,0.766649371951265,0.23335062804873496 -1,0.4511444806599532,0.5488555193400468 -0,0.6536749568823242,0.34632504311767576 -1,0.4526996357644561,0.5473003642355438 -0,0.6177424772248674,0.3822575227751326 -0,0.7686881227505075,0.23131187724949254 -0,0.6128287992132734,0.3871712007867266 -0,0.9982348543210781,0.0017651456789219422 -0,0.9945966369235769,0.0054033630764230844 -1,0.4200775912437101,0.57992240875629 -0,0.7984308361899232,0.20156916381007683 -0,0.6583565422712777,0.3416434577287223 -0,0.9670382786724284,0.03296172132757158 -0,0.9714150317860495,0.028584968213950512 -1,0.3392170031320995,0.6607829968679004 -1,0.22880414482281353,0.7711958551771865 -1,0.2619783908964366,0.7380216091035634 -1,0.17167437873549177,0.8283256212645083 -1,0.3023872725432507,0.6976127274567493 -0,0.9703974939515148,0.029602506048485244 -0,0.8119960297485439,0.1880039702514561 -0,0.8193497698384846,0.18065023016151538 -0,0.9980999443197787,0.0019000556802213353 -0,0.6536749568823242,0.34632504311767576 -1,0.06256348891637373,0.9374365110836262 -0,0.9905199570998765,0.009480042900123498 -0,0.9804281485392223,0.019571851460777667 -0,0.9817704900837013,0.01822950991629868 -0,0.8062313574884334,0.19376864251156656 -0,0.9662260338086457,0.03377396619135431 -1,0.29993126294022493,0.7000687370597751 -1,0.1653736283347716,0.8346263716652285 -0,0.7551704196480514,0.24482958035194857 -0,0.9536081725449691,0.0463918274550309 -0,0.9826303050382289,0.0173696949617711 -1,0.3282798104785698,0.6717201895214302 -0,0.7622205433473188,0.2377794566526812 -0,0.9982937314376626,0.0017062685623373541 +0,0.9447559754836066,0.05524402451639343 +0,0.707067280503794,0.29293271949620603 +1,0.21028836832225117,0.7897116316777488 +0,0.7666493729972287,0.23335062700277132 +1,0.4511444778186148,0.5488555221813852 +0,0.6536749568485897,0.34632504315141033 +1,0.45269963434820143,0.5473003656517985 +0,0.6177424766652718,0.3822575233347282 +0,0.7686881225146359,0.23131187748536408 +0,0.6128287985851651,0.38717120141483485 +0,0.9982348543567311,0.001765145643268906 +0,0.9945966370475456,0.00540336295245436 +1,0.4200775860730007,0.5799224139269993 +0,0.7984308375291426,0.20156916247085743 +0,0.6583565415837299,0.3416434584162701 +0,0.9670382791250666,0.03296172087493343 +0,0.9714150319568035,0.028584968043196546 +1,0.33921699853517007,0.6607830014648299 +1,0.22880414739745436,0.7711958526025456 +1,0.26197838707971255,0.7380216129202875 +1,0.1716743824934993,0.8283256175065007 +1,0.3023872777940433,0.6976127222059567 +0,0.9703974943356933,0.029602505664306666 +0,0.8119960307826968,0.18800396921730322 +0,0.8193497674725814,0.18065023252741863 +0,0.9980999443584428,0.0019000556415571523 +0,0.6536749568485897,0.34632504315141033 +1,0.06256348886839162,0.9374365111316084 +0,0.9905199572548262,0.009480042745173778 +0,0.980428148470577,0.01957185152942298 +0,0.9817704902502314,0.018229509749768558 +0,0.8062313587724074,0.19376864122759263 +0,0.966226034021014,0.033773965978985965 +1,0.29993125633788487,0.7000687436621151 +1,0.16537363053077161,0.8346263694692284 +0,0.755170422449032,0.24482957755096801 +0,0.9536081735222377,0.0463918264777623 +0,0.9826303051952957,0.017369694804704294 +1,0.32827980597880174,0.6717201940211983 +0,0.7622205444162569,0.23777945558374314 +0,0.9982937312778475,0.0017062687221525152 0,1.0,0.0 -0,0.9772576914387597,0.022742308561240265 -0,0.7318753201319532,0.2681246798680468 -0,0.9830353346857819,0.01696466531421814 -1,0.4211777594939739,0.5788222405060262 -0,0.5961098533503978,0.4038901466496022 -1,0.36250737422205126,0.6374926257779487 -0,0.9789206566808658,0.02107934331913419 -0,0.9080612044877384,0.09193879551226158 -0,0.7375842324567777,0.26241576754322227 -0,0.6882859685966113,0.3117140314033887 -0,0.9786216145238573,0.02137838547614268 -1,0.33588873546836356,0.6641112645316365 -0,0.7163696351080917,0.2836303648919083 -0,0.7325879881856503,0.2674120118143497 -0,0.7946499612729424,0.2053500387270576 -0,0.615947545718511,0.38405245428148904 -0,0.9821952057657117,0.017804794234288268 -0,0.7553094687058718,0.2446905312941282 -0,0.9864358916554944,0.01356410834450561 -0,0.5782264259802126,0.42177357401978743 -0,0.757712589258563,0.242287410741437 -1,0.2302606431322532,0.7697393568677469 -0,0.774377166841285,0.225622833158715 +0,0.9772576914202065,0.022742308579793535 +0,0.7318753199520099,0.26812468004799006 +0,0.9830353347092533,0.016964665290746694 +1,0.42117776138462354,0.5788222386153765 +0,0.5961098534377867,0.40389014656221334 +1,0.36250737364134583,0.6374926263586542 +0,0.9789206567194166,0.021079343280583362 +0,0.9080612029867275,0.09193879701327246 +0,0.7375842375624048,0.26241576243759523 +0,0.6882859694138839,0.31171403058611613 +0,0.978621614583502,0.021378385416497947 +1,0.3358887344216822,0.6641112655783178 +0,0.7163696343725674,0.2836303656274326 +0,0.7325879899399612,0.2674120100600388 +0,0.7946499654687879,0.20535003453121214 +0,0.6159475467770608,0.38405245322293924 +0,0.9821952057921153,0.017804794207884722 +0,0.7553094684890868,0.24469053151091325 +0,0.9864358916355752,0.013564108364424787 +0,0.5782264261061909,0.4217735738938091 +0,0.7577125896295782,0.24228741037042179 +1,0.2302606404894372,0.7697393595105628 +0,0.7743771727101585,0.2256228272898415 0,1.0,0.0 -0,0.7262570540147726,0.2737429459852274 -0,0.9704012615368705,0.029598738463129548 -0,0.7753337255198061,0.22466627448019394 -1,0.4030415335340586,0.5969584664659414 -0,0.9305416762651566,0.0694583237348434 -0,0.9761014310870887,0.02389856891291131 -0,0.9926142888082713,0.0073857111917287055 -0,0.7221131832365618,0.2778868167634382 -1,0.20623303703974477,0.7937669629602553 -0,0.9286766932879327,0.07132330671206732 -0,0.9599629152117849,0.040037084788215105 -0,0.9888118486873932,0.011188151312606753 -0,0.7344506490931323,0.2655493509068677 -1,0.06551128778766113,0.9344887122123389 -0,0.9143128390076047,0.08568716099239526 -0,0.9214601927205099,0.07853980727949006 -0,0.9570023717383982,0.042997628261601806 -0,0.7414173190928417,0.2585826809071583 -0,0.9196616648812495,0.08033833511875055 -0,0.7815468516467412,0.2184531483532588 -0,0.5333702558468819,0.4666297441531181 -0,0.9827190870210616,0.017280912978938412 -1,0.4622217727701916,0.5377782272298084 -1,0.3738388064203714,0.6261611935796286 -0,0.9772576914387597,0.022742308561240265 -0,0.97816622687437,0.02183377312562995 -0,0.6239748163172911,0.3760251836827089 -0,0.6528031975713948,0.3471968024286052 -0,0.7062695270340532,0.2937304729659468 -0,0.982980883442599,0.01701911655740096 -0,0.9827936394059725,0.01720636059402747 -0,0.9756967467035718,0.02430325329642824 -0,0.9853372142798187,0.014662785720181315 -0,0.9645834607167786,0.035416539283221415 -1,0.23507930295264173,0.7649206970473583 -0,0.5878380464129214,0.41216195358707863 -1,0.04172036807680254,0.9582796319231974 -0,0.9188130328869005,0.08118696711309947 -0,0.6421725538779405,0.3578274461220595 -1,0.48568460585028445,0.5143153941497156 -0,0.9952533643188811,0.0047466356811188826 -0,0.8629540286445504,0.1370459713554496 -0,0.9189881671670604,0.08101183283293956 -0,0.9823727533106715,0.01762724668932847 -0,0.9256184943587255,0.07438150564127455 -1,0.25614365705182346,0.7438563429481766 -0,0.9538899888463893,0.046110011153610686 -0,0.994475118048269,0.005524881951730953 -0,0.7978779143646892,0.20212208563531076 -1,0.42608074627595227,0.5739192537240477 -0,0.5093155211746612,0.49068447882533883 -0,0.9686103042502738,0.031389695749726165 -1,0.4653686842531054,0.5346313157468946 -0,0.6693328197246251,0.3306671802753749 -1,0.4200775912437101,0.57992240875629 -0,0.8043712658955567,0.19562873410444326 -0,0.9927507861130835,0.007249213886916461 -0,0.6907331810291065,0.3092668189708935 -0,0.6406893353629324,0.3593106646370676 -0,0.9661002181576414,0.033899781842358645 -0,0.9464154472371988,0.05358455276280116 -0,0.6536749568823242,0.34632504311767576 -0,0.9540475918310457,0.045952408168954295 -0,0.9484785499716565,0.05152145002834352 -0,0.6534791805964478,0.34652081940355217 -0,0.9256184943587255,0.07438150564127455 -0,0.7365932982670811,0.2634067017329189 -0,0.9750591650404493,0.024940834959550684 -1,0.1712488747781262,0.8287511252218738 -0,0.9449854386797147,0.05501456132028526 -0,0.9927507861130835,0.007249213886916461 -0,0.8871534419296497,0.11284655807035027 -0,0.986365940108983,0.013634059891016959 -0,0.9236321705691475,0.07636782943085252 -0,0.9948152041057281,0.005184795894271899 -0,0.9833113861978998,0.016688613802100183 -0,0.9620459919607784,0.037954008039221554 -0,0.9386792467260038,0.06132075327399622 -0,0.9297164361116798,0.07028356388832024 -0,0.6196649378902968,0.38033506210970325 -0,0.9830353346857819,0.01696466531421814 -0,0.9842321091921722,0.01576789080782781 -0,0.5610025249753015,0.43899747502469855 -0,0.806180844531113,0.19381915546888695 -1,0.32800727005134567,0.6719927299486543 -0,0.6935382078681342,0.30646179213186575 -0,0.9755587534049672,0.024441246595032773 -0,0.7019472611210625,0.29805273887893746 -0,0.9817599530180546,0.018240046981945368 -0,0.9780419396685811,0.021958060331418894 -0,0.9061405637687479,0.09385943623125215 -0,0.5828024919977142,0.41719750800228583 -0,0.5652405019804635,0.4347594980195365 -0,0.9899017515076518,0.010098248492348194 -0,0.7978779143646892,0.20212208563531076 -0,0.7814183975804879,0.21858160241951208 -0,0.6630101467311648,0.33698985326883524 -1,0.42244507181404795,0.577554928185952 -0,0.976772393975271,0.023227606024728953 -0,0.9749654022297282,0.025034597770271838 -0,0.7997416038264353,0.20025839617356467 -1,0.2525796377573609,0.7474203622426391 -1,0.18090671145017995,0.8190932885498201 -0,0.9099928416508676,0.09000715834913242 -0,0.7773186407578012,0.22268135924219878 -1,0.3963169480195413,0.6036830519804587 -0,0.9481986713206874,0.05180132867931264 -0,0.9752539410640093,0.02474605893599069 -0,0.6583565422712777,0.3416434577287223 -0,0.7240382798002584,0.27596172019974163 -0,0.9789609568989697,0.02103904310103033 -0,0.7642860913204171,0.23571390867958286 -0,0.9001280526590703,0.09987194734092975 -0,0.9834205232012992,0.016579476798700754 -0,0.9038712605088491,0.09612873949115086 -0,0.98344066699051,0.016559333009489974 -0,0.9701495373022345,0.02985046269776548 +0,0.7262570532747338,0.2737429467252662 +0,0.9704012615290687,0.029598738470931307 +0,0.7753337265204155,0.22466627347958446 +1,0.40304153087175015,0.5969584691282499 +0,0.9305416760823346,0.06945832391766538 +0,0.9761014314038826,0.023898568596117387 +0,0.9926142889076373,0.007385711092362746 +0,0.722113183073102,0.277886816926898 +1,0.2062330399423669,0.7937669600576331 +0,0.9286766918984457,0.0713233081015543 +0,0.9599629154440286,0.040037084555971436 +0,0.988811848889703,0.011188151110297029 +0,0.7344506503033278,0.2655493496966722 +1,0.0655112877313076,0.9344887122686925 +0,0.9143128393946606,0.08568716060533943 +0,0.9214601913933965,0.07853980860660348 +0,0.9570023719480566,0.042997628051943404 +0,0.7414173188974085,0.2585826811025915 +0,0.9196616635301781,0.08033833646982191 +0,0.7815468513940321,0.21845314860596787 +0,0.5333702559598041,0.46662974404019586 +0,0.9827190870044742,0.01728091299552581 +1,0.4622217728041295,0.5377782271958704 +1,0.37383880389008534,0.6261611961099147 +0,0.9772576914202065,0.022742308579793535 +0,0.9781662269416616,0.021833773058338446 +0,0.6239748169138034,0.3760251830861966 +0,0.6528031968901682,0.3471968031098318 +0,0.7062695263043187,0.2937304736956813 +0,0.9829808835479045,0.01701911645209553 +0,0.9827936394463904,0.01720636055360958 +0,0.9756967466296698,0.024303253370330236 +0,0.9853372144075956,0.014662785592404415 +0,0.9645834609425946,0.03541653905740538 +1,0.23507930125750573,0.7649206987424942 +0,0.5878380464112084,0.4121619535887916 +1,0.04172036905663227,0.9582796309433678 +0,0.9188130320579119,0.08118696794208813 +0,0.6421725580588643,0.3578274419411357 +1,0.48568460545758585,0.5143153945424142 +0,0.9952533640758779,0.004746635924122056 +0,0.8629540289253216,0.13704597107467842 +0,0.9189881668018461,0.08101183319815386 +0,0.9823727533529466,0.017627246647053396 +0,0.9256184941745556,0.07438150582544445 +1,0.25614365376437764,0.7438563462356224 +0,0.9538899891256796,0.04611001087432043 +0,0.9944751182275364,0.005524881772463575 +0,0.7978779140929603,0.20212208590703973 +1,0.4260807410731218,0.5739192589268782 +0,0.5093155208127279,0.4906844791872721 +0,0.9686103045500213,0.031389695449978716 +1,0.4653686832712268,0.5346313167287732 +0,0.669332819025409,0.330667180974591 +1,0.4200775860730007,0.5799224139269993 +0,0.8043712669776598,0.19562873302234018 +0,0.9927507862277846,0.007249213772215435 +0,0.6907331803104858,0.3092668196895142 +0,0.6406893347702473,0.35931066522975275 +0,0.9661002182772175,0.03389978172278252 +0,0.9464154472736805,0.05358455272631946 +0,0.6536749568485897,0.34632504315141033 +0,0.9540475923544446,0.045952407645555415 +0,0.9484785503664627,0.05152144963353733 +0,0.6534791816417891,0.3465208183582109 +0,0.9256184941745556,0.07438150582544445 +0,0.7365932994664273,0.26340670053357274 +0,0.9750591650945976,0.024940834905402443 +1,0.17124887213636766,0.8287511278636324 +0,0.9449854391139842,0.05501456088601575 +0,0.9927507862277846,0.007249213772215435 +0,0.8871534428964444,0.11284655710355562 +0,0.9863659402258536,0.013634059774146445 +0,0.9236321691003011,0.0763678308996989 +0,0.9948152041846782,0.00518479581532183 +0,0.9833113864045658,0.016688613595434165 +0,0.9620459920145165,0.03795400798548354 +0,0.9386792463123226,0.06132075368767742 +0,0.9297164369730361,0.07028356302696392 +0,0.6196649396375354,0.38033506036246456 +0,0.9830353347092533,0.016964665290746694 +0,0.9842321093318087,0.015767890668191287 +0,0.5610025311640853,0.43899746883591473 +0,0.806180843687589,0.19381915631241098 +1,0.32800726957423,0.67199273042577 +0,0.693538208666885,0.306461791333115 +0,0.9755587533887248,0.024441246611275225 +0,0.7019472609934829,0.2980527390065171 +0,0.9817599530460086,0.018240046953991396 +0,0.9780419397885491,0.02195806021145086 +0,0.9061405645405403,0.09385943545945974 +0,0.5828024927030094,0.41719750729699057 +0,0.5652405014305755,0.43475949856942453 +0,0.9899017515866536,0.010098248413346389 +0,0.7978779140929603,0.20212208590703973 +0,0.7814184001156262,0.21858159988437376 +0,0.6630101461101758,0.33698985388982416 +1,0.42244507048184476,0.5775549295181552 +0,0.9767723941304199,0.02322760586958006 +0,0.9749654022143511,0.02503459778564887 +0,0.799741603749694,0.20025839625030595 +1,0.2525796340500342,0.7474203659499659 +1,0.18090671370331882,0.8190932862966812 +0,0.9099928416681514,0.09000715833184858 +0,0.7773186405104566,0.22268135948954337 +1,0.39631694299042497,0.603683057009575 +0,0.948198671545288,0.05180132845471197 +0,0.9752539413918883,0.024746058608111743 +0,0.6583565415837299,0.3416434584162701 +0,0.7240382782763539,0.2759617217236461 +0,0.9789609568284525,0.021039043171547478 +0,0.764286091090656,0.23571390890934396 +0,0.9001280512442069,0.09987194875579308 +0,0.9834205235208308,0.01657947647916924 +0,0.9038712589555709,0.09612874104442914 +0,0.9834406670125966,0.01655933298740342 +0,0.970149537941014,0.029850462058986005 0,1.0,0.0 -0,0.9493934979995582,0.05060650200044181 -0,0.9832255952545829,0.016774404745417137 -0,0.9088048759297492,0.09119512407025077 -1,0.4832769582394339,0.5167230417605662 -0,0.7642823984466764,0.23571760155332355 -0,0.9580532989658872,0.0419467010341128 -0,0.6903154325954225,0.3096845674045775 -0,0.9777979497151855,0.02220205028481448 -0,0.9161808825670213,0.08381911743297865 -0,0.7686881227505075,0.23131187724949254 -0,0.6415720538732839,0.35842794612671613 -0,0.9608738669994689,0.03912613300053114 -0,0.6186480145419742,0.38135198545802584 -1,0.38531677020068444,0.6146832297993156 -0,0.5832777200196416,0.4167222799803584 -0,0.8849574400624997,0.11504255993750034 -0,0.8599701694001827,0.14002983059981733 -0,0.6747535025727799,0.3252464974272201 -0,0.9569053564472517,0.04309464355274828 -0,0.979414348516355,0.020585651483644996 -0,0.8653186628153744,0.1346813371846256 -0,0.9100940428144673,0.08990595718553274 -1,0.08739439628459121,0.9126056037154088 -0,0.9750591650404493,0.024940834959550684 -0,0.5591870178468379,0.4408129821531621 -0,0.8955212081488725,0.10447879185112752 -0,0.7604522236782896,0.23954777632171043 -0,0.8496621962765198,0.15033780372348016 -0,0.97613838560401,0.023861614395989994 -1,0.1366831789955915,0.8633168210044085 -0,0.9839285019169595,0.016071498083040536 -0,0.9685432826603254,0.03145671733967459 -0,0.8947539897553841,0.10524601024461588 -1,0.3963169480195413,0.6036830519804587 -1,0.2864403190180275,0.7135596809819724 -0,0.6701840444047491,0.3298159555952509 -0,0.5600328428782279,0.43996715712177215 -1,0.10441420327261344,0.8955857967273866 -0,0.6638667987872474,0.3361332012127526 -0,0.8604344696796278,0.13956553032037222 -0,0.684202084738239,0.31579791526176104 -1,0.3250060731894507,0.6749939268105494 -0,0.6801277902248066,0.3198722097751934 -0,0.5772875634820358,0.4227124365179642 -0,0.9634114356891155,0.03658856431088453 -0,0.9944628382034747,0.005537161796525303 -0,0.6226293782818669,0.37737062171813307 -0,0.9505337540782496,0.04946624592175042 -0,0.9857617269205927,0.014238273079407282 -1,0.3926825528096276,0.6073174471903724 -0,0.9755587534049672,0.024441246595032773 -0,0.9784071147271822,0.021592885272817774 -0,0.9369059362279473,0.06309406377205273 -0,0.9100940428144673,0.08990595718553274 -0,0.5417799075827893,0.45822009241721073 -0,0.9564584640519271,0.04354153594807286 +0,0.9493934982167948,0.05060650178320525 +0,0.9832255956301785,0.016774404369821472 +0,0.9088048781067833,0.09119512189321666 +1,0.48327695853708436,0.5167230414629156 +0,0.7642824006726611,0.23571759932733893 +0,0.9580532991311328,0.041946700868867204 +0,0.6903154330075861,0.30968456699241387 +0,0.9777979496959514,0.02220205030404865 +0,0.9161808817559264,0.08381911824407362 +0,0.7686881225146359,0.23131187748536408 +0,0.6415720532056668,0.3584279467943332 +0,0.9608738678340729,0.039126132165927086 +0,0.6186480139053537,0.38135198609464627 +1,0.3853167670515494,0.6146832329484506 +0,0.5832777194384138,0.4167222805615862 +0,0.8849574412812145,0.11504255871878555 +0,0.8599701710518904,0.14002982894810956 +0,0.6747535018682195,0.3252464981317805 +0,0.9569053565876303,0.04309464341236968 +0,0.9794143489566982,0.02058565104330179 +0,0.8653186629901226,0.1346813370098774 +0,0.9100940413391699,0.08990595866083007 +1,0.08739439665373652,0.9126056033462635 +0,0.9750591650945976,0.024940834905402443 +0,0.5591870173078839,0.4408129826921161 +0,0.8955212062675676,0.1044787937324324 +0,0.7604522252780715,0.23954777472192845 +0,0.8496621945921781,0.15033780540782193 +0,0.9761383855869508,0.023861614413049237 +1,0.13668318002797852,0.8633168199720215 +0,0.9839285018990853,0.016071498100914683 +0,0.9685432807192289,0.031456719280771095 +0,0.8947539902579041,0.10524600974209586 +1,0.39631694299042497,0.603683057009575 +1,0.2864403149309168,0.7135596850690832 +0,0.6701840443378602,0.32981595566213984 +0,0.5600328448049887,0.4399671551950113 +1,0.10441420366712248,0.8955857963328775 +0,0.6638667980937015,0.3361332019062985 +0,0.8604344689329744,0.13956553106702563 +0,0.6842020845486535,0.3157979154513465 +1,0.3250060721825488,0.6749939278174513 +0,0.6801277895152316,0.31987221048476844 +0,0.5772875629110026,0.4227124370889974 +0,0.9634114355997514,0.0365885644002486 +0,0.9944628383307776,0.005537161669222357 +0,0.622629377041835,0.37737062295816504 +0,0.9505337543840361,0.04946624561596391 +0,0.985761726901135,0.01423827309886505 +1,0.3926825577215663,0.6073174422784338 +0,0.9755587533887248,0.024441246611275225 +0,0.9784071147677329,0.0215928852322671 +0,0.9369059364270692,0.06309406357293079 +0,0.9100940413391699,0.08990595866083007 +0,0.5417799095622137,0.45822009043778633 +0,0.9564584643784831,0.04354153562151686 0,1.0,0.0 0,1.0,0.0 -1,0.24583933379433248,0.7541606662056675 -1,0.4022160532380508,0.5977839467619492 +1,0.2458393314928309,0.7541606685071691 +1,0.40221604817164147,0.5977839518283585 0,1.0,0.0 -0,0.9813688975712331,0.018631102428766866 -0,0.9740708733594224,0.02592912664057756 -0,0.6311879200516352,0.36881207994836485 -0,0.9848075129936702,0.015192487006329802 -1,0.37703700378115323,0.6229629962188468 -0,0.974454003134269,0.025545996865731002 -0,0.9295443469622319,0.07045565303776813 -1,0.3381992283906957,0.6618007716093043 -0,0.773032358302647,0.22696764169735295 -0,0.8095160747238088,0.19048392527619118 -0,0.9609196923412697,0.03908030765873027 -1,0.2056717682460665,0.7943282317539335 -0,0.9637335714211123,0.03626642857888773 -0,0.9821381069694676,0.017861893030532427 -0,0.9540854853092235,0.04591451469077645 -0,0.9899707722339379,0.010029227766062077 -0,0.773032358302647,0.22696764169735295 -1,0.41645597082053815,0.5835440291794618 -0,0.8781808910282257,0.12181910897177428 +0,0.9813688977400704,0.01863110225992959 +0,0.9740708735259774,0.025929126474022568 +0,0.6311879217536076,0.3688120782463924 +0,0.984807513234082,0.015192486765918 +1,0.37703700483972136,0.6229629951602786 +0,0.9744540031909713,0.025545996809028693 +0,0.92954434778004,0.07045565221995997 +1,0.33819922642229644,0.6618007735777036 +0,0.7730323580609136,0.22696764193908636 +0,0.8095160744403064,0.19048392555969362 +0,0.9609196928570694,0.03908030714293065 +1,0.20567176950811,0.7943282304918899 +0,0.9637335716539331,0.03626642834606686 +0,0.9821381070816895,0.01786189291831053 +0,0.9540854856234595,0.04591451437654048 +0,0.9899707723227509,0.01002922767724912 +0,0.7730323580609136,0.22696764193908636 +1,0.4164559695060444,0.5835440304939556 +0,0.8781808902498244,0.12181910975017562 0,1.0,0.0 0,1.0,0.0 -0,0.9196616648812495,0.08033833511875055 -1,0.3430175972872463,0.6569824027127538 -0,0.9929256601786515,0.00707433982134853 -0,0.5902364934315868,0.4097635065684132 -0,0.7507353934598829,0.24926460654011706 -0,0.9332645511152723,0.06673544888472771 -0,0.7318753201319532,0.2681246798680468 -0,0.9056243708949487,0.09437562910505126 -0,0.9751567563489152,0.024843243651084812 -0,0.5892433896416506,0.4107566103583494 -1,0.3738388064203714,0.6261611935796286 -0,0.8191499164414527,0.18085008355854726 -1,0.1553697619511965,0.8446302380488035 -0,0.9295437242263423,0.07045627577365765 -0,0.9203762179693148,0.07962378203068521 -0,0.7026648141208889,0.2973351858791111 -0,0.9755587534049672,0.024441246595032773 -1,0.3282798104785698,0.6717201895214302 -0,0.5286904640127911,0.4713095359872089 -0,0.727702108625466,0.272297891374534 -0,0.7270215042603512,0.27297849573964883 -0,0.9876275878224272,0.012372412177572789 -0,0.8841988272136373,0.1158011727863627 -0,0.9743580251011529,0.02564197489884712 -0,0.9653051343964171,0.034694865603582925 -0,0.7763124957119096,0.22368750428809037 -0,0.9929256601786515,0.00707433982134853 -0,0.7318753201319532,0.2681246798680468 -0,0.9236321705691475,0.07636782943085252 -0,0.9743824344427886,0.025617565557211397 -1,0.238906075250274,0.761093924749726 -1,0.3490088571579282,0.6509911428420718 -0,0.9723715500772744,0.027628449922725618 -1,0.027155375015877246,0.9728446249841227 -0,0.9397254472926455,0.06027455270735449 -0,0.9496685004436739,0.0503314995563261 -0,0.6870222948907898,0.3129777051092102 -0,0.9138126946760717,0.08618730532392826 -0,0.5414322160501395,0.45856778394986053 -0,0.9724485777970615,0.02755142220293849 -0,0.8845659395210391,0.11543406047896088 -0,0.9789206566808658,0.02107934331913419 -0,0.881429366894451,0.11857063310554905 +0,0.9196616635301781,0.08033833646982191 +1,0.3430175920843176,0.6569824079156824 +0,0.9929256602902455,0.0070743397097544625 +0,0.5902364941211968,0.40976350587880317 +0,0.750735393249963,0.24926460675003703 +0,0.9332645512321761,0.06673544876782389 +0,0.7318753199520099,0.26812468004799006 +0,0.9056243709049498,0.09437562909505015 +0,0.9751567568328698,0.024843243167130158 +0,0.5892433890504929,0.4107566109495071 +1,0.37383880389008534,0.6261611961099147 +0,0.819149914556284,0.18085008544371595 +1,0.1553697601202592,0.8446302398797408 +0,0.9295437233189049,0.07045627668109511 +0,0.9203762177845372,0.07962378221546285 +0,0.7026648160840581,0.29733518391594194 +0,0.9755587533887248,0.024441246611275225 +1,0.32827980597880174,0.6717201940211983 +0,0.5286904635317635,0.4713095364682365 +0,0.7277021104366622,0.2722978895633378 +0,0.7270215040885271,0.27297849591147294 +0,0.9876275879261163,0.012372412073883732 +0,0.8841988261596283,0.1158011738403717 +0,0.9743580250866918,0.02564197491330822 +0,0.96530513477976,0.03469486522024001 +0,0.7763124958866747,0.22368750411332528 +0,0.9929256602902455,0.0070743397097544625 +0,0.7318753199520099,0.26812468004799006 +0,0.9236321691003011,0.0763678308996989 +0,0.9743824341569463,0.025617565843053747 +1,0.23890607170742173,0.7610939282925783 +1,0.34900885302844714,0.6509911469715528 +0,0.9723715496970143,0.027628450302985663 +1,0.027155374905695077,0.9728446250943049 +0,0.9397254409079848,0.06027455909201518 +0,0.9496685009638454,0.05033149903615464 +0,0.6870222969442623,0.3129777030557377 +0,0.9138126921666523,0.08618730783334771 +0,0.5414322163442831,0.45856778365571693 +0,0.972448577785669,0.027551422214331045 +0,0.8845659408745229,0.1154340591254771 +0,0.9789206567194166,0.021079343280583362 +0,0.8814293584334166,0.11857064156658337 0,1.0,0.0 -0,0.9676558673640004,0.032344132635999556 -0,0.5703346909447561,0.4296653090552439 -0,0.6701840444047491,0.3298159555952509 -0,0.8508513440458065,0.14914865595419347 -0,0.9506081152503987,0.04939188474960132 -0,0.9380813448521,0.06191865514789996 -0,0.7983845300311879,0.20161546996881208 -0,0.6755975361350013,0.3244024638649987 -0,0.7598264608629761,0.24017353913702388 -0,0.6354440418074185,0.36455595819258146 -1,0.32161191327491917,0.6783880867250809 -0,0.5225579306477305,0.4774420693522695 -0,0.7359268527281086,0.26407314727189135 -1,0.41690110924921864,0.5830988907507814 -0,0.9730999350064664,0.02690006499353359 -0,0.9704065573747847,0.02959344262521535 -1,0.24875472753382366,0.7512452724661763 -1,0.40814360012373946,0.5918563998762605 -1,0.1433158934740971,0.8566841065259029 -0,0.9830353346857819,0.01696466531421814 -0,0.9550278001474379,0.04497219985256207 -1,0.11432702093525501,0.885672979064745 +0,0.9676558675387016,0.032344132461298414 +0,0.5703346904644008,0.4296653095355992 +0,0.6701840443378602,0.32981595566213984 +0,0.8508513335344009,0.1491486664655991 +0,0.9506081149497949,0.04939188505020509 +0,0.9380813446729335,0.06191865532706653 +0,0.7983845284839846,0.20161547151601544 +0,0.6755975360574588,0.32440246394254124 +0,0.7598264606395778,0.24017353936042218 +0,0.6354440423726458,0.36455595762735415 +1,0.3216119093653033,0.6783880906346966 +0,0.5225579301788705,0.47744206982112947 +0,0.7359268519848066,0.26407314801519344 +1,0.41690110838942507,0.5830988916105749 +0,0.9730999349939957,0.02690006500600428 +0,0.9704065574161748,0.029593442583825236 +1,0.2487547288817662,0.7512452711182338 +1,0.40814359502127695,0.591856404978723 +1,0.14331589072510484,0.8566841092748951 +0,0.9830353347092533,0.016964665290746694 +0,0.9550277998636647,0.044972200136335294 +1,0.11432702047316268,0.8856729795268373 0,1.0,0.0 -0,0.7795889385862904,0.22041106141370959 -1,0.4842350801333967,0.5157649198666032 -0,0.9497963642970556,0.050203635702944394 -0,0.9857975620059384,0.014202437994061623 -1,0.45039622658323303,0.5496037734167669 -1,0.39492933447711964,0.6050706655228804 -1,0.4200775912437101,0.57992240875629 -0,0.6077956408161587,0.39220435918384133 -0,0.9607847970786216,0.03921520292137837 -0,0.9746922424379709,0.025307757562029076 +0,0.7795889395645377,0.22041106043546232 +1,0.48423508034900603,0.5157649196509939 +0,0.9497963645641211,0.05020363543587891 +0,0.985797561217483,0.014202438782517035 +1,0.4503962246651601,0.54960377533484 +1,0.394929330036049,0.605070669963951 +1,0.4200775860730007,0.5799224139269993 +0,0.6077956425826013,0.3922043574173987 +0,0.9607847971991649,0.039215202800835125 +0,0.9746922423261171,0.025307757673882936 0,1.0,0.0 -1,0.17896426058032214,0.8210357394196779 -0,0.9999998564465615,1.4355343846972346e-07 -0,0.6076887844853808,0.3923112155146192 -0,0.9838364740336993,0.016163525966300663 -0,0.6947330225587787,0.30526697744122133 -1,0.3904478512502522,0.6095521487497477 -0,0.9755587534049672,0.024441246595032773 -0,0.8838780316072492,0.1161219683927508 -0,0.9764001731938935,0.023599826806106505 -0,0.6310798767026964,0.3689201232973036 -1,0.4293029124279836,0.5706970875720164 -0,0.6367873585273063,0.3632126414726937 -0,0.6801277902248066,0.3198722097751934 -1,0.3392170031320995,0.6607829968679004 -0,0.9873234201402851,0.012676579859714932 -0,0.7460256596794147,0.2539743403205853 -0,0.8002125754797399,0.1997874245202601 -0,0.9861028391471198,0.013897160852880175 -0,0.6358967681508146,0.36410323184918536 -0,0.9317162382384132,0.06828376176158679 -0,0.9799121369163574,0.020087863083642632 -0,0.97613838560401,0.023861614395989994 -0,0.7994995960306588,0.2005004039693412 -0,0.9813142625836055,0.018685737416394455 -0,0.5508329781381863,0.4491670218618137 -0,0.9317203026992835,0.06827969730071648 -0,0.6362387303725925,0.3637612696274075 -0,0.8677114780723255,0.13228852192767449 -0,0.9999998030380107,1.9696198927388053e-07 -0,0.6638667987872474,0.3361332012127526 -0,0.7070672806407018,0.2929327193592982 -0,0.9679017690819466,0.032098230918053416 -0,0.865006769437223,0.134993230562777 -1,0.32287938510731146,0.6771206148926885 -0,0.9796268676645304,0.020373132335469557 -0,0.9319950067044077,0.06800499329559229 -0,0.6907331810291065,0.3092668189708935 -0,0.9080612044877384,0.09193879551226158 -0,0.9784071147271822,0.021592885272817774 -1,0.3810935114949221,0.6189064885050779 -1,0.36730166610516723,0.6326983338948328 -0,0.6137415402887543,0.3862584597112457 -0,0.5691487446319414,0.43085125536805857 -0,0.7128384756679268,0.2871615243320732 -1,0.4200775912437101,0.57992240875629 +1,0.17896426176806565,0.8210357382319343 +0,0.9999998564339527,1.4356604727261413e-07 +0,0.6076887856835735,0.39231121431642646 +0,0.9838364740544525,0.016163525945547486 +0,0.6947330223509784,0.30526697764902155 +1,0.39044784625962714,0.6095521537403729 +0,0.9755587533887248,0.024441246611275225 +0,0.8838780323204252,0.11612196767957483 +0,0.9764001733261539,0.02359982667384608 +0,0.6310798767156823,0.36892012328431767 +1,0.42930290896015916,0.5706970910398408 +0,0.6367873585283663,0.3632126414716337 +0,0.6801277895152316,0.31987221048476844 +1,0.33921699853517007,0.6607830014648299 +0,0.9873234202471312,0.012676579752868844 +0,0.7460256608312203,0.25397433916877965 +0,0.8002125734862406,0.19978742651375936 +0,0.9861028391274199,0.013897160872580083 +0,0.6358967674904791,0.3641032325095209 +0,0.931716237688821,0.06828376231117905 +0,0.9799121369511163,0.02008786304888366 +0,0.9761383855869508,0.023861614413049237 +0,0.7994995938998267,0.20050040610017328 +0,0.9813142626131685,0.018685737386831547 +0,0.5508329728507008,0.44916702714929924 +0,0.9317203029810096,0.06827969701899039 +0,0.6362387332531256,0.36376126674687437 +0,0.8677114761493806,0.1322885238506194 +0,0.9999998030207128,1.96979287214738e-07 +0,0.6638667980937015,0.3361332019062985 +0,0.707067280503794,0.29293271949620603 +0,0.9679017695918198,0.03209823040818016 +0,0.8650067702904466,0.1349932297095534 +1,0.3228793806571786,0.6771206193428214 +0,0.9796268677193853,0.02037313228061466 +0,0.9319950074363373,0.06800499256366266 +0,0.6907331803104858,0.3092668196895142 +0,0.9080612029867275,0.09193879701327246 +0,0.9784071147677329,0.0215928852322671 +1,0.38109351029160604,0.618906489708394 +1,0.36730166127971187,0.6326983387202881 +0,0.6137415403383895,0.38625845966161054 +0,0.5691487413012182,0.4308512586987818 +0,0.712838477570415,0.28716152242958504 +1,0.4200775860730007,0.5799224139269993 0,1.0,0.0 -0,0.9813142625836055,0.018685737416394455 -0,0.9733941490810277,0.026605850918972274 -0,0.9811124638290882,0.018887536170911767 -0,0.9591815894158044,0.04081841058419555 -0,0.974454003134269,0.025545996865731002 -0,0.9834822458669497,0.016517754133050344 -0,0.6415720538732839,0.35842794612671613 -0,0.9267223611391624,0.0732776388608376 -1,0.2619783908964366,0.7380216091035634 -0,0.9576036306993269,0.04239636930067314 -1,0.20279196082519937,0.7972080391748007 -0,0.7190367215771005,0.2809632784228995 -0,0.6128287992132734,0.3871712007867266 -0,0.8790758652805165,0.12092413471948349 -0,0.9789327987783688,0.021067201221631193 -0,0.9749654022297282,0.025034597770271838 -1,0.3963169480195413,0.6036830519804587 -0,0.9768362774310679,0.023163722568932066 -0,0.6160181814400543,0.38398181855994573 -0,0.9901015222025537,0.009898477797446348 -1,0.1826067358723613,0.8173932641276387 -0,0.9928115716470803,0.007188428352919662 -0,0.6292888594919599,0.3707111405080401 -0,0.717150943211247,0.28284905678875305 -0,0.9932113573780084,0.006788642621991636 -0,0.9799505804111965,0.020049419588803463 -0,0.9767179881086949,0.023282011891305077 -0,0.9111727002440962,0.08882729975590375 -0,0.9999998416056972,1.583943027849699e-07 -0,0.9666572203878908,0.033342779612109186 -0,0.7553094687058718,0.2446905312941282 -1,0.4022160532380508,0.5977839467619492 -0,0.6310798767026964,0.3689201232973036 -0,0.6538589207492219,0.3461410792507781 -1,0.30053445947237895,0.6994655405276211 -1,0.3447515600509494,0.6552484399490506 -0,0.9873791516540994,0.012620848345900604 -0,0.9682067852900127,0.031793214709987305 -0,0.6367873585273063,0.3632126414726937 -0,0.6558482098504866,0.34415179014951336 -0,0.9929256601786515,0.00707433982134853 -0,0.9125505152374512,0.08744948476254877 -0,0.7019472611210625,0.29805273887893746 +0,0.9813142626131685,0.018685737386831547 +0,0.9733941492363053,0.026605850763694705 +0,0.9811124643871567,0.018887535612843287 +0,0.9591815896866327,0.040818410313367304 +0,0.9744540031909713,0.025545996809028693 +0,0.9834822449966649,0.016517755003335077 +0,0.6415720532056668,0.3584279467943332 +0,0.9267223605135471,0.07327763948645294 +1,0.26197838707971255,0.7380216129202875 +0,0.957603630707747,0.04239636929225299 +1,0.20279195772645112,0.7972080422735489 +0,0.7190367222846011,0.28096327771539886 +0,0.6128287985851651,0.38717120141483485 +0,0.8790758635655088,0.12092413643449118 +0,0.9789327989766007,0.021067201023399318 +0,0.9749654022143511,0.02503459778564887 +1,0.39631694299042497,0.603683057009575 +0,0.9768362773582316,0.02316372264176836 +0,0.6160181798781983,0.3839818201218017 +0,0.9901015223017866,0.009898477698213393 +1,0.18260673707126107,0.8173932629287389 +0,0.9928115718865845,0.007188428113415468 +0,0.6292888589152378,0.3707111410847622 +0,0.717150943056396,0.28284905694360396 +0,0.9932113574327981,0.006788642567201908 +0,0.9799505803419166,0.02004941965808338 +0,0.9767179882669694,0.023282011733030572 +0,0.9111726988802917,0.08882730111970827 +0,0.999999841591785,1.584082149896915e-07 +0,0.9666572203873868,0.03334277961261323 +0,0.7553094684890868,0.24469053151091325 +1,0.40221604817164147,0.5977839518283585 +0,0.6310798767156823,0.36892012328431767 +0,0.6538589219926443,0.3461410780073557 +1,0.30053445574852694,0.699465544251473 +1,0.3447515554065841,0.6552484445934159 +0,0.9873791518370383,0.012620848162961718 +0,0.9682067852863796,0.0317932147136204 +0,0.6367873585283663,0.3632126414716337 +0,0.655848208279239,0.34415179172076105 +0,0.9929256602902455,0.0070743397097544625 +0,0.912550513600156,0.08744948639984396 +0,0.7019472609934829,0.2980527390065171 0,1.0,0.0 -1,0.3175258049291606,0.6824741950708394 -0,0.996740378711081,0.00325962128891899 -0,0.8646332439787011,0.13536675602129888 -0,0.9714150317860495,0.028584968213950512 -0,0.6599922270765334,0.3400077729234666 -0,0.9755587534049672,0.024441246595032773 -0,0.9196616648812495,0.08033833511875055 -0,0.9442696472454646,0.05573035275453542 -1,0.19454963783609494,0.8054503621639051 -0,0.9932113573780084,0.006788642621991636 -0,0.7121354162505884,0.2878645837494116 -0,0.6020171651087467,0.3979828348912533 -1,0.496457173909148,0.503542826090852 -1,0.3963169480195413,0.6036830519804587 -0,0.9402020983372913,0.05979790166270871 -0,0.9813142625836055,0.018685737416394455 +1,0.3175258005293088,0.6824741994706912 +0,0.9967403787809802,0.0032596212190197926 +0,0.8646332422205044,0.13536675777949558 +0,0.9714150319568035,0.028584968043196546 +0,0.6599922292770292,0.34000777072297084 +0,0.9755587533887248,0.024441246611275225 +0,0.9196616635301781,0.08033833646982191 +0,0.9442696468786825,0.055730353121317466 +1,0.19454963585490812,0.8054503641450919 +0,0.9932113574327981,0.006788642567201908 +0,0.7121354161045903,0.2878645838954097 +0,0.602017165183445,0.39798283481655505 +1,0.49645717489201546,0.5035428251079845 +1,0.39631694299042497,0.603683057009575 +0,0.9402020985653508,0.05979790143464925 +0,0.9813142626131685,0.018685737386831547 diff --git a/pmml-sparkml/src/test/resources/main.py b/pmml-sparkml/src/test/resources/main.py index 20af0c33..048dbc8b 100644 --- a/pmml-sparkml/src/test/resources/main.py +++ b/pmml-sparkml/src/test/resources/main.py @@ -44,17 +44,17 @@ def build_modelchain_audit(audit_df, name): genderVectorAssembler = VectorAssembler(inputCols = ["Income", "Hours"] + [occupationIndexer.getOutputCol()]) - genderDt = DecisionTreeClassifier(maxDepth = 3, labelCol = genderIndexer.getOutputCol(), featuresCol = genderVectorAssembler.getOutputCol(), rawPredictionCol = "genderRanPrediction", predictionCol = "genderPrediction", probabilityCol = "genderProbability") + genderDt = DecisionTreeClassifier(maxDepth = 3, labelCol = genderIndexer.getOutputCol(), featuresCol = genderVectorAssembler.getOutputCol(), predictionCol = "genderPrediction", probabilityCol = "genderProbability") - genderVectorSlicer = VectorSlicer(indices = [1], inputCol = genderDt.getProbabilityCol(), outputCol = "slicedGenderProbability") + genderSqlTransformer = SQLTransformer(statement = "SELECT Adjusted, genderPrediction, genderProbability, Age, Employment, Education, Marital, Deductions FROM __THIS__") - adjustedFormula = RFormula(formula = "Adjusted ~ genderPrediction + Age + Employment + Education + Marital + Deductions", labelCol = "Adjusted", featuresCol = "adjustedFeatureVector") + genderVectorSlicer = VectorSlicer(indices = [1], inputCol = "genderProbability", outputCol = "slicedGenderProbability") - adjustedVectorAssembler = VectorAssembler(inputCols = [genderVectorSlicer.getOutputCol()] + [adjustedFormula.getFeaturesCol()]) + adjustedFormula = RFormula(formula = "Adjusted ~ genderPrediction + slicedGenderProbability + Age + Employment + Education + Marital + Deductions", labelCol = "Adjusted", featuresCol = "adjustedFeatureVector") - adjustedLr = LogisticRegression(labelCol = adjustedFormula.getLabelCol(), featuresCol = adjustedVectorAssembler.getOutputCol()) + adjustedLr = LogisticRegression(labelCol = adjustedFormula.getLabelCol(), featuresCol = adjustedFormula.getFeaturesCol()) - build_classification(audit_df, Pipeline(stages = [genderIndexer, occupationIndexer, genderVectorAssembler, genderDt, genderVectorSlicer, adjustedFormula, adjustedVectorAssembler, adjustedLr]), adjustedIndexerModel, adjustedLr.getPredictionCol(), adjustedLr.getProbabilityCol(), name) + build_classification(audit_df, Pipeline(stages = [genderIndexer, occupationIndexer, genderVectorAssembler, genderDt, genderSqlTransformer, genderVectorSlicer, adjustedFormula, adjustedLr]), adjustedIndexerModel, adjustedLr.getPredictionCol(), adjustedLr.getProbabilityCol(), name) def build_classification_audit(audit_df, classifier, name): stages = [] diff --git a/pmml-sparkml/src/test/resources/pipeline/ModelChainAudit.zip b/pmml-sparkml/src/test/resources/pipeline/ModelChainAudit.zip index 8fd58d69..9775942a 100644 Binary files a/pmml-sparkml/src/test/resources/pipeline/ModelChainAudit.zip and b/pmml-sparkml/src/test/resources/pipeline/ModelChainAudit.zip differ