diff options
Diffstat (limited to 'examples/mamdani/octave')
16 files changed, 2442 insertions, 2227 deletions
diff --git a/examples/mamdani/octave/investment_portfolio.R b/examples/mamdani/octave/investment_portfolio.R new file mode 100644 index 0000000..c752dab --- /dev/null +++ b/examples/mamdani/octave/investment_portfolio.R @@ -0,0 +1,67 @@ +#Code automatically generated with fuzzylite 6.0. + +library(ggplot2); + +engine.name = "investment_portfolio" +engine.fll = "Engine: investment_portfolio +InputVariable: Age + enabled: true + range: 20.000 100.000 + lock-range: false + term: Young ZShape 30.000 90.000 + term: Old SShape 30.000 90.000 +InputVariable: RiskTolerance + enabled: true + range: 0.000 10.000 + lock-range: false + term: Low ZShape 2.000 8.000 + term: High SShape 2.000 8.000 +OutputVariable: PercentageInStocks + enabled: true + range: 0.000 100.000 + lock-range: false + aggregation: EinsteinSum + defuzzifier: Centroid 200 + default: nan + lock-previous: false + term: AboutFifteen Gaussian 15.000 10.000 + term: AboutFifty Gaussian 50.000 10.000 + term: AboutEightyFive Gaussian 85.000 10.000 +RuleBlock: + enabled: true + conjunction: EinsteinProduct + disjunction: EinsteinSum + implication: EinsteinProduct + activation: General + rule: if Age is Young or RiskTolerance is High then PercentageInStocks is AboutEightyFive + rule: if Age is Old or RiskTolerance is Low then PercentageInStocks is AboutFifteen + rule: if Age is not extremely Old and RiskTolerance is not extremely Low then PercentageInStocks is AboutFifty with 0.500 + rule: if Age is not extremely Young and RiskTolerance is not extremely High then PercentageInStocks is AboutFifty with 0.500" + +engine.fldFile = "investment_portfolio.fld" +if (require(data.table)) { + engine.df = data.table::fread(engine.fldFile, sep="auto", header="auto") +} else { + engine.df = read.table(engine.fldFile, header=TRUE) +} + +engine.plot.i1i2_o1 = ggplot(engine.df, aes(Age, RiskTolerance)) + + geom_tile(aes(fill=PercentageInStocks)) + + scale_fill_gradient(low="yellow", high="red") + + stat_contour(aes(x=Age, y=RiskTolerance, z=PercentageInStocks), color="black") + + ggtitle("(Age, RiskTolerance) = PercentageInStocks") + +engine.plot.i2i1_o1 = ggplot(engine.df, aes(RiskTolerance, Age)) + + geom_tile(aes(fill=PercentageInStocks)) + + scale_fill_gradient(low="yellow", high="red") + + stat_contour(aes(x=RiskTolerance, y=Age, z=PercentageInStocks), color="black") + + ggtitle("(RiskTolerance, Age) = PercentageInStocks") + +if (require(gridExtra)) { + engine.plots = arrangeGrob(engine.plot.i1i2_o1, engine.plot.i2i1_o1, ncol=2, top=engine.name) + ggsave(paste0(engine.name, ".pdf"), engine.plots) + if (require(grid)) { + grid.newpage() + grid.draw(engine.plots) + } +} diff --git a/examples/mamdani/octave/investment_portfolio.cpp b/examples/mamdani/octave/investment_portfolio.cpp index 9ccadc9..2b82b8c 100644 --- a/examples/mamdani/octave/investment_portfolio.cpp +++ b/examples/mamdani/octave/investment_portfolio.cpp @@ -1,51 +1,61 @@ #include <fl/Headers.h> int main(int argc, char** argv){ +//Code automatically generated with fuzzylite 6.0. + using namespace fl; Engine* engine = new Engine; -engine->setName("Investment-Portfolio"); - -InputVariable* inputVariable1 = new InputVariable; -inputVariable1->setEnabled(true); -inputVariable1->setName("Age"); -inputVariable1->setRange(20.000, 100.000); -inputVariable1->addTerm(new ZShape("Young", 30.000, 90.000)); -inputVariable1->addTerm(new SShape("Old", 30.000, 90.000)); -engine->addInputVariable(inputVariable1); - -InputVariable* inputVariable2 = new InputVariable; -inputVariable2->setEnabled(true); -inputVariable2->setName("RiskTolerance"); -inputVariable2->setRange(0.000, 10.000); -inputVariable2->addTerm(new ZShape("Low", 2.000, 8.000)); -inputVariable2->addTerm(new SShape("High", 2.000, 8.000)); -engine->addInputVariable(inputVariable2); - -OutputVariable* outputVariable = new OutputVariable; -outputVariable->setEnabled(true); -outputVariable->setName("PercentageInStocks"); -outputVariable->setRange(0.000, 100.000); -outputVariable->fuzzyOutput()->setAccumulation(new EinsteinSum); -outputVariable->setDefuzzifier(new Centroid(200)); -outputVariable->setDefaultValue(fl::nan); -outputVariable->setLockPreviousOutputValue(false); -outputVariable->setLockOutputValueInRange(false); -outputVariable->addTerm(new Gaussian("AboutFifteen", 15.000, 10.000)); -outputVariable->addTerm(new Gaussian("AboutFifty", 50.000, 10.000)); -outputVariable->addTerm(new Gaussian("AboutEightyFive", 85.000, 10.000)); -engine->addOutputVariable(outputVariable); +engine->setName("investment_portfolio"); +engine->setDescription(""); + +InputVariable* Age = new InputVariable; +Age->setName("Age"); +Age->setDescription(""); +Age->setEnabled(true); +Age->setRange(20.000, 100.000); +Age->setLockValueInRange(false); +Age->addTerm(new ZShape("Young", 30.000, 90.000)); +Age->addTerm(new SShape("Old", 30.000, 90.000)); +engine->addInputVariable(Age); + +InputVariable* RiskTolerance = new InputVariable; +RiskTolerance->setName("RiskTolerance"); +RiskTolerance->setDescription(""); +RiskTolerance->setEnabled(true); +RiskTolerance->setRange(0.000, 10.000); +RiskTolerance->setLockValueInRange(false); +RiskTolerance->addTerm(new ZShape("Low", 2.000, 8.000)); +RiskTolerance->addTerm(new SShape("High", 2.000, 8.000)); +engine->addInputVariable(RiskTolerance); + +OutputVariable* PercentageInStocks = new OutputVariable; +PercentageInStocks->setName("PercentageInStocks"); +PercentageInStocks->setDescription(""); +PercentageInStocks->setEnabled(true); +PercentageInStocks->setRange(0.000, 100.000); +PercentageInStocks->setLockValueInRange(false); +PercentageInStocks->setAggregation(new EinsteinSum); +PercentageInStocks->setDefuzzifier(new Centroid(200)); +PercentageInStocks->setDefaultValue(fl::nan); +PercentageInStocks->setLockPreviousValue(false); +PercentageInStocks->addTerm(new Gaussian("AboutFifteen", 15.000, 10.000)); +PercentageInStocks->addTerm(new Gaussian("AboutFifty", 50.000, 10.000)); +PercentageInStocks->addTerm(new Gaussian("AboutEightyFive", 85.000, 10.000)); +engine->addOutputVariable(PercentageInStocks); RuleBlock* ruleBlock = new RuleBlock; -ruleBlock->setEnabled(true); ruleBlock->setName(""); +ruleBlock->setDescription(""); +ruleBlock->setEnabled(true); ruleBlock->setConjunction(new EinsteinProduct); ruleBlock->setDisjunction(new EinsteinSum); -ruleBlock->setActivation(new EinsteinProduct); -ruleBlock->addRule(fl::Rule::parse("if Age is Young or RiskTolerance is High then PercentageInStocks is AboutEightyFive", engine)); -ruleBlock->addRule(fl::Rule::parse("if Age is Old or RiskTolerance is Low then PercentageInStocks is AboutFifteen", engine)); -ruleBlock->addRule(fl::Rule::parse("if Age is not extremely Old and RiskTolerance is not extremely Low then PercentageInStocks is AboutFifty with 0.500", engine)); -ruleBlock->addRule(fl::Rule::parse("if Age is not extremely Young and RiskTolerance is not extremely High then PercentageInStocks is AboutFifty with 0.500", engine)); +ruleBlock->setImplication(new EinsteinProduct); +ruleBlock->setActivation(new General); +ruleBlock->addRule(Rule::parse("if Age is Young or RiskTolerance is High then PercentageInStocks is AboutEightyFive", engine)); +ruleBlock->addRule(Rule::parse("if Age is Old or RiskTolerance is Low then PercentageInStocks is AboutFifteen", engine)); +ruleBlock->addRule(Rule::parse("if Age is not extremely Old and RiskTolerance is not extremely Low then PercentageInStocks is AboutFifty with 0.500", engine)); +ruleBlock->addRule(Rule::parse("if Age is not extremely Young and RiskTolerance is not extremely High then PercentageInStocks is AboutFifty with 0.500", engine)); engine->addRuleBlock(ruleBlock); diff --git a/examples/mamdani/octave/investment_portfolio.fcl b/examples/mamdani/octave/investment_portfolio.fcl index 590ab3b..ec837a7 100644 --- a/examples/mamdani/octave/investment_portfolio.fcl +++ b/examples/mamdani/octave/investment_portfolio.fcl @@ -1,4 +1,6 @@ -FUNCTION_BLOCK Investment-Portfolio +//Code automatically generated with fuzzylite 6.0. + +FUNCTION_BLOCK investment_portfolio VAR_INPUT Age: REAL; diff --git a/examples/mamdani/octave/investment_portfolio.fis b/examples/mamdani/octave/investment_portfolio.fis index 311e728..b512a68 100644 --- a/examples/mamdani/octave/investment_portfolio.fis +++ b/examples/mamdani/octave/investment_portfolio.fis @@ -1,6 +1,9 @@ +#Code automatically generated with fuzzylite 6.0. + [System] -Name='Investment-Portfolio' +Name='investment_portfolio' Type='mamdani' +Version=6.0 NumInputs=2 NumOutputs=1 NumRules=4 diff --git a/examples/mamdani/octave/investment_portfolio.fld b/examples/mamdani/octave/investment_portfolio.fld index 648b0be..4da9cb9 100644 --- a/examples/mamdani/octave/investment_portfolio.fld +++ b/examples/mamdani/octave/investment_portfolio.fld @@ -1,1026 +1,1025 @@ -#@Engine: Investment-Portfolio; -#@InputVariable: Age; @InputVariable: RiskTolerance; @OutputVariable: PercentageInStocks; -20.00000000 0.00000000 50.00000000 -20.00000000 0.32258065 50.00000000 -20.00000000 0.64516129 50.00000000 -20.00000000 0.96774194 50.00000000 -20.00000000 1.29032258 50.00000000 -20.00000000 1.61290323 50.00000000 -20.00000000 1.93548387 50.00000000 -20.00000000 2.25806452 50.07664849 -20.00000000 2.58064516 50.39007638 -20.00000000 2.90322581 50.95232681 -20.00000000 3.22580645 51.77492832 -20.00000000 3.54838710 52.87098013 -20.00000000 3.87096774 54.25013613 -20.00000000 4.19354839 55.91006054 -20.00000000 4.51612903 57.82311764 -20.00000000 4.83870968 59.91799668 -20.00000000 5.16129032 62.04316294 -20.00000000 5.48387097 64.00662112 -20.00000000 5.80645161 65.82068208 -20.00000000 6.12903226 67.49497664 -20.00000000 6.45161290 69.01370662 -20.00000000 6.77419355 70.34164582 -20.00000000 7.09677419 71.43161596 -20.00000000 7.41935484 72.23344208 -20.00000000 7.74193548 72.70359583 -20.00000000 8.06451613 72.82131403 -20.00000000 8.38709677 72.82131403 -20.00000000 8.70967742 72.82131403 -20.00000000 9.03225806 72.82131403 -20.00000000 9.35483871 72.82131403 -20.00000000 9.67741935 72.82131403 -20.00000000 10.00000000 72.82131403 -22.58064516 0.00000000 50.00000000 -22.58064516 0.32258065 50.00000000 -22.58064516 0.64516129 50.00000000 -22.58064516 0.96774194 50.00000000 -22.58064516 1.29032258 50.00000000 -22.58064516 1.61290323 50.00000000 -22.58064516 1.93548387 50.00000000 -22.58064516 2.25806452 50.07664849 -22.58064516 2.58064516 50.39007638 -22.58064516 2.90322581 50.95232681 -22.58064516 3.22580645 51.77492832 -22.58064516 3.54838710 52.87098013 -22.58064516 3.87096774 54.25013613 -22.58064516 4.19354839 55.91006054 -22.58064516 4.51612903 57.82311764 -22.58064516 4.83870968 59.91799668 -22.58064516 5.16129032 62.04316294 -22.58064516 5.48387097 64.00662112 -22.58064516 5.80645161 65.82068208 -22.58064516 6.12903226 67.49497664 -22.58064516 6.45161290 69.01370662 -22.58064516 6.77419355 70.34164582 -22.58064516 7.09677419 71.43161596 -22.58064516 7.41935484 72.23344208 -22.58064516 7.74193548 72.70359583 -22.58064516 8.06451613 72.82131403 -22.58064516 8.38709677 72.82131403 -22.58064516 8.70967742 72.82131403 -22.58064516 9.03225806 72.82131403 -22.58064516 9.35483871 72.82131403 -22.58064516 9.67741935 72.82131403 -22.58064516 10.00000000 72.82131403 -25.16129032 0.00000000 50.00000000 -25.16129032 0.32258065 50.00000000 -25.16129032 0.64516129 50.00000000 -25.16129032 0.96774194 50.00000000 -25.16129032 1.29032258 50.00000000 -25.16129032 1.61290323 50.00000000 -25.16129032 1.93548387 50.00000000 -25.16129032 2.25806452 50.07664849 -25.16129032 2.58064516 50.39007638 -25.16129032 2.90322581 50.95232681 -25.16129032 3.22580645 51.77492832 -25.16129032 3.54838710 52.87098013 -25.16129032 3.87096774 54.25013613 -25.16129032 4.19354839 55.91006054 -25.16129032 4.51612903 57.82311764 -25.16129032 4.83870968 59.91799668 -25.16129032 5.16129032 62.04316294 -25.16129032 5.48387097 64.00662112 -25.16129032 5.80645161 65.82068208 -25.16129032 6.12903226 67.49497664 -25.16129032 6.45161290 69.01370662 -25.16129032 6.77419355 70.34164582 -25.16129032 7.09677419 71.43161596 -25.16129032 7.41935484 72.23344208 -25.16129032 7.74193548 72.70359583 -25.16129032 8.06451613 72.82131403 -25.16129032 8.38709677 72.82131403 -25.16129032 8.70967742 72.82131403 -25.16129032 9.03225806 72.82131403 -25.16129032 9.35483871 72.82131403 -25.16129032 9.67741935 72.82131403 -25.16129032 10.00000000 72.82131403 -27.74193548 0.00000000 50.00000000 -27.74193548 0.32258065 50.00000000 -27.74193548 0.64516129 50.00000000 -27.74193548 0.96774194 50.00000000 -27.74193548 1.29032258 50.00000000 -27.74193548 1.61290323 50.00000000 -27.74193548 1.93548387 50.00000000 -27.74193548 2.25806452 50.07664849 -27.74193548 2.58064516 50.39007638 -27.74193548 2.90322581 50.95232681 -27.74193548 3.22580645 51.77492832 -27.74193548 3.54838710 52.87098013 -27.74193548 3.87096774 54.25013613 -27.74193548 4.19354839 55.91006054 -27.74193548 4.51612903 57.82311764 -27.74193548 4.83870968 59.91799668 -27.74193548 5.16129032 62.04316294 -27.74193548 5.48387097 64.00662112 -27.74193548 5.80645161 65.82068208 -27.74193548 6.12903226 67.49497664 -27.74193548 6.45161290 69.01370662 -27.74193548 6.77419355 70.34164582 -27.74193548 7.09677419 71.43161596 -27.74193548 7.41935484 72.23344208 -27.74193548 7.74193548 72.70359583 -27.74193548 8.06451613 72.82131403 -27.74193548 8.38709677 72.82131403 -27.74193548 8.70967742 72.82131403 -27.74193548 9.03225806 72.82131403 -27.74193548 9.35483871 72.82131403 -27.74193548 9.67741935 72.82131403 -27.74193548 10.00000000 72.82131403 -30.32258065 0.00000000 49.99880392 -30.32258065 0.32258065 49.99880392 -30.32258065 0.64516129 49.99880392 -30.32258065 0.96774194 49.99880392 -30.32258065 1.29032258 49.99880392 -30.32258065 1.61290323 49.99880392 -30.32258065 1.93548387 49.99880392 -30.32258065 2.25806452 50.07545238 -30.32258065 2.58064516 50.38887965 -30.32258065 2.90322581 50.95112699 -30.32258065 3.22580645 51.77371992 -30.32258065 3.54838710 52.86975395 -30.32258065 3.87096774 54.24887943 -30.32258065 4.19354839 55.90875847 -30.32258065 4.51612903 57.82175684 -30.32258065 4.83870968 59.91657184 -30.32258065 5.16129032 62.04168233 -30.32258065 5.48387097 64.00508502 -30.32258065 5.80645161 65.81908993 -30.32258065 6.12903226 67.49332917 -30.32258065 6.45161290 69.01200609 -30.32258065 6.77419355 70.33989666 -30.32258065 7.09677419 71.42982533 -30.32258065 7.41935484 72.23162005 -30.32258065 7.74193548 72.70175504 -30.32258065 8.06451613 72.81946849 -30.32258065 8.38709677 72.81946849 -30.32258065 8.70967742 72.81946849 -30.32258065 9.03225806 72.81946849 -30.32258065 9.35483871 72.81946849 -30.32258065 9.67741935 72.81946849 -30.32258065 10.00000000 72.81946849 -32.90322581 0.00000000 49.90295798 -32.90322581 0.32258065 49.90295798 -32.90322581 0.64516129 49.90295798 -32.90322581 0.96774194 49.90295798 -32.90322581 1.29032258 49.90295798 -32.90322581 1.61290323 49.90295798 -32.90322581 1.93548387 49.90295798 -32.90322581 2.25806452 49.97960702 -32.90322581 2.58064516 50.29299482 -32.90322581 2.90322581 50.85501365 -32.90322581 3.22580645 51.67694728 -32.90322581 3.54838710 52.77159622 -32.90322581 3.87096774 54.14832785 -32.90322581 4.19354839 55.80464007 -32.90322581 4.51612903 57.71302139 -32.90322581 4.83870968 59.80281425 -32.90322581 5.16129032 61.92356979 -32.90322581 5.48387097 63.88261418 -32.90322581 5.80645161 65.69219320 -32.90322581 6.12903226 67.36205805 -32.90322581 6.45161290 68.87652195 -32.90322581 6.77419355 70.20054895 -32.90322581 7.09677419 71.28718186 -32.90322581 7.41935484 72.08648082 -32.90322581 7.74193548 72.55512448 -32.90322581 8.06451613 72.67246132 -32.90322581 8.38709677 72.67246132 -32.90322581 8.70967742 72.67246132 -32.90322581 9.03225806 72.67246132 -32.90322581 9.35483871 72.67246132 -32.90322581 9.67741935 72.67246132 -32.90322581 10.00000000 72.67246132 -35.48387097 0.00000000 49.65230424 -35.48387097 0.32258065 49.65230424 -35.48387097 0.64516129 49.65230424 -35.48387097 0.96774194 49.65230424 -35.48387097 1.29032258 49.65230424 -35.48387097 1.61290323 49.65230424 -35.48387097 1.93548387 49.65230424 -35.48387097 2.25806452 49.72897859 -35.48387097 2.58064516 50.04236049 -35.48387097 2.90322581 50.60395669 -35.48387097 3.22580645 51.42442479 -35.48387097 3.54838710 52.51580620 -35.48387097 3.87096774 53.88675089 -35.48387097 4.19354839 55.53436093 -35.48387097 4.51612903 57.43147904 -35.48387097 4.83870968 59.50912954 -35.48387097 5.16129032 61.61952428 -35.48387097 5.48387097 63.56796052 -35.48387097 5.80645161 65.36655988 -35.48387097 6.12903226 67.02542761 -35.48387097 6.45161290 68.52927075 -35.48387097 6.77419355 69.84352090 -35.48387097 7.09677419 70.92180186 -35.48387097 7.41935484 71.71475942 -35.48387097 7.74193548 72.17961322 -35.48387097 8.06451613 72.29599292 -35.48387097 8.38709677 72.29599292 -35.48387097 8.70967742 72.29599292 -35.48387097 9.03225806 72.29599292 -35.48387097 9.35483871 72.29599292 -35.48387097 9.67741935 72.29599292 -35.48387097 10.00000000 72.29599292 -38.06451613 0.00000000 49.24309895 -38.06451613 0.32258065 49.24309895 -38.06451613 0.64516129 49.24309895 -38.06451613 0.96774194 49.24309895 -38.06451613 1.29032258 49.24309895 -38.06451613 1.61290323 49.24309895 -38.06451613 1.93548387 49.24309895 -38.06451613 2.25806452 49.31988482 -38.06451613 2.58064516 49.63354393 -38.06451613 2.90322581 50.19496500 -38.06451613 3.22580645 51.01379991 -38.06451613 3.54838710 52.10088544 -38.06451613 3.87096774 53.46376445 -38.06451613 4.19354839 55.09898884 -38.06451613 4.51612903 56.98007353 -38.06451613 4.83870968 59.04077124 -38.06451613 5.16129032 61.13722688 -38.06451613 5.48387097 63.07064236 -38.06451613 5.80645161 64.85305357 -38.06451613 6.12903226 66.49534778 -38.06451613 6.45161290 67.98296760 -38.06451613 6.77419355 69.28218358 -38.06451613 7.09677419 70.34756047 -38.06451613 7.41935484 71.13072959 -38.06451613 7.74193548 71.58971545 -38.06451613 8.06451613 71.70461300 -38.06451613 8.38709677 71.70461300 -38.06451613 8.70967742 71.70461300 -38.06451613 9.03225806 71.70461300 -38.06451613 9.35483871 71.70461300 -38.06451613 9.67741935 71.70461300 -38.06451613 10.00000000 71.70461300 -40.64516129 0.00000000 48.66974302 -40.64516129 0.32258065 48.66974302 -40.64516129 0.64516129 48.66974302 -40.64516129 0.96774194 48.66974302 -40.64516129 1.29032258 48.66974302 -40.64516129 1.61290323 48.66974302 -40.64516129 1.93548387 48.66974302 -40.64516129 2.25806452 48.74681972 -40.64516129 2.58064516 49.06141626 -40.64516129 2.90322581 49.62357390 -40.64516129 3.22580645 50.44156177 -40.64516129 3.54838710 51.52458831 -40.64516129 3.87096774 52.87875978 -40.64516129 4.19354839 54.50003124 -40.64516129 4.51612903 56.36302984 -40.64516129 4.83870968 58.40529847 -40.64516129 5.16129032 60.48775451 -40.64516129 5.48387097 62.40444567 -40.64516129 5.80645161 64.16746517 -40.64516129 6.12903226 65.78913336 -40.64516129 6.45161290 67.25614371 -40.64516129 6.77419355 68.53604701 -40.64516129 7.09677419 69.58475383 -40.64516129 7.41935484 70.35521241 -40.64516129 7.74193548 70.80658497 -40.64516129 8.06451613 70.91955552 -40.64516129 8.38709677 70.91955552 -40.64516129 8.70967742 70.91955552 -40.64516129 9.03225806 70.91955552 -40.64516129 9.35483871 70.91955552 -40.64516129 9.67741935 70.91955552 -40.64516129 10.00000000 70.91955552 -43.22580645 0.00000000 47.92553362 -43.22580645 0.32258065 47.92553362 -43.22580645 0.64516129 47.92553362 -43.22580645 0.96774194 47.92553362 -43.22580645 1.29032258 47.92553362 -43.22580645 1.61290323 47.92553362 -43.22580645 1.93548387 47.92553362 -43.22580645 2.25806452 48.00319612 -43.22580645 2.58064516 48.31985647 -43.22580645 2.90322581 48.88447571 -43.22580645 3.22580645 49.70355442 -43.22580645 3.54838710 50.78426142 -43.22580645 3.87096774 52.13099528 -43.22580645 4.19354839 53.73918510 -43.22580645 4.51612903 55.58515207 -43.22580645 4.83870968 57.61132963 -43.22580645 5.16129032 59.68382184 -43.22580645 5.48387097 61.58536931 -43.22580645 5.80645161 63.32828142 -43.22580645 6.12903226 64.92718203 -43.22580645 6.45161290 66.37069947 -43.22580645 6.77419355 67.62820397 -43.22580645 7.09677419 68.65739074 -43.22580645 7.41935484 69.41289095 -43.22580645 7.74193548 69.85526918 -43.22580645 8.06451613 69.96596156 -43.22580645 8.38709677 69.96596156 -43.22580645 8.70967742 69.96596156 -43.22580645 9.03225806 69.96596156 -43.22580645 9.35483871 69.96596156 -43.22580645 9.67741935 69.96596156 -43.22580645 10.00000000 69.96596156 -45.80645161 0.00000000 47.00393487 -45.80645161 0.32258065 47.00393487 -45.80645161 0.64516129 47.00393487 -45.80645161 0.96774194 47.00393487 -45.80645161 1.29032258 47.00393487 -45.80645161 1.61290323 47.00393487 -45.80645161 1.93548387 47.00393487 -45.80645161 2.25806452 47.08260248 -45.80645161 2.58064516 47.40295027 -45.80645161 2.90322581 47.97260761 -45.80645161 3.22580645 48.79588816 -45.80645161 3.54838710 49.87749533 -45.80645161 3.87096774 51.21988342 -45.80645161 4.19354839 52.81813027 -45.80645161 4.51612903 54.65098576 -45.80645161 4.83870968 56.66698079 -45.80645161 5.16129032 58.73758982 -45.80645161 5.48387097 60.62911442 -45.80645161 5.80645161 62.35401414 -45.80645161 6.12903226 63.93019461 -45.80645161 6.45161290 65.34904000 -45.80645161 6.77419355 66.58237935 -45.80645161 7.09677419 67.59018730 -45.80645161 7.41935484 68.32916295 -45.80645161 7.74193548 68.76155861 -45.80645161 8.06451613 68.86971710 -45.80645161 8.38709677 68.86971710 -45.80645161 8.70967742 68.86971710 -45.80645161 9.03225806 68.86971710 -45.80645161 9.35483871 68.86971710 -45.80645161 9.67741935 68.86971710 -45.80645161 10.00000000 68.86971710 -48.38709677 0.00000000 45.90059861 -48.38709677 0.32258065 45.90059861 -48.38709677 0.64516129 45.90059861 -48.38709677 0.96774194 45.90059861 -48.38709677 1.29032258 45.90059861 -48.38709677 1.61290323 45.90059861 -48.38709677 1.93548387 45.90059861 -48.38709677 2.25806452 45.98080335 -48.38709677 2.58064516 46.30690509 -48.38709677 2.90322581 46.88490696 -48.38709677 3.22580645 47.71644736 -48.38709677 3.54838710 48.80327906 -48.38709677 3.87096774 50.14566326 -48.38709677 4.19354839 51.73856779 -48.38709677 4.51612903 53.56406480 -48.38709677 4.83870968 55.57822661 -48.38709677 5.16129032 57.65828336 -48.38709677 5.48387097 59.54837018 -48.38709677 5.80645161 61.26036274 -48.38709677 6.12903226 62.81628542 -48.38709677 6.45161290 64.21114285 -48.38709677 6.77419355 65.41994481 -48.38709677 7.09677419 66.40551444 -48.38709677 7.41935484 67.12705985 -48.38709677 7.74193548 67.54884508 -48.38709677 8.06451613 67.65430104 -48.38709677 8.38709677 67.65430104 -48.38709677 8.70967742 67.65430104 -48.38709677 9.03225806 67.65430104 -48.38709677 9.35483871 67.65430104 -48.38709677 9.67741935 67.65430104 -48.38709677 10.00000000 67.65430104 -50.96774194 0.00000000 44.61641577 -50.96774194 0.32258065 44.61641577 -50.96774194 0.64516129 44.61641577 -50.96774194 0.96774194 44.61641577 -50.96774194 1.29032258 44.61641577 -50.96774194 1.61290323 44.61641577 -50.96774194 1.93548387 44.61641577 -50.96774194 2.25806452 44.69876030 -50.96774194 2.58064516 45.03294688 -50.96774194 2.90322581 45.62298535 -50.96774194 3.22580645 46.46723847 -50.96774194 3.54838710 47.56391012 -50.96774194 3.87096774 48.91074345 -50.96774194 4.19354839 50.50284021 -50.96774194 4.51612903 52.32663397 -50.96774194 4.83870968 54.34758826 -50.96774194 5.16129032 56.44995468 -50.96774194 5.48387097 58.35016147 -50.96774194 5.80645161 60.05744033 -50.96774194 6.12903226 61.59819880 -50.96774194 6.45161290 62.97178502 -50.96774194 6.77419355 64.15714114 -50.96774194 7.09677419 65.12059667 -50.96774194 7.41935484 65.82440942 -50.96774194 7.74193548 66.23526465 -50.96774194 8.06451613 66.33792129 -50.96774194 8.38709677 66.33792129 -50.96774194 8.70967742 66.33792129 -50.96774194 9.03225806 66.33792129 -50.96774194 9.35483871 66.33792129 -50.96774194 9.67741935 66.33792129 -50.96774194 10.00000000 66.33792129 -53.54838710 0.00000000 43.16186397 -53.54838710 0.32258065 43.16186397 -53.54838710 0.64516129 43.16186397 -53.54838710 0.96774194 43.16186397 -53.54838710 1.29032258 43.16186397 -53.54838710 1.61290323 43.16186397 -53.54838710 1.93548387 43.16186397 -53.54838710 2.25806452 43.24693567 -53.54838710 2.58064516 43.59144915 -53.54838710 2.90322581 44.19696211 -53.54838710 3.22580645 45.05782673 -53.54838710 3.54838710 46.16794938 -53.54838710 3.87096774 47.52208653 -53.54838710 4.19354839 49.11561738 -53.54838710 4.51612903 50.94043496 -53.54838710 4.83870968 52.97375509 -53.54838710 5.16129032 55.10984868 -53.54838710 5.48387097 57.03353782 -53.54838710 5.80645161 58.74723142 -53.54838710 6.12903226 60.28074724 -53.54838710 6.45161290 61.63802885 -53.54838710 6.77419355 62.80260996 -53.54838710 7.09677419 63.74506644 -53.54838710 7.41935484 64.43139325 -53.54838710 7.74193548 64.83124074 -53.54838710 8.06451613 64.93106623 -53.54838710 8.38709677 64.93106623 -53.54838710 8.70967742 64.93106623 -53.54838710 9.03225806 64.93106623 -53.54838710 9.35483871 64.93106623 -53.54838710 9.67741935 64.93106623 -53.54838710 10.00000000 64.93106623 -56.12903226 0.00000000 41.56275742 -56.12903226 0.32258065 41.56275742 -56.12903226 0.64516129 41.56275742 -56.12903226 0.96774194 41.56275742 -56.12903226 1.29032258 41.56275742 -56.12903226 1.61290323 41.56275742 -56.12903226 1.93548387 41.56275742 -56.12903226 2.25806452 41.65098310 -56.12903226 2.58064516 42.00739488 -56.12903226 2.90322581 42.63056788 -56.12903226 3.22580645 43.51001484 -56.12903226 3.54838710 44.63446668 -56.12903226 3.87096774 45.99502950 -56.12903226 4.19354839 47.58723244 -56.12903226 4.51612903 49.40932005 -56.12903226 4.83870968 51.45296580 -56.12903226 5.16129032 53.62799552 -56.12903226 5.48387097 55.58793124 -56.12903226 5.80645161 57.32139748 -56.12903226 6.12903226 58.85847793 -56.12903226 6.45161290 60.20693213 -56.12903226 6.77419355 61.35519439 -56.12903226 7.09677419 62.27884289 -56.12903226 7.41935484 62.94847543 -56.12903226 7.74193548 63.33747330 -56.12903226 8.06451613 63.43446352 -56.12903226 8.38709677 63.43446352 -56.12903226 8.70967742 63.43446352 -56.12903226 9.03225806 63.43446352 -56.12903226 9.35483871 63.43446352 -56.12903226 9.67741935 63.43446352 -56.12903226 10.00000000 63.43446352 -58.70967742 0.00000000 39.86708229 -58.70967742 0.32258065 39.86708229 -58.70967742 0.64516129 39.86708229 -58.70967742 0.96774194 39.86708229 -58.70967742 1.29032258 39.86708229 -58.70967742 1.61290323 39.86708229 -58.70967742 1.93548387 39.86708229 -58.70967742 2.25806452 39.95851324 -58.70967742 2.58064516 40.32688461 -58.70967742 2.90322581 40.96728935 -58.70967742 3.22580645 41.86364269 -58.70967742 3.54838710 42.99862876 -58.70967742 3.87096774 44.35883597 -58.70967742 4.19354839 45.93926995 -58.70967742 4.51612903 47.74461410 -58.70967742 4.83870968 49.78326881 -58.70967742 5.16129032 51.98897073 -58.70967742 5.48387097 53.99267848 -58.70967742 5.80645161 55.75955980 -58.70967742 6.12903226 57.31349232 -58.70967742 6.45161290 58.66332782 -58.70967742 6.77419355 59.80184437 -58.70967742 7.09677419 60.71018916 -58.70967742 7.41935484 61.36458028 -58.70967742 7.74193548 61.74313870 -58.70967742 8.06451613 61.83734579 -58.70967742 8.38709677 61.83734579 -58.70967742 8.70967742 61.83734579 -58.70967742 9.03225806 61.83734579 -58.70967742 9.35483871 61.83734579 -58.70967742 9.67741935 61.83734579 -58.70967742 10.00000000 61.83734579 -61.29032258 0.00000000 38.16265421 -61.29032258 0.32258065 38.16265421 -61.29032258 0.64516129 38.16265421 -61.29032258 0.96774194 38.16265421 -61.29032258 1.29032258 38.16265421 -61.29032258 1.61290323 38.16265421 -61.29032258 1.93548387 38.16265421 -61.29032258 2.25806452 38.25686130 -61.29032258 2.58064516 38.63541972 -61.29032258 2.90322581 39.28981084 -61.29032258 3.22580645 40.19815563 -61.29032258 3.54838710 41.33667218 -61.29032258 3.87096774 42.68650768 -61.29032258 4.19354839 44.24044020 -61.29032258 4.51612903 46.00732152 -61.29032258 4.83870968 48.01102927 -61.29032258 5.16129032 50.21673119 -61.29032258 5.48387097 52.25538590 -61.29032258 5.80645161 54.06073005 -61.29032258 6.12903226 55.64116403 -61.29032258 6.45161290 57.00137124 -61.29032258 6.77419355 58.13635731 -61.29032258 7.09677419 59.03271065 -61.29032258 7.41935484 59.67311539 -61.29032258 7.74193548 60.04148676 -61.29032258 8.06451613 60.13291771 -61.29032258 8.38709677 60.13291771 -61.29032258 8.70967742 60.13291771 -61.29032258 9.03225806 60.13291771 -61.29032258 9.35483871 60.13291771 -61.29032258 9.67741935 60.13291771 -61.29032258 10.00000000 60.13291771 -63.87096774 0.00000000 36.56553648 -63.87096774 0.32258065 36.56553648 -63.87096774 0.64516129 36.56553648 -63.87096774 0.96774194 36.56553648 -63.87096774 1.29032258 36.56553648 -63.87096774 1.61290323 36.56553648 -63.87096774 1.93548387 36.56553648 -63.87096774 2.25806452 36.66252670 -63.87096774 2.58064516 37.05152457 -63.87096774 2.90322581 37.72115711 -63.87096774 3.22580645 38.64480561 -63.87096774 3.54838710 39.79306787 -63.87096774 3.87096774 41.14152207 -63.87096774 4.19354839 42.67860252 -63.87096774 4.51612903 44.41206876 -63.87096774 4.83870968 46.37200448 -63.87096774 5.16129032 48.54703420 -63.87096774 5.48387097 50.59067995 -63.87096774 5.80645161 52.41276756 -63.87096774 6.12903226 54.00497050 -63.87096774 6.45161290 55.36553332 -63.87096774 6.77419355 56.48998516 -63.87096774 7.09677419 57.36943212 -63.87096774 7.41935484 57.99260512 -63.87096774 7.74193548 58.34901690 -63.87096774 8.06451613 58.43724258 -63.87096774 8.38709677 58.43724258 -63.87096774 8.70967742 58.43724258 -63.87096774 9.03225806 58.43724258 -63.87096774 9.35483871 58.43724258 -63.87096774 9.67741935 58.43724258 -63.87096774 10.00000000 58.43724258 -66.45161290 0.00000000 35.06893377 -66.45161290 0.32258065 35.06893377 -66.45161290 0.64516129 35.06893377 -66.45161290 0.96774194 35.06893377 -66.45161290 1.29032258 35.06893377 -66.45161290 1.61290323 35.06893377 -66.45161290 1.93548387 35.06893377 -66.45161290 2.25806452 35.16875926 -66.45161290 2.58064516 35.56860675 -66.45161290 2.90322581 36.25493356 -66.45161290 3.22580645 37.19739004 -66.45161290 3.54838710 38.36197115 -66.45161290 3.87096774 39.71925276 -66.45161290 4.19354839 41.25276858 -66.45161290 4.51612903 42.96646218 -66.45161290 4.83870968 44.89015132 -66.45161290 5.16129032 47.02624491 -66.45161290 5.48387097 49.05956504 -66.45161290 5.80645161 50.88438262 -66.45161290 6.12903226 52.47791347 -66.45161290 6.45161290 53.83205062 -66.45161290 6.77419355 54.94217327 -66.45161290 7.09677419 55.80303789 -66.45161290 7.41935484 56.40855085 -66.45161290 7.74193548 56.75306433 -66.45161290 8.06451613 56.83813603 -66.45161290 8.38709677 56.83813603 -66.45161290 8.70967742 56.83813603 -66.45161290 9.03225806 56.83813603 -66.45161290 9.35483871 56.83813603 -66.45161290 9.67741935 56.83813603 -66.45161290 10.00000000 56.83813603 -69.03225806 0.00000000 33.66207871 -69.03225806 0.32258065 33.66207871 -69.03225806 0.64516129 33.66207871 -69.03225806 0.96774194 33.66207871 -69.03225806 1.29032258 33.66207871 -69.03225806 1.61290323 33.66207871 -69.03225806 1.93548387 33.66207871 -69.03225806 2.25806452 33.76473535 -69.03225806 2.58064516 34.17559058 -69.03225806 2.90322581 34.87940333 -69.03225806 3.22580645 35.84285886 -69.03225806 3.54838710 37.02821498 -69.03225806 3.87096774 38.40180120 -69.03225806 4.19354839 39.94255967 -69.03225806 4.51612903 41.64983853 -69.03225806 4.83870968 43.55004532 -69.03225806 5.16129032 45.65241174 -69.03225806 5.48387097 47.67336603 -69.03225806 5.80645161 49.49715979 -69.03225806 6.12903226 51.08925655 -69.03225806 6.45161290 52.43608988 -69.03225806 6.77419355 53.53276153 -69.03225806 7.09677419 54.37701465 -69.03225806 7.41935484 54.96705312 -69.03225806 7.74193548 55.30123970 -69.03225806 8.06451613 55.38358423 -69.03225806 8.38709677 55.38358423 -69.03225806 8.70967742 55.38358423 -69.03225806 9.03225806 55.38358423 -69.03225806 9.35483871 55.38358423 -69.03225806 9.67741935 55.38358423 -69.03225806 10.00000000 55.38358423 -71.61290323 0.00000000 32.34569896 -71.61290323 0.32258065 32.34569896 -71.61290323 0.64516129 32.34569896 -71.61290323 0.96774194 32.34569896 -71.61290323 1.29032258 32.34569896 -71.61290323 1.61290323 32.34569896 -71.61290323 1.93548387 32.34569896 -71.61290323 2.25806452 32.45115492 -71.61290323 2.58064516 32.87294015 -71.61290323 2.90322581 33.59448556 -71.61290323 3.22580645 34.58005519 -71.61290323 3.54838710 35.78885715 -71.61290323 3.87096774 37.18371458 -71.61290323 4.19354839 38.73963726 -71.61290323 4.51612903 40.45162982 -71.61290323 4.83870968 42.34171664 -71.61290323 5.16129032 44.42177339 -71.61290323 5.48387097 46.43593520 -71.61290323 5.80645161 48.26143221 -71.61290323 6.12903226 49.85433674 -71.61290323 6.45161290 51.19672094 -71.61290323 6.77419355 52.28355264 -71.61290323 7.09677419 53.11509304 -71.61290323 7.41935484 53.69309491 -71.61290323 7.74193548 54.01919665 -71.61290323 8.06451613 54.09940139 -71.61290323 8.38709677 54.09940139 -71.61290323 8.70967742 54.09940139 -71.61290323 9.03225806 54.09940139 -71.61290323 9.35483871 54.09940139 -71.61290323 9.67741935 54.09940139 -71.61290323 10.00000000 54.09940139 -74.19354839 0.00000000 31.13028290 -74.19354839 0.32258065 31.13028290 -74.19354839 0.64516129 31.13028290 -74.19354839 0.96774194 31.13028290 -74.19354839 1.29032258 31.13028290 -74.19354839 1.61290323 31.13028290 -74.19354839 1.93548387 31.13028290 -74.19354839 2.25806452 31.23844139 -74.19354839 2.58064516 31.67083705 -74.19354839 2.90322581 32.40981270 -74.19354839 3.22580645 33.41762065 -74.19354839 3.54838710 34.65096000 -74.19354839 3.87096774 36.06980539 -74.19354839 4.19354839 37.64598586 -74.19354839 4.51612903 39.37088558 -74.19354839 4.83870968 41.26241018 -74.19354839 5.16129032 43.33301921 -74.19354839 5.48387097 45.34901424 -74.19354839 5.80645161 47.18186973 -74.19354839 6.12903226 48.78011658 -74.19354839 6.45161290 50.12250467 -74.19354839 6.77419355 51.20411184 -74.19354839 7.09677419 52.02739239 -74.19354839 7.41935484 52.59704973 -74.19354839 7.74193548 52.91739752 -74.19354839 8.06451613 52.99606513 -74.19354839 8.38709677 52.99606513 -74.19354839 8.70967742 52.99606513 -74.19354839 9.03225806 52.99606513 -74.19354839 9.35483871 52.99606513 -74.19354839 9.67741935 52.99606513 -74.19354839 10.00000000 52.99606513 -76.77419355 0.00000000 30.03403844 -76.77419355 0.32258065 30.03403844 -76.77419355 0.64516129 30.03403844 -76.77419355 0.96774194 30.03403844 -76.77419355 1.29032258 30.03403844 -76.77419355 1.61290323 30.03403844 -76.77419355 1.93548387 30.03403844 -76.77419355 2.25806452 30.14473082 -76.77419355 2.58064516 30.58710905 -76.77419355 2.90322581 31.34260926 -76.77419355 3.22580645 32.37179603 -76.77419355 3.54838710 33.62930053 -76.77419355 3.87096774 35.07281797 -76.77419355 4.19354839 36.67171858 -76.77419355 4.51612903 38.41463069 -76.77419355 4.83870968 40.31617816 -76.77419355 5.16129032 42.38867037 -76.77419355 5.48387097 44.41484793 -76.77419355 5.80645161 46.26081490 -76.77419355 6.12903226 47.86900472 -76.77419355 6.45161290 49.21573858 -76.77419355 6.77419355 50.29644558 -76.77419355 7.09677419 51.11552429 -76.77419355 7.41935484 51.68014353 -76.77419355 7.74193548 51.99680388 -76.77419355 8.06451613 52.07446638 -76.77419355 8.38709677 52.07446638 -76.77419355 8.70967742 52.07446638 -76.77419355 9.03225806 52.07446638 -76.77419355 9.35483871 52.07446638 -76.77419355 9.67741935 52.07446638 -76.77419355 10.00000000 52.07446638 -79.35483871 0.00000000 29.08044448 -79.35483871 0.32258065 29.08044448 -79.35483871 0.64516129 29.08044448 -79.35483871 0.96774194 29.08044448 -79.35483871 1.29032258 29.08044448 -79.35483871 1.61290323 29.08044448 -79.35483871 1.93548387 29.08044448 -79.35483871 2.25806452 29.19341503 -79.35483871 2.58064516 29.64478759 -79.35483871 2.90322581 30.41524617 -79.35483871 3.22580645 31.46395299 -79.35483871 3.54838710 32.74385629 -79.35483871 3.87096774 34.21086664 -79.35483871 4.19354839 35.83253483 -79.35483871 4.51612903 37.59555433 -79.35483871 4.83870968 39.51224549 -79.35483871 5.16129032 41.59470153 -79.35483871 5.48387097 43.63697016 -79.35483871 5.80645161 45.49996876 -79.35483871 6.12903226 47.12124022 -79.35483871 6.45161290 48.47541169 -79.35483871 6.77419355 49.55843823 -79.35483871 7.09677419 50.37642610 -79.35483871 7.41935484 50.93858374 -79.35483871 7.74193548 51.25318028 -79.35483871 8.06451613 51.33025698 -79.35483871 8.38709677 51.33025698 -79.35483871 8.70967742 51.33025698 -79.35483871 9.03225806 51.33025698 -79.35483871 9.35483871 51.33025698 -79.35483871 9.67741935 51.33025698 -79.35483871 10.00000000 51.33025698 -81.93548387 0.00000000 28.29538700 -81.93548387 0.32258065 28.29538700 -81.93548387 0.64516129 28.29538700 -81.93548387 0.96774194 28.29538700 -81.93548387 1.29032258 28.29538700 -81.93548387 1.61290323 28.29538700 -81.93548387 1.93548387 28.29538700 -81.93548387 2.25806452 28.41028455 -81.93548387 2.58064516 28.86927041 -81.93548387 2.90322581 29.65243953 -81.93548387 3.22580645 30.71781642 -81.93548387 3.54838710 32.01703240 -81.93548387 3.87096774 33.50465222 -81.93548387 4.19354839 35.14694643 -81.93548387 4.51612903 36.92935764 -81.93548387 4.83870968 38.86277312 -81.93548387 5.16129032 40.95922876 -81.93548387 5.48387097 43.01992647 -81.93548387 5.80645161 44.90101116 -81.93548387 6.12903226 46.53623555 -81.93548387 6.45161290 47.89911456 -81.93548387 6.77419355 48.98620009 -81.93548387 7.09677419 49.80503500 -81.93548387 7.41935484 50.36645607 -81.93548387 7.74193548 50.68011518 -81.93548387 8.06451613 50.75690105 -81.93548387 8.38709677 50.75690105 -81.93548387 8.70967742 50.75690105 -81.93548387 9.03225806 50.75690105 -81.93548387 9.35483871 50.75690105 -81.93548387 9.67741935 50.75690105 -81.93548387 10.00000000 50.75690105 -84.51612903 0.00000000 27.70400708 -84.51612903 0.32258065 27.70400708 -84.51612903 0.64516129 27.70400708 -84.51612903 0.96774194 27.70400708 -84.51612903 1.29032258 27.70400708 -84.51612903 1.61290323 27.70400708 -84.51612903 1.93548387 27.70400708 -84.51612903 2.25806452 27.82038678 -84.51612903 2.58064516 28.28524058 -84.51612903 2.90322581 29.07819814 -84.51612903 3.22580645 30.15647910 -84.51612903 3.54838710 31.47072925 -84.51612903 3.87096774 32.97457239 -84.51612903 4.19354839 34.63344012 -84.51612903 4.51612903 36.43203948 -84.51612903 4.83870968 38.38047572 -84.51612903 5.16129032 40.49087046 -84.51612903 5.48387097 42.56852096 -84.51612903 5.80645161 44.46563907 -84.51612903 6.12903226 46.11324911 -84.51612903 6.45161290 47.48419380 -84.51612903 6.77419355 48.57557521 -84.51612903 7.09677419 49.39604331 -84.51612903 7.41935484 49.95763951 -84.51612903 7.74193548 50.27102141 -84.51612903 8.06451613 50.34769576 -84.51612903 8.38709677 50.34769576 -84.51612903 8.70967742 50.34769576 -84.51612903 9.03225806 50.34769576 -84.51612903 9.35483871 50.34769576 -84.51612903 9.67741935 50.34769576 -84.51612903 10.00000000 50.34769576 -87.09677419 0.00000000 27.32753868 -87.09677419 0.32258065 27.32753868 -87.09677419 0.64516129 27.32753868 -87.09677419 0.96774194 27.32753868 -87.09677419 1.29032258 27.32753868 -87.09677419 1.61290323 27.32753868 -87.09677419 1.93548387 27.32753868 -87.09677419 2.25806452 27.44487552 -87.09677419 2.58064516 27.91351918 -87.09677419 2.90322581 28.71281814 -87.09677419 3.22580645 29.79945105 -87.09677419 3.54838710 31.12347805 -87.09677419 3.87096774 32.63794195 -87.09677419 4.19354839 34.30780680 -87.09677419 4.51612903 36.11738582 -87.09677419 4.83870968 38.07643021 -87.09677419 5.16129032 40.19718575 -87.09677419 5.48387097 42.28697861 -87.09677419 5.80645161 44.19535993 -87.09677419 6.12903226 45.85167215 -87.09677419 6.45161290 47.22840378 -87.09677419 6.77419355 48.32305272 -87.09677419 7.09677419 49.14498635 -87.09677419 7.41935484 49.70700518 -87.09677419 7.74193548 50.02039298 -87.09677419 8.06451613 50.09704202 -87.09677419 8.38709677 50.09704202 -87.09677419 8.70967742 50.09704202 -87.09677419 9.03225806 50.09704202 -87.09677419 9.35483871 50.09704202 -87.09677419 9.67741935 50.09704202 -87.09677419 10.00000000 50.09704202 -89.67741935 0.00000000 27.18053151 -89.67741935 0.32258065 27.18053151 -89.67741935 0.64516129 27.18053151 -89.67741935 0.96774194 27.18053151 -89.67741935 1.29032258 27.18053151 -89.67741935 1.61290323 27.18053151 -89.67741935 1.93548387 27.18053151 -89.67741935 2.25806452 27.29824496 -89.67741935 2.58064516 27.76837995 -89.67741935 2.90322581 28.57017467 -89.67741935 3.22580645 29.66010334 -89.67741935 3.54838710 30.98799391 -89.67741935 3.87096774 32.50667083 -89.67741935 4.19354839 34.18091007 -89.67741935 4.51612903 35.99491498 -89.67741935 4.83870968 37.95831767 -89.67741935 5.16129032 40.08342816 -89.67741935 5.48387097 42.17824316 -89.67741935 5.80645161 44.09124153 -89.67741935 6.12903226 45.75112057 -89.67741935 6.45161290 47.13024605 -89.67741935 6.77419355 48.22628008 -89.67741935 7.09677419 49.04887301 -89.67741935 7.41935484 49.61112035 -89.67741935 7.74193548 49.92454762 -89.67741935 8.06451613 50.00119608 -89.67741935 8.38709677 50.00119608 -89.67741935 8.70967742 50.00119608 -89.67741935 9.03225806 50.00119608 -89.67741935 9.35483871 50.00119608 -89.67741935 9.67741935 50.00119608 -89.67741935 10.00000000 50.00119608 -92.25806452 0.00000000 27.17868597 -92.25806452 0.32258065 27.17868597 -92.25806452 0.64516129 27.17868597 -92.25806452 0.96774194 27.17868597 -92.25806452 1.29032258 27.17868597 -92.25806452 1.61290323 27.17868597 -92.25806452 1.93548387 27.17868597 -92.25806452 2.25806452 27.29640417 -92.25806452 2.58064516 27.76655792 -92.25806452 2.90322581 28.56838404 -92.25806452 3.22580645 29.65835418 -92.25806452 3.54838710 30.98629338 -92.25806452 3.87096774 32.50502336 -92.25806452 4.19354839 34.17931792 -92.25806452 4.51612903 35.99337888 -92.25806452 4.83870968 37.95683706 -92.25806452 5.16129032 40.08200332 -92.25806452 5.48387097 42.17688236 -92.25806452 5.80645161 44.08993946 -92.25806452 6.12903226 45.74986387 -92.25806452 6.45161290 47.12901987 -92.25806452 6.77419355 48.22507168 -92.25806452 7.09677419 49.04767319 -92.25806452 7.41935484 49.60992362 -92.25806452 7.74193548 49.92335151 -92.25806452 8.06451613 50.00000000 -92.25806452 8.38709677 50.00000000 -92.25806452 8.70967742 50.00000000 -92.25806452 9.03225806 50.00000000 -92.25806452 9.35483871 50.00000000 -92.25806452 9.67741935 50.00000000 -92.25806452 10.00000000 50.00000000 -94.83870968 0.00000000 27.17868597 -94.83870968 0.32258065 27.17868597 -94.83870968 0.64516129 27.17868597 -94.83870968 0.96774194 27.17868597 -94.83870968 1.29032258 27.17868597 -94.83870968 1.61290323 27.17868597 -94.83870968 1.93548387 27.17868597 -94.83870968 2.25806452 27.29640417 -94.83870968 2.58064516 27.76655792 -94.83870968 2.90322581 28.56838404 -94.83870968 3.22580645 29.65835418 -94.83870968 3.54838710 30.98629338 -94.83870968 3.87096774 32.50502336 -94.83870968 4.19354839 34.17931792 -94.83870968 4.51612903 35.99337888 -94.83870968 4.83870968 37.95683706 -94.83870968 5.16129032 40.08200332 -94.83870968 5.48387097 42.17688236 -94.83870968 5.80645161 44.08993946 -94.83870968 6.12903226 45.74986387 -94.83870968 6.45161290 47.12901987 -94.83870968 6.77419355 48.22507168 -94.83870968 7.09677419 49.04767319 -94.83870968 7.41935484 49.60992362 -94.83870968 7.74193548 49.92335151 -94.83870968 8.06451613 50.00000000 -94.83870968 8.38709677 50.00000000 -94.83870968 8.70967742 50.00000000 -94.83870968 9.03225806 50.00000000 -94.83870968 9.35483871 50.00000000 -94.83870968 9.67741935 50.00000000 -94.83870968 10.00000000 50.00000000 -97.41935484 0.00000000 27.17868597 -97.41935484 0.32258065 27.17868597 -97.41935484 0.64516129 27.17868597 -97.41935484 0.96774194 27.17868597 -97.41935484 1.29032258 27.17868597 -97.41935484 1.61290323 27.17868597 -97.41935484 1.93548387 27.17868597 -97.41935484 2.25806452 27.29640417 -97.41935484 2.58064516 27.76655792 -97.41935484 2.90322581 28.56838404 -97.41935484 3.22580645 29.65835418 -97.41935484 3.54838710 30.98629338 -97.41935484 3.87096774 32.50502336 -97.41935484 4.19354839 34.17931792 -97.41935484 4.51612903 35.99337888 -97.41935484 4.83870968 37.95683706 -97.41935484 5.16129032 40.08200332 -97.41935484 5.48387097 42.17688236 -97.41935484 5.80645161 44.08993946 -97.41935484 6.12903226 45.74986387 -97.41935484 6.45161290 47.12901987 -97.41935484 6.77419355 48.22507168 -97.41935484 7.09677419 49.04767319 -97.41935484 7.41935484 49.60992362 -97.41935484 7.74193548 49.92335151 -97.41935484 8.06451613 50.00000000 -97.41935484 8.38709677 50.00000000 -97.41935484 8.70967742 50.00000000 -97.41935484 9.03225806 50.00000000 -97.41935484 9.35483871 50.00000000 -97.41935484 9.67741935 50.00000000 -97.41935484 10.00000000 50.00000000 -100.00000000 0.00000000 27.17868597 -100.00000000 0.32258065 27.17868597 -100.00000000 0.64516129 27.17868597 -100.00000000 0.96774194 27.17868597 -100.00000000 1.29032258 27.17868597 -100.00000000 1.61290323 27.17868597 -100.00000000 1.93548387 27.17868597 -100.00000000 2.25806452 27.29640417 -100.00000000 2.58064516 27.76655792 -100.00000000 2.90322581 28.56838404 -100.00000000 3.22580645 29.65835418 -100.00000000 3.54838710 30.98629338 -100.00000000 3.87096774 32.50502336 -100.00000000 4.19354839 34.17931792 -100.00000000 4.51612903 35.99337888 -100.00000000 4.83870968 37.95683706 -100.00000000 5.16129032 40.08200332 -100.00000000 5.48387097 42.17688236 -100.00000000 5.80645161 44.08993946 -100.00000000 6.12903226 45.74986387 -100.00000000 6.45161290 47.12901987 -100.00000000 6.77419355 48.22507168 -100.00000000 7.09677419 49.04767319 -100.00000000 7.41935484 49.60992362 -100.00000000 7.74193548 49.92335151 -100.00000000 8.06451613 50.00000000 -100.00000000 8.38709677 50.00000000 -100.00000000 8.70967742 50.00000000 -100.00000000 9.03225806 50.00000000 -100.00000000 9.35483871 50.00000000 -100.00000000 9.67741935 50.00000000 -100.00000000 10.00000000 50.00000000 +Age RiskTolerance PercentageInStocks +20.000000000 0.000000000 50.000000000 +20.000000000 0.322580645 50.000000000 +20.000000000 0.645161290 50.000000000 +20.000000000 0.967741935 50.000000000 +20.000000000 1.290322581 50.000000000 +20.000000000 1.612903226 50.000000000 +20.000000000 1.935483871 50.000000000 +20.000000000 2.258064516 50.076648486 +20.000000000 2.580645161 50.390076379 +20.000000000 2.903225806 50.952326813 +20.000000000 3.225806452 51.774928323 +20.000000000 3.548387097 52.870980129 +20.000000000 3.870967742 54.250136129 +20.000000000 4.193548387 55.910060541 +20.000000000 4.516129032 57.823117640 +20.000000000 4.838709677 59.917996684 +20.000000000 5.161290323 62.043162940 +20.000000000 5.483870968 64.006621117 +20.000000000 5.806451613 65.820682078 +20.000000000 6.129032258 67.494976640 +20.000000000 6.451612903 69.013706618 +20.000000000 6.774193548 70.341645817 +20.000000000 7.096774194 71.431615962 +20.000000000 7.419354839 72.233442079 +20.000000000 7.741935484 72.703595829 +20.000000000 8.064516129 72.821314025 +20.000000000 8.387096774 72.821314025 +20.000000000 8.709677419 72.821314025 +20.000000000 9.032258065 72.821314025 +20.000000000 9.354838710 72.821314025 +20.000000000 9.677419355 72.821314025 +20.000000000 10.000000000 72.821314025 +22.580645161 0.000000000 50.000000000 +22.580645161 0.322580645 50.000000000 +22.580645161 0.645161290 50.000000000 +22.580645161 0.967741935 50.000000000 +22.580645161 1.290322581 50.000000000 +22.580645161 1.612903226 50.000000000 +22.580645161 1.935483871 50.000000000 +22.580645161 2.258064516 50.076648486 +22.580645161 2.580645161 50.390076379 +22.580645161 2.903225806 50.952326813 +22.580645161 3.225806452 51.774928323 +22.580645161 3.548387097 52.870980129 +22.580645161 3.870967742 54.250136129 +22.580645161 4.193548387 55.910060541 +22.580645161 4.516129032 57.823117640 +22.580645161 4.838709677 59.917996684 +22.580645161 5.161290323 62.043162940 +22.580645161 5.483870968 64.006621117 +22.580645161 5.806451613 65.820682078 +22.580645161 6.129032258 67.494976640 +22.580645161 6.451612903 69.013706618 +22.580645161 6.774193548 70.341645817 +22.580645161 7.096774194 71.431615962 +22.580645161 7.419354839 72.233442079 +22.580645161 7.741935484 72.703595829 +22.580645161 8.064516129 72.821314025 +22.580645161 8.387096774 72.821314025 +22.580645161 8.709677419 72.821314025 +22.580645161 9.032258065 72.821314025 +22.580645161 9.354838710 72.821314025 +22.580645161 9.677419355 72.821314025 +22.580645161 10.000000000 72.821314025 +25.161290323 0.000000000 50.000000000 +25.161290323 0.322580645 50.000000000 +25.161290323 0.645161290 50.000000000 +25.161290323 0.967741935 50.000000000 +25.161290323 1.290322581 50.000000000 +25.161290323 1.612903226 50.000000000 +25.161290323 1.935483871 50.000000000 +25.161290323 2.258064516 50.076648486 +25.161290323 2.580645161 50.390076379 +25.161290323 2.903225806 50.952326813 +25.161290323 3.225806452 51.774928323 +25.161290323 3.548387097 52.870980129 +25.161290323 3.870967742 54.250136129 +25.161290323 4.193548387 55.910060541 +25.161290323 4.516129032 57.823117640 +25.161290323 4.838709677 59.917996684 +25.161290323 5.161290323 62.043162940 +25.161290323 5.483870968 64.006621117 +25.161290323 5.806451613 65.820682078 +25.161290323 6.129032258 67.494976640 +25.161290323 6.451612903 69.013706618 +25.161290323 6.774193548 70.341645817 +25.161290323 7.096774194 71.431615962 +25.161290323 7.419354839 72.233442079 +25.161290323 7.741935484 72.703595829 +25.161290323 8.064516129 72.821314025 +25.161290323 8.387096774 72.821314025 +25.161290323 8.709677419 72.821314025 +25.161290323 9.032258065 72.821314025 +25.161290323 9.354838710 72.821314025 +25.161290323 9.677419355 72.821314025 +25.161290323 10.000000000 72.821314025 +27.741935484 0.000000000 50.000000000 +27.741935484 0.322580645 50.000000000 +27.741935484 0.645161290 50.000000000 +27.741935484 0.967741935 50.000000000 +27.741935484 1.290322581 50.000000000 +27.741935484 1.612903226 50.000000000 +27.741935484 1.935483871 50.000000000 +27.741935484 2.258064516 50.076648486 +27.741935484 2.580645161 50.390076379 +27.741935484 2.903225806 50.952326813 +27.741935484 3.225806452 51.774928323 +27.741935484 3.548387097 52.870980129 +27.741935484 3.870967742 54.250136129 +27.741935484 4.193548387 55.910060541 +27.741935484 4.516129032 57.823117640 +27.741935484 4.838709677 59.917996684 +27.741935484 5.161290323 62.043162940 +27.741935484 5.483870968 64.006621117 +27.741935484 5.806451613 65.820682078 +27.741935484 6.129032258 67.494976640 +27.741935484 6.451612903 69.013706618 +27.741935484 6.774193548 70.341645817 +27.741935484 7.096774194 71.431615962 +27.741935484 7.419354839 72.233442079 +27.741935484 7.741935484 72.703595829 +27.741935484 8.064516129 72.821314025 +27.741935484 8.387096774 72.821314025 +27.741935484 8.709677419 72.821314025 +27.741935484 9.032258065 72.821314025 +27.741935484 9.354838710 72.821314025 +27.741935484 9.677419355 72.821314025 +27.741935484 10.000000000 72.821314025 +30.322580645 0.000000000 49.998803919 +30.322580645 0.322580645 49.998803919 +30.322580645 0.645161290 49.998803919 +30.322580645 0.967741935 49.998803919 +30.322580645 1.290322581 49.998803919 +30.322580645 1.612903226 49.998803919 +30.322580645 1.935483871 49.998803919 +30.322580645 2.258064516 50.075452379 +30.322580645 2.580645161 50.388879647 +30.322580645 2.903225806 50.951126990 +30.322580645 3.225806452 51.773719919 +30.322580645 3.548387097 52.869753955 +30.322580645 3.870967742 54.248879432 +30.322580645 4.193548387 55.908758472 +30.322580645 4.516129032 57.821756837 +30.322580645 4.838709677 59.916571839 +30.322580645 5.161290323 62.041682326 +30.322580645 5.483870968 64.005085024 +30.322580645 5.806451613 65.819089933 +30.322580645 6.129032258 67.493329173 +30.322580645 6.451612903 69.012006089 +30.322580645 6.774193548 70.339896659 +30.322580645 7.096774194 71.429825333 +30.322580645 7.419354839 72.231620048 +30.322580645 7.741935484 72.701755036 +30.322580645 8.064516129 72.819468494 +30.322580645 8.387096774 72.819468494 +30.322580645 8.709677419 72.819468494 +30.322580645 9.032258065 72.819468494 +30.322580645 9.354838710 72.819468494 +30.322580645 9.677419355 72.819468494 +30.322580645 10.000000000 72.819468494 +32.903225806 0.000000000 49.902957979 +32.903225806 0.322580645 49.902957979 +32.903225806 0.645161290 49.902957979 +32.903225806 0.967741935 49.902957979 +32.903225806 1.290322581 49.902957979 +32.903225806 1.612903226 49.902957979 +32.903225806 1.935483871 49.902957979 +32.903225806 2.258064516 49.979607017 +32.903225806 2.580645161 50.292994821 +32.903225806 2.903225806 50.855013655 +32.903225806 3.225806452 51.676947279 +32.903225806 3.548387097 52.771596216 +32.903225806 3.870967742 54.148327846 +32.903225806 4.193548387 55.804640065 +32.903225806 4.516129032 57.713021387 +32.903225806 4.838709677 59.802814253 +32.903225806 5.161290323 61.923569792 +32.903225806 5.483870968 63.882614176 +32.903225806 5.806451613 65.692193202 +32.903225806 6.129032258 67.362058048 +32.903225806 6.451612903 68.876521949 +32.903225806 6.774193548 70.200548955 +32.903225806 7.096774194 71.287181858 +32.903225806 7.419354839 72.086480819 +32.903225806 7.741935484 72.555124481 +32.903225806 8.064516129 72.672461319 +32.903225806 8.387096774 72.672461319 +32.903225806 8.709677419 72.672461319 +32.903225806 9.032258065 72.672461319 +32.903225806 9.354838710 72.672461319 +32.903225806 9.677419355 72.672461319 +32.903225806 10.000000000 72.672461319 +35.483870968 0.000000000 49.652304243 +35.483870968 0.322580645 49.652304243 +35.483870968 0.645161290 49.652304243 +35.483870968 0.967741935 49.652304243 +35.483870968 1.290322581 49.652304243 +35.483870968 1.612903226 49.652304243 +35.483870968 1.935483871 49.652304243 +35.483870968 2.258064516 49.728978589 +35.483870968 2.580645161 50.042360495 +35.483870968 2.903225806 50.603956690 +35.483870968 3.225806452 51.424424786 +35.483870968 3.548387097 52.515806201 +35.483870968 3.870967742 53.886750889 +35.483870968 4.193548387 55.534360928 +35.483870968 4.516129032 57.431479038 +35.483870968 4.838709677 59.509129544 +35.483870968 5.161290323 61.619524277 +35.483870968 5.483870968 63.567960518 +35.483870968 5.806451613 65.366559879 +35.483870968 6.129032258 67.025427611 +35.483870968 6.451612903 68.529270750 +35.483870968 6.774193548 69.843520900 +35.483870968 7.096774194 70.921801863 +35.483870968 7.419354839 71.714759421 +35.483870968 7.741935484 72.179613221 +35.483870968 8.064516129 72.295992918 +35.483870968 8.387096774 72.295992918 +35.483870968 8.709677419 72.295992918 +35.483870968 9.032258065 72.295992918 +35.483870968 9.354838710 72.295992918 +35.483870968 9.677419355 72.295992918 +35.483870968 10.000000000 72.295992918 +38.064516129 0.000000000 49.243098952 +38.064516129 0.322580645 49.243098952 +38.064516129 0.645161290 49.243098952 +38.064516129 0.967741935 49.243098952 +38.064516129 1.290322581 49.243098952 +38.064516129 1.612903226 49.243098952 +38.064516129 1.935483871 49.243098952 +38.064516129 2.258064516 49.319884816 +38.064516129 2.580645161 49.633543934 +38.064516129 2.903225806 50.194964997 +38.064516129 3.225806452 51.013799907 +38.064516129 3.548387097 52.100885441 +38.064516129 3.870967742 53.463764454 +38.064516129 4.193548387 55.098988836 +38.064516129 4.516129032 56.980073530 +38.064516129 4.838709677 59.040771242 +38.064516129 5.161290323 61.137226881 +38.064516129 5.483870968 63.070642355 +38.064516129 5.806451613 64.853053568 +38.064516129 6.129032258 66.495347777 +38.064516129 6.451612903 67.982967596 +38.064516129 6.774193548 69.282183577 +38.064516129 7.096774194 70.347560475 +38.064516129 7.419354839 71.130729588 +38.064516129 7.741935484 71.589715449 +38.064516129 8.064516129 71.704613000 +38.064516129 8.387096774 71.704613000 +38.064516129 8.709677419 71.704613000 +38.064516129 9.032258065 71.704613000 +38.064516129 9.354838710 71.704613000 +38.064516129 9.677419355 71.704613000 +38.064516129 10.000000000 71.704613000 +40.645161290 0.000000000 48.669743020 +40.645161290 0.322580645 48.669743020 +40.645161290 0.645161290 48.669743020 +40.645161290 0.967741935 48.669743020 +40.645161290 1.290322581 48.669743020 +40.645161290 1.612903226 48.669743020 +40.645161290 1.935483871 48.669743020 +40.645161290 2.258064516 48.746819724 +40.645161290 2.580645161 49.061416258 +40.645161290 2.903225806 49.623573900 +40.645161290 3.225806452 50.441561774 +40.645161290 3.548387097 51.524588313 +40.645161290 3.870967742 52.878759776 +40.645161290 4.193548387 54.500031239 +40.645161290 4.516129032 56.363029835 +40.645161290 4.838709677 58.405298469 +40.645161290 5.161290323 60.487754513 +40.645161290 5.483870968 62.404445671 +40.645161290 5.806451613 64.167465175 +40.645161290 6.129032258 65.789133360 +40.645161290 6.451612903 67.256143706 +40.645161290 6.774193548 68.536047010 +40.645161290 7.096774194 69.584753827 +40.645161290 7.419354839 70.355212405 +40.645161290 7.741935484 70.806584970 +40.645161290 8.064516129 70.919555525 +40.645161290 8.387096774 70.919555525 +40.645161290 8.709677419 70.919555525 +40.645161290 9.032258065 70.919555525 +40.645161290 9.354838710 70.919555525 +40.645161290 9.677419355 70.919555525 +40.645161290 10.000000000 70.919555525 +43.225806452 0.000000000 47.925533624 +43.225806452 0.322580645 47.925533624 +43.225806452 0.645161290 47.925533624 +43.225806452 0.967741935 47.925533624 +43.225806452 1.290322581 47.925533624 +43.225806452 1.612903226 47.925533624 +43.225806452 1.935483871 47.925533624 +43.225806452 2.258064516 48.003196119 +43.225806452 2.580645161 48.319856471 +43.225806452 2.903225806 48.884475705 +43.225806452 3.225806452 49.703554418 +43.225806452 3.548387097 50.784261421 +43.225806452 3.870967742 52.130995284 +43.225806452 4.193548387 53.739185104 +43.225806452 4.516129032 55.585152066 +43.225806452 4.838709677 57.611329633 +43.225806452 5.161290323 59.683821844 +43.225806452 5.483870968 61.585369310 +43.225806452 5.806451613 63.328281417 +43.225806452 6.129032258 64.927182028 +43.225806452 6.451612903 66.370699474 +43.225806452 6.774193548 67.628203974 +43.225806452 7.096774194 68.657390741 +43.225806452 7.419354839 69.412890949 +43.225806452 7.741935484 69.855269182 +43.225806452 8.064516129 69.965961562 +43.225806452 8.387096774 69.965961562 +43.225806452 8.709677419 69.965961562 +43.225806452 9.032258065 69.965961562 +43.225806452 9.354838710 69.965961562 +43.225806452 9.677419355 69.965961562 +43.225806452 10.000000000 69.965961562 +45.806451613 0.000000000 47.003934865 +45.806451613 0.322580645 47.003934865 +45.806451613 0.645161290 47.003934865 +45.806451613 0.967741935 47.003934865 +45.806451613 1.290322581 47.003934865 +45.806451613 1.612903226 47.003934865 +45.806451613 1.935483871 47.003934865 +45.806451613 2.258064516 47.082602480 +45.806451613 2.580645161 47.402950274 +45.806451613 2.903225806 47.972607613 +45.806451613 3.225806452 48.795888161 +45.806451613 3.548387097 49.877495327 +45.806451613 3.870967742 51.219883421 +45.806451613 4.193548387 52.818130271 +45.806451613 4.516129032 54.650985755 +45.806451613 4.838709677 56.666980792 +45.806451613 5.161290323 58.737589822 +45.806451613 5.483870968 60.629114424 +45.806451613 5.806451613 62.354014142 +45.806451613 6.129032258 63.930194608 +45.806451613 6.451612903 65.349040002 +45.806451613 6.774193548 66.582379353 +45.806451613 7.096774194 67.590187304 +45.806451613 7.419354839 68.329162947 +45.806451613 7.741935484 68.761558609 +45.806451613 8.064516129 68.869717097 +45.806451613 8.387096774 68.869717097 +45.806451613 8.709677419 68.869717097 +45.806451613 9.032258065 68.869717097 +45.806451613 9.354838710 68.869717097 +45.806451613 9.677419355 68.869717097 +45.806451613 10.000000000 68.869717097 +48.387096774 0.000000000 45.900598613 +48.387096774 0.322580645 45.900598613 +48.387096774 0.645161290 45.900598613 +48.387096774 0.967741935 45.900598613 +48.387096774 1.290322581 45.900598613 +48.387096774 1.612903226 45.900598613 +48.387096774 1.935483871 45.900598613 +48.387096774 2.258064516 45.980803355 +48.387096774 2.580645161 46.306905089 +48.387096774 2.903225806 46.884906961 +48.387096774 3.225806452 47.716447362 +48.387096774 3.548387097 48.803279055 +48.387096774 3.870967742 50.145663256 +48.387096774 4.193548387 51.738567788 +48.387096774 4.516129032 53.564064802 +48.387096774 4.838709677 55.578226605 +48.387096774 5.161290323 57.658283364 +48.387096774 5.483870968 59.548370180 +48.387096774 5.806451613 61.260362735 +48.387096774 6.129032258 62.816285423 +48.387096774 6.451612903 64.211142848 +48.387096774 6.774193548 65.419944811 +48.387096774 7.096774194 66.405514442 +48.387096774 7.419354839 67.127059853 +48.387096774 7.741935484 67.548845082 +48.387096774 8.064516129 67.654301037 +48.387096774 8.387096774 67.654301037 +48.387096774 8.709677419 67.654301037 +48.387096774 9.032258065 67.654301037 +48.387096774 9.354838710 67.654301037 +48.387096774 9.677419355 67.654301037 +48.387096774 10.000000000 67.654301037 +50.967741935 0.000000000 44.616415770 +50.967741935 0.322580645 44.616415770 +50.967741935 0.645161290 44.616415770 +50.967741935 0.967741935 44.616415770 +50.967741935 1.290322581 44.616415770 +50.967741935 1.612903226 44.616415770 +50.967741935 1.935483871 44.616415770 +50.967741935 2.258064516 44.698760304 +50.967741935 2.580645161 45.032946883 +50.967741935 2.903225806 45.622985345 +50.967741935 3.225806452 46.467238467 +50.967741935 3.548387097 47.563910116 +50.967741935 3.870967742 48.910743445 +50.967741935 4.193548387 50.502840212 +50.967741935 4.516129032 52.326633965 +50.967741935 4.838709677 54.347588260 +50.967741935 5.161290323 56.449954685 +50.967741935 5.483870968 58.350161475 +50.967741935 5.806451613 60.057440330 +50.967741935 6.129032258 61.598198804 +50.967741935 6.451612903 62.971785017 +50.967741935 6.774193548 64.157141145 +50.967741935 7.096774194 65.120596669 +50.967741935 7.419354839 65.824409419 +50.967741935 7.741935484 66.235264649 +50.967741935 8.064516129 66.337921286 +50.967741935 8.387096774 66.337921286 +50.967741935 8.709677419 66.337921286 +50.967741935 9.032258065 66.337921286 +50.967741935 9.354838710 66.337921286 +50.967741935 9.677419355 66.337921286 +50.967741935 10.000000000 66.337921286 +53.548387097 0.000000000 43.161863967 +53.548387097 0.322580645 43.161863967 +53.548387097 0.645161290 43.161863967 +53.548387097 0.967741935 43.161863967 +53.548387097 1.290322581 43.161863967 +53.548387097 1.612903226 43.161863967 +53.548387097 1.935483871 43.161863967 +53.548387097 2.258064516 43.246935669 +53.548387097 2.580645161 43.591449152 +53.548387097 2.903225806 44.196962107 +53.548387097 3.225806452 45.057826729 +53.548387097 3.548387097 46.167949378 +53.548387097 3.870967742 47.522086534 +53.548387097 4.193548387 49.115617384 +53.548387097 4.516129032 50.940434962 +53.548387097 4.838709677 52.973755088 +53.548387097 5.161290323 55.109848682 +53.548387097 5.483870968 57.033537819 +53.548387097 5.806451613 58.747231415 +53.548387097 6.129032258 60.280747236 +53.548387097 6.451612903 61.638028848 +53.548387097 6.774193548 62.802609961 +53.548387097 7.096774194 63.745066439 +53.548387097 7.419354839 64.431393253 +53.548387097 7.741935484 64.831240735 +53.548387097 8.064516129 64.931066230 +53.548387097 8.387096774 64.931066230 +53.548387097 8.709677419 64.931066230 +53.548387097 9.032258065 64.931066230 +53.548387097 9.354838710 64.931066230 +53.548387097 9.677419355 64.931066230 +53.548387097 10.000000000 64.931066230 +56.129032258 0.000000000 41.562757424 +56.129032258 0.322580645 41.562757424 +56.129032258 0.645161290 41.562757424 +56.129032258 0.967741935 41.562757424 +56.129032258 1.290322581 41.562757424 +56.129032258 1.612903226 41.562757424 +56.129032258 1.935483871 41.562757424 +56.129032258 2.258064516 41.650983104 +56.129032258 2.580645161 42.007394877 +56.129032258 2.903225806 42.630567878 +56.129032258 3.225806452 43.510014838 +56.129032258 3.548387097 44.634466681 +56.129032258 3.870967742 45.995029495 +56.129032258 4.193548387 47.587232438 +56.129032258 4.516129032 49.409320054 +56.129032258 4.838709677 51.452965804 +56.129032258 5.161290323 53.627995525 +56.129032258 5.483870968 55.587931245 +56.129032258 5.806451613 57.321397482 +56.129032258 6.129032258 58.858477926 +56.129032258 6.451612903 60.206932126 +56.129032258 6.774193548 61.355194390 +56.129032258 7.096774194 62.278842892 +56.129032258 7.419354839 62.948475434 +56.129032258 7.741935484 63.337473295 +56.129032258 8.064516129 63.434463522 +56.129032258 8.387096774 63.434463522 +56.129032258 8.709677419 63.434463522 +56.129032258 9.032258065 63.434463522 +56.129032258 9.354838710 63.434463522 +56.129032258 9.677419355 63.434463522 +56.129032258 10.000000000 63.434463522 +58.709677419 0.000000000 39.867082291 +58.709677419 0.322580645 39.867082291 +58.709677419 0.645161290 39.867082291 +58.709677419 0.967741935 39.867082291 +58.709677419 1.290322581 39.867082291 +58.709677419 1.612903226 39.867082291 +58.709677419 1.935483871 39.867082291 +58.709677419 2.258064516 39.958513244 +58.709677419 2.580645161 40.326884614 +58.709677419 2.903225806 40.967289350 +58.709677419 3.225806452 41.863642692 +58.709677419 3.548387097 42.998628756 +58.709677419 3.870967742 44.358835965 +58.709677419 4.193548387 45.939269950 +58.709677419 4.516129032 47.744614100 +58.709677419 4.838709677 49.783268810 +58.709677419 5.161290323 51.988970730 +58.709677419 5.483870968 53.992678480 +58.709677419 5.806451613 55.759559804 +58.709677419 6.129032258 57.313492323 +58.709677419 6.451612903 58.663327822 +58.709677419 6.774193548 59.801844372 +58.709677419 7.096774194 60.710189164 +58.709677419 7.419354839 61.364580282 +58.709677419 7.741935484 61.743138699 +58.709677419 8.064516129 61.837345788 +58.709677419 8.387096774 61.837345788 +58.709677419 8.709677419 61.837345788 +58.709677419 9.032258065 61.837345788 +58.709677419 9.354838710 61.837345788 +58.709677419 9.677419355 61.837345788 +58.709677419 10.000000000 61.837345788 +61.290322581 0.000000000 38.162654212 +61.290322581 0.322580645 38.162654212 +61.290322581 0.645161290 38.162654212 +61.290322581 0.967741935 38.162654212 +61.290322581 1.290322581 38.162654212 +61.290322581 1.612903226 38.162654212 +61.290322581 1.935483871 38.162654212 +61.290322581 2.258064516 38.256861301 +61.290322581 2.580645161 38.635419718 +61.290322581 2.903225806 39.289810836 +61.290322581 3.225806452 40.198155628 +61.290322581 3.548387097 41.336672178 +61.290322581 3.870967742 42.686507677 +61.290322581 4.193548387 44.240440196 +61.290322581 4.516129032 46.007321520 +61.290322581 4.838709677 48.011029270 +61.290322581 5.161290323 50.216731190 +61.290322581 5.483870968 52.255385900 +61.290322581 5.806451613 54.060730050 +61.290322581 6.129032258 55.641164035 +61.290322581 6.451612903 57.001371244 +61.290322581 6.774193548 58.136357308 +61.290322581 7.096774194 59.032710650 +61.290322581 7.419354839 59.673115386 +61.290322581 7.741935484 60.041486756 +61.290322581 8.064516129 60.132917709 +61.290322581 8.387096774 60.132917709 +61.290322581 8.709677419 60.132917709 +61.290322581 9.032258065 60.132917709 +61.290322581 9.354838710 60.132917709 +61.290322581 9.677419355 60.132917709 +61.290322581 10.000000000 60.132917709 +63.870967742 0.000000000 36.565536478 +63.870967742 0.322580645 36.565536478 +63.870967742 0.645161290 36.565536478 +63.870967742 0.967741935 36.565536478 +63.870967742 1.290322581 36.565536478 +63.870967742 1.612903226 36.565536478 +63.870967742 1.935483871 36.565536478 +63.870967742 2.258064516 36.662526705 +63.870967742 2.580645161 37.051524566 +63.870967742 2.903225806 37.721157108 +63.870967742 3.225806452 38.644805610 +63.870967742 3.548387097 39.793067874 +63.870967742 3.870967742 41.141522074 +63.870967742 4.193548387 42.678602518 +63.870967742 4.516129032 44.412068755 +63.870967742 4.838709677 46.372004475 +63.870967742 5.161290323 48.547034196 +63.870967742 5.483870968 50.590679946 +63.870967742 5.806451613 52.412767562 +63.870967742 6.129032258 54.004970505 +63.870967742 6.451612903 55.365533319 +63.870967742 6.774193548 56.489985162 +63.870967742 7.096774194 57.369432122 +63.870967742 7.419354839 57.992605123 +63.870967742 7.741935484 58.349016896 +63.870967742 8.064516129 58.437242576 +63.870967742 8.387096774 58.437242576 +63.870967742 8.709677419 58.437242576 +63.870967742 9.032258065 58.437242576 +63.870967742 9.354838710 58.437242576 +63.870967742 9.677419355 58.437242576 +63.870967742 10.000000000 58.437242576 +66.451612903 0.000000000 35.068933770 +66.451612903 0.322580645 35.068933770 +66.451612903 0.645161290 35.068933770 +66.451612903 0.967741935 35.068933770 +66.451612903 1.290322581 35.068933770 +66.451612903 1.612903226 35.068933770 +66.451612903 1.935483871 35.068933770 +66.451612903 2.258064516 35.168759265 +66.451612903 2.580645161 35.568606747 +66.451612903 2.903225806 36.254933561 +66.451612903 3.225806452 37.197390039 +66.451612903 3.548387097 38.361971152 +66.451612903 3.870967742 39.719252764 +66.451612903 4.193548387 41.252768585 +66.451612903 4.516129032 42.966462181 +66.451612903 4.838709677 44.890151318 +66.451612903 5.161290323 47.026244912 +66.451612903 5.483870968 49.059565038 +66.451612903 5.806451613 50.884382616 +66.451612903 6.129032258 52.477913466 +66.451612903 6.451612903 53.832050622 +66.451612903 6.774193548 54.942173271 +66.451612903 7.096774194 55.803037893 +66.451612903 7.419354839 56.408550848 +66.451612903 7.741935484 56.753064331 +66.451612903 8.064516129 56.838136033 +66.451612903 8.387096774 56.838136033 +66.451612903 8.709677419 56.838136033 +66.451612903 9.032258065 56.838136033 +66.451612903 9.354838710 56.838136033 +66.451612903 9.677419355 56.838136033 +66.451612903 10.000000000 56.838136033 +69.032258065 0.000000000 33.662078714 +69.032258065 0.322580645 33.662078714 +69.032258065 0.645161290 33.662078714 +69.032258065 0.967741935 33.662078714 +69.032258065 1.290322581 33.662078714 +69.032258065 1.612903226 33.662078714 +69.032258065 1.935483871 33.662078714 +69.032258065 2.258064516 33.764735351 +69.032258065 2.580645161 34.175590581 +69.032258065 2.903225806 34.879403331 +69.032258065 3.225806452 35.842858855 +69.032258065 3.548387097 37.028214983 +69.032258065 3.870967742 38.401801196 +69.032258065 4.193548387 39.942559670 +69.032258065 4.516129032 41.649838525 +69.032258065 4.838709677 43.550045315 +69.032258065 5.161290323 45.652411740 +69.032258065 5.483870968 47.673366035 +69.032258065 5.806451613 49.497159788 +69.032258065 6.129032258 51.089256555 +69.032258065 6.451612903 52.436089884 +69.032258065 6.774193548 53.532761533 +69.032258065 7.096774194 54.377014655 +69.032258065 7.419354839 54.967053117 +69.032258065 7.741935484 55.301239696 +69.032258065 8.064516129 55.383584230 +69.032258065 8.387096774 55.383584230 +69.032258065 8.709677419 55.383584230 +69.032258065 9.032258065 55.383584230 +69.032258065 9.354838710 55.383584230 +69.032258065 9.677419355 55.383584230 +69.032258065 10.000000000 55.383584230 +71.612903226 0.000000000 32.345698963 +71.612903226 0.322580645 32.345698963 +71.612903226 0.645161290 32.345698963 +71.612903226 0.967741935 32.345698963 +71.612903226 1.290322581 32.345698963 +71.612903226 1.612903226 32.345698963 +71.612903226 1.935483871 32.345698963 +71.612903226 2.258064516 32.451154918 +71.612903226 2.580645161 32.872940147 +71.612903226 2.903225806 33.594485558 +71.612903226 3.225806452 34.580055189 +71.612903226 3.548387097 35.788857152 +71.612903226 3.870967742 37.183714577 +71.612903226 4.193548387 38.739637265 +71.612903226 4.516129032 40.451629820 +71.612903226 4.838709677 42.341716636 +71.612903226 5.161290323 44.421773395 +71.612903226 5.483870968 46.435935198 +71.612903226 5.806451613 48.261432212 +71.612903226 6.129032258 49.854336744 +71.612903226 6.451612903 51.196720945 +71.612903226 6.774193548 52.283552638 +71.612903226 7.096774194 53.115093039 +71.612903226 7.419354839 53.693094911 +71.612903226 7.741935484 54.019196645 +71.612903226 8.064516129 54.099401387 +71.612903226 8.387096774 54.099401387 +71.612903226 8.709677419 54.099401387 +71.612903226 9.032258065 54.099401387 +71.612903226 9.354838710 54.099401387 +71.612903226 9.677419355 54.099401387 +71.612903226 10.000000000 54.099401387 +74.193548387 0.000000000 31.130282903 +74.193548387 0.322580645 31.130282903 +74.193548387 0.645161290 31.130282903 +74.193548387 0.967741935 31.130282903 +74.193548387 1.290322581 31.130282903 +74.193548387 1.612903226 31.130282903 +74.193548387 1.935483871 31.130282903 +74.193548387 2.258064516 31.238441391 +74.193548387 2.580645161 31.670837053 +74.193548387 2.903225806 32.409812696 +74.193548387 3.225806452 33.417620647 +74.193548387 3.548387097 34.650959998 +74.193548387 3.870967742 36.069805392 +74.193548387 4.193548387 37.645985858 +74.193548387 4.516129032 39.370885576 +74.193548387 4.838709677 41.262410178 +74.193548387 5.161290323 43.333019208 +74.193548387 5.483870968 45.349014245 +74.193548387 5.806451613 47.181869729 +74.193548387 6.129032258 48.780116579 +74.193548387 6.451612903 50.122504673 +74.193548387 6.774193548 51.204111839 +74.193548387 7.096774194 52.027392387 +74.193548387 7.419354839 52.597049726 +74.193548387 7.741935484 52.917397520 +74.193548387 8.064516129 52.996065135 +74.193548387 8.387096774 52.996065135 +74.193548387 8.709677419 52.996065135 +74.193548387 9.032258065 52.996065135 +74.193548387 9.354838710 52.996065135 +74.193548387 9.677419355 52.996065135 +74.193548387 10.000000000 52.996065135 +76.774193548 0.000000000 30.034038438 +76.774193548 0.322580645 30.034038438 +76.774193548 0.645161290 30.034038438 +76.774193548 0.967741935 30.034038438 +76.774193548 1.290322581 30.034038438 +76.774193548 1.612903226 30.034038438 +76.774193548 1.935483871 30.034038438 +76.774193548 2.258064516 30.144730818 +76.774193548 2.580645161 30.587109051 +76.774193548 2.903225806 31.342609259 +76.774193548 3.225806452 32.371796026 +76.774193548 3.548387097 33.629300526 +76.774193548 3.870967742 35.072817972 +76.774193548 4.193548387 36.671718583 +76.774193548 4.516129032 38.414630690 +76.774193548 4.838709677 40.316178156 +76.774193548 5.161290323 42.388670367 +76.774193548 5.483870968 44.414847934 +76.774193548 5.806451613 46.260814896 +76.774193548 6.129032258 47.869004716 +76.774193548 6.451612903 49.215738579 +76.774193548 6.774193548 50.296445582 +76.774193548 7.096774194 51.115524295 +76.774193548 7.419354839 51.680143529 +76.774193548 7.741935484 51.996803881 +76.774193548 8.064516129 52.074466376 +76.774193548 8.387096774 52.074466376 +76.774193548 8.709677419 52.074466376 +76.774193548 9.032258065 52.074466376 +76.774193548 9.354838710 52.074466376 +76.774193548 9.677419355 52.074466376 +76.774193548 10.000000000 52.074466376 +79.354838710 0.000000000 29.080444475 +79.354838710 0.322580645 29.080444475 +79.354838710 0.645161290 29.080444475 +79.354838710 0.967741935 29.080444475 +79.354838710 1.290322581 29.080444475 +79.354838710 1.612903226 29.080444475 +79.354838710 1.935483871 29.080444475 +79.354838710 2.258064516 29.193415030 +79.354838710 2.580645161 29.644787595 +79.354838710 2.903225806 30.415246173 +79.354838710 3.225806452 31.463952990 +79.354838710 3.548387097 32.743856294 +79.354838710 3.870967742 34.210866640 +79.354838710 4.193548387 35.832534825 +79.354838710 4.516129032 37.595554329 +79.354838710 4.838709677 39.512245487 +79.354838710 5.161290323 41.594701531 +79.354838710 5.483870968 43.636970165 +79.354838710 5.806451613 45.499968761 +79.354838710 6.129032258 47.121240224 +79.354838710 6.451612903 48.475411687 +79.354838710 6.774193548 49.558438226 +79.354838710 7.096774194 50.376426100 +79.354838710 7.419354839 50.938583742 +79.354838710 7.741935484 51.253180276 +79.354838710 8.064516129 51.330256980 +79.354838710 8.387096774 51.330256980 +79.354838710 8.709677419 51.330256980 +79.354838710 9.032258065 51.330256980 +79.354838710 9.354838710 51.330256980 +79.354838710 9.677419355 51.330256980 +79.354838710 10.000000000 51.330256980 +81.935483871 0.000000000 28.295387000 +81.935483871 0.322580645 28.295387000 +81.935483871 0.645161290 28.295387000 +81.935483871 0.967741935 28.295387000 +81.935483871 1.290322581 28.295387000 +81.935483871 1.612903226 28.295387000 +81.935483871 1.935483871 28.295387000 +81.935483871 2.258064516 28.410284551 +81.935483871 2.580645161 28.869270412 +81.935483871 2.903225806 29.652439525 +81.935483871 3.225806452 30.717816423 +81.935483871 3.548387097 32.017032404 +81.935483871 3.870967742 33.504652223 +81.935483871 4.193548387 35.146946432 +81.935483871 4.516129032 36.929357645 +81.935483871 4.838709677 38.862773119 +81.935483871 5.161290323 40.959228758 +81.935483871 5.483870968 43.019926470 +81.935483871 5.806451613 44.901011164 +81.935483871 6.129032258 46.536235546 +81.935483871 6.451612903 47.899114559 +81.935483871 6.774193548 48.986200093 +81.935483871 7.096774194 49.805035003 +81.935483871 7.419354839 50.366456066 +81.935483871 7.741935484 50.680115184 +81.935483871 8.064516129 50.756901048 +81.935483871 8.387096774 50.756901048 +81.935483871 8.709677419 50.756901048 +81.935483871 9.032258065 50.756901048 +81.935483871 9.354838710 50.756901048 +81.935483871 9.677419355 50.756901048 +81.935483871 10.000000000 50.756901048 +84.516129032 0.000000000 27.704007082 +84.516129032 0.322580645 27.704007082 +84.516129032 0.645161290 27.704007082 +84.516129032 0.967741935 27.704007082 +84.516129032 1.290322581 27.704007082 +84.516129032 1.612903226 27.704007082 +84.516129032 1.935483871 27.704007082 +84.516129032 2.258064516 27.820386779 +84.516129032 2.580645161 28.285240579 +84.516129032 2.903225806 29.078198137 +84.516129032 3.225806452 30.156479100 +84.516129032 3.548387097 31.470729250 +84.516129032 3.870967742 32.974572389 +84.516129032 4.193548387 34.633440121 +84.516129032 4.516129032 36.432039482 +84.516129032 4.838709677 38.380475723 +84.516129032 5.161290323 40.490870456 +84.516129032 5.483870968 42.568520962 +84.516129032 5.806451613 44.465639072 +84.516129032 6.129032258 46.113249111 +84.516129032 6.451612903 47.484193799 +84.516129032 6.774193548 48.575575214 +84.516129032 7.096774194 49.396043310 +84.516129032 7.419354839 49.957639505 +84.516129032 7.741935484 50.271021411 +84.516129032 8.064516129 50.347695757 +84.516129032 8.387096774 50.347695757 +84.516129032 8.709677419 50.347695757 +84.516129032 9.032258065 50.347695757 +84.516129032 9.354838710 50.347695757 +84.516129032 9.677419355 50.347695757 +84.516129032 10.000000000 50.347695757 +87.096774194 0.000000000 27.327538681 +87.096774194 0.322580645 27.327538681 +87.096774194 0.645161290 27.327538681 +87.096774194 0.967741935 27.327538681 +87.096774194 1.290322581 27.327538681 +87.096774194 1.612903226 27.327538681 +87.096774194 1.935483871 27.327538681 +87.096774194 2.258064516 27.444875519 +87.096774194 2.580645161 27.913519181 +87.096774194 2.903225806 28.712818142 +87.096774194 3.225806452 29.799451045 +87.096774194 3.548387097 31.123478051 +87.096774194 3.870967742 32.637941952 +87.096774194 4.193548387 34.307806798 +87.096774194 4.516129032 36.117385824 +87.096774194 4.838709677 38.076430208 +87.096774194 5.161290323 40.197185747 +87.096774194 5.483870968 42.286978613 +87.096774194 5.806451613 44.195359935 +87.096774194 6.129032258 45.851672154 +87.096774194 6.451612903 47.228403784 +87.096774194 6.774193548 48.323052721 +87.096774194 7.096774194 49.144986345 +87.096774194 7.419354839 49.707005179 +87.096774194 7.741935484 50.020392983 +87.096774194 8.064516129 50.097042021 +87.096774194 8.387096774 50.097042021 +87.096774194 8.709677419 50.097042021 +87.096774194 9.032258065 50.097042021 +87.096774194 9.354838710 50.097042021 +87.096774194 9.677419355 50.097042021 +87.096774194 10.000000000 50.097042021 +89.677419355 0.000000000 27.180531506 +89.677419355 0.322580645 27.180531506 +89.677419355 0.645161290 27.180531506 +89.677419355 0.967741935 27.180531506 +89.677419355 1.290322581 27.180531506 +89.677419355 1.612903226 27.180531506 +89.677419355 1.935483871 27.180531506 +89.677419355 2.258064516 27.298244964 +89.677419355 2.580645161 27.768379952 +89.677419355 2.903225806 28.570174667 +89.677419355 3.225806452 29.660103341 +89.677419355 3.548387097 30.987993911 +89.677419355 3.870967742 32.506670827 +89.677419355 4.193548387 34.180910067 +89.677419355 4.516129032 35.994914976 +89.677419355 4.838709677 37.958317674 +89.677419355 5.161290323 40.083428161 +89.677419355 5.483870968 42.178243163 +89.677419355 5.806451613 44.091241528 +89.677419355 6.129032258 45.751120568 +89.677419355 6.451612903 47.130246045 +89.677419355 6.774193548 48.226280081 +89.677419355 7.096774194 49.048873010 +89.677419355 7.419354839 49.611120353 +89.677419355 7.741935484 49.924547621 +89.677419355 8.064516129 50.001196081 +89.677419355 8.387096774 50.001196081 +89.677419355 8.709677419 50.001196081 +89.677419355 9.032258065 50.001196081 +89.677419355 9.354838710 50.001196081 +89.677419355 9.677419355 50.001196081 +89.677419355 10.000000000 50.001196081 +92.258064516 0.000000000 27.178685975 +92.258064516 0.322580645 27.178685975 +92.258064516 0.645161290 27.178685975 +92.258064516 0.967741935 27.178685975 +92.258064516 1.290322581 27.178685975 +92.258064516 1.612903226 27.178685975 +92.258064516 1.935483871 27.178685975 +92.258064516 2.258064516 27.296404171 +92.258064516 2.580645161 27.766557921 +92.258064516 2.903225806 28.568384038 +92.258064516 3.225806452 29.658354183 +92.258064516 3.548387097 30.986293382 +92.258064516 3.870967742 32.505023360 +92.258064516 4.193548387 34.179317922 +92.258064516 4.516129032 35.993378883 +92.258064516 4.838709677 37.956837060 +92.258064516 5.161290323 40.082003316 +92.258064516 5.483870968 42.176882360 +92.258064516 5.806451613 44.089939459 +92.258064516 6.129032258 45.749863871 +92.258064516 6.451612903 47.129019871 +92.258064516 6.774193548 48.225071677 +92.258064516 7.096774194 49.047673187 +92.258064516 7.419354839 49.609923621 +92.258064516 7.741935484 49.923351514 +92.258064516 8.064516129 50.000000000 +92.258064516 8.387096774 50.000000000 +92.258064516 8.709677419 50.000000000 +92.258064516 9.032258065 50.000000000 +92.258064516 9.354838710 50.000000000 +92.258064516 9.677419355 50.000000000 +92.258064516 10.000000000 50.000000000 +94.838709677 0.000000000 27.178685975 +94.838709677 0.322580645 27.178685975 +94.838709677 0.645161290 27.178685975 +94.838709677 0.967741935 27.178685975 +94.838709677 1.290322581 27.178685975 +94.838709677 1.612903226 27.178685975 +94.838709677 1.935483871 27.178685975 +94.838709677 2.258064516 27.296404171 +94.838709677 2.580645161 27.766557921 +94.838709677 2.903225806 28.568384038 +94.838709677 3.225806452 29.658354183 +94.838709677 3.548387097 30.986293382 +94.838709677 3.870967742 32.505023360 +94.838709677 4.193548387 34.179317922 +94.838709677 4.516129032 35.993378883 +94.838709677 4.838709677 37.956837060 +94.838709677 5.161290323 40.082003316 +94.838709677 5.483870968 42.176882360 +94.838709677 5.806451613 44.089939459 +94.838709677 6.129032258 45.749863871 +94.838709677 6.451612903 47.129019871 +94.838709677 6.774193548 48.225071677 +94.838709677 7.096774194 49.047673187 +94.838709677 7.419354839 49.609923621 +94.838709677 7.741935484 49.923351514 +94.838709677 8.064516129 50.000000000 +94.838709677 8.387096774 50.000000000 +94.838709677 8.709677419 50.000000000 +94.838709677 9.032258065 50.000000000 +94.838709677 9.354838710 50.000000000 +94.838709677 9.677419355 50.000000000 +94.838709677 10.000000000 50.000000000 +97.419354839 0.000000000 27.178685975 +97.419354839 0.322580645 27.178685975 +97.419354839 0.645161290 27.178685975 +97.419354839 0.967741935 27.178685975 +97.419354839 1.290322581 27.178685975 +97.419354839 1.612903226 27.178685975 +97.419354839 1.935483871 27.178685975 +97.419354839 2.258064516 27.296404171 +97.419354839 2.580645161 27.766557921 +97.419354839 2.903225806 28.568384038 +97.419354839 3.225806452 29.658354183 +97.419354839 3.548387097 30.986293382 +97.419354839 3.870967742 32.505023360 +97.419354839 4.193548387 34.179317922 +97.419354839 4.516129032 35.993378883 +97.419354839 4.838709677 37.956837060 +97.419354839 5.161290323 40.082003316 +97.419354839 5.483870968 42.176882360 +97.419354839 5.806451613 44.089939459 +97.419354839 6.129032258 45.749863871 +97.419354839 6.451612903 47.129019871 +97.419354839 6.774193548 48.225071677 +97.419354839 7.096774194 49.047673187 +97.419354839 7.419354839 49.609923621 +97.419354839 7.741935484 49.923351514 +97.419354839 8.064516129 50.000000000 +97.419354839 8.387096774 50.000000000 +97.419354839 8.709677419 50.000000000 +97.419354839 9.032258065 50.000000000 +97.419354839 9.354838710 50.000000000 +97.419354839 9.677419355 50.000000000 +97.419354839 10.000000000 50.000000000 +100.000000000 0.000000000 27.178685975 +100.000000000 0.322580645 27.178685975 +100.000000000 0.645161290 27.178685975 +100.000000000 0.967741935 27.178685975 +100.000000000 1.290322581 27.178685975 +100.000000000 1.612903226 27.178685975 +100.000000000 1.935483871 27.178685975 +100.000000000 2.258064516 27.296404171 +100.000000000 2.580645161 27.766557921 +100.000000000 2.903225806 28.568384038 +100.000000000 3.225806452 29.658354183 +100.000000000 3.548387097 30.986293382 +100.000000000 3.870967742 32.505023360 +100.000000000 4.193548387 34.179317922 +100.000000000 4.516129032 35.993378883 +100.000000000 4.838709677 37.956837060 +100.000000000 5.161290323 40.082003316 +100.000000000 5.483870968 42.176882360 +100.000000000 5.806451613 44.089939459 +100.000000000 6.129032258 45.749863871 +100.000000000 6.451612903 47.129019871 +100.000000000 6.774193548 48.225071677 +100.000000000 7.096774194 49.047673187 +100.000000000 7.419354839 49.609923621 +100.000000000 7.741935484 49.923351514 +100.000000000 8.064516129 50.000000000 +100.000000000 8.387096774 50.000000000 +100.000000000 8.709677419 50.000000000 +100.000000000 9.032258065 50.000000000 +100.000000000 9.354838710 50.000000000 +100.000000000 9.677419355 50.000000000 +100.000000000 10.000000000 50.000000000 diff --git a/examples/mamdani/octave/investment_portfolio.fll b/examples/mamdani/octave/investment_portfolio.fll index 4bb14e1..628fdef 100644 --- a/examples/mamdani/octave/investment_portfolio.fll +++ b/examples/mamdani/octave/investment_portfolio.fll @@ -1,22 +1,24 @@ -Engine: Investment-Portfolio +Engine: investment_portfolio InputVariable: Age enabled: true range: 20.000 100.000 + lock-range: false term: Young ZShape 30.000 90.000 term: Old SShape 30.000 90.000 InputVariable: RiskTolerance enabled: true range: 0.000 10.000 + lock-range: false term: Low ZShape 2.000 8.000 term: High SShape 2.000 8.000 OutputVariable: PercentageInStocks enabled: true range: 0.000 100.000 - accumulation: EinsteinSum + lock-range: false + aggregation: EinsteinSum defuzzifier: Centroid 200 default: nan lock-previous: false - lock-range: false term: AboutFifteen Gaussian 15.000 10.000 term: AboutFifty Gaussian 50.000 10.000 term: AboutEightyFive Gaussian 85.000 10.000 @@ -24,7 +26,8 @@ RuleBlock: enabled: true conjunction: EinsteinProduct disjunction: EinsteinSum - activation: EinsteinProduct + implication: EinsteinProduct + activation: General rule: if Age is Young or RiskTolerance is High then PercentageInStocks is AboutEightyFive rule: if Age is Old or RiskTolerance is Low then PercentageInStocks is AboutFifteen rule: if Age is not extremely Old and RiskTolerance is not extremely Low then PercentageInStocks is AboutFifty with 0.500 diff --git a/examples/mamdani/octave/investment_portfolio.java b/examples/mamdani/octave/investment_portfolio.java index 09084f1..9dff687 100644 --- a/examples/mamdani/octave/investment_portfolio.java +++ b/examples/mamdani/octave/investment_portfolio.java @@ -1,4 +1,5 @@ import com.fuzzylite.*; +import com.fuzzylite.activation.* import com.fuzzylite.defuzzifier.*; import com.fuzzylite.factory.*; import com.fuzzylite.hedge.*; @@ -12,45 +13,55 @@ import com.fuzzylite.variable.*; public class investment_portfolio{ public static void main(String[] args){ +//Code automatically generated with fuzzylite 6.0. + Engine engine = new Engine(); -engine.setName("Investment-Portfolio"); - -InputVariable inputVariable1 = new InputVariable(); -inputVariable1.setEnabled(true); -inputVariable1.setName("Age"); -inputVariable1.setRange(20.000, 100.000); -inputVariable1.addTerm(new ZShape("Young", 30.000, 90.000)); -inputVariable1.addTerm(new SShape("Old", 30.000, 90.000)); -engine.addInputVariable(inputVariable1); - -InputVariable inputVariable2 = new InputVariable(); -inputVariable2.setEnabled(true); -inputVariable2.setName("RiskTolerance"); -inputVariable2.setRange(0.000, 10.000); -inputVariable2.addTerm(new ZShape("Low", 2.000, 8.000)); -inputVariable2.addTerm(new SShape("High", 2.000, 8.000)); -engine.addInputVariable(inputVariable2); - -OutputVariable outputVariable = new OutputVariable(); -outputVariable.setEnabled(true); -outputVariable.setName("PercentageInStocks"); -outputVariable.setRange(0.000, 100.000); -outputVariable.fuzzyOutput().setAccumulation(new EinsteinSum()); -outputVariable.setDefuzzifier(new Centroid(200)); -outputVariable.setDefaultValue(Double.NaN); -outputVariable.setLockPreviousOutputValue(false); -outputVariable.setLockOutputValueInRange(false); -outputVariable.addTerm(new Gaussian("AboutFifteen", 15.000, 10.000)); -outputVariable.addTerm(new Gaussian("AboutFifty", 50.000, 10.000)); -outputVariable.addTerm(new Gaussian("AboutEightyFive", 85.000, 10.000)); -engine.addOutputVariable(outputVariable); +engine.setName("investment_portfolio"); +engine.setDescription(""); + +InputVariable Age = new InputVariable(); +Age.setName("Age"); +Age.setDescription(""); +Age.setEnabled(true); +Age.setRange(20.000, 100.000); +Age.setLockValueInRange(false); +Age.addTerm(new ZShape("Young", 30.000, 90.000)); +Age.addTerm(new SShape("Old", 30.000, 90.000)); +engine.addInputVariable(Age); + +InputVariable RiskTolerance = new InputVariable(); +RiskTolerance.setName("RiskTolerance"); +RiskTolerance.setDescription(""); +RiskTolerance.setEnabled(true); +RiskTolerance.setRange(0.000, 10.000); +RiskTolerance.setLockValueInRange(false); +RiskTolerance.addTerm(new ZShape("Low", 2.000, 8.000)); +RiskTolerance.addTerm(new SShape("High", 2.000, 8.000)); +engine.addInputVariable(RiskTolerance); + +OutputVariable PercentageInStocks = new OutputVariable(); +PercentageInStocks.setName("PercentageInStocks"); +PercentageInStocks.setDescription(""); +PercentageInStocks.setEnabled(true); +PercentageInStocks.setRange(0.000, 100.000); +PercentageInStocks.setLockValueInRange(false); +PercentageInStocks.setAggregation(new EinsteinSum()); +PercentageInStocks.setDefuzzifier(new Centroid(200)); +PercentageInStocks.setDefaultValue(Double.NaN); +PercentageInStocks.setLockPreviousValue(false); +PercentageInStocks.addTerm(new Gaussian("AboutFifteen", 15.000, 10.000)); +PercentageInStocks.addTerm(new Gaussian("AboutFifty", 50.000, 10.000)); +PercentageInStocks.addTerm(new Gaussian("AboutEightyFive", 85.000, 10.000)); +engine.addOutputVariable(PercentageInStocks); RuleBlock ruleBlock = new RuleBlock(); -ruleBlock.setEnabled(true); ruleBlock.setName(""); +ruleBlock.setDescription(""); +ruleBlock.setEnabled(true); ruleBlock.setConjunction(new EinsteinProduct()); ruleBlock.setDisjunction(new EinsteinSum()); -ruleBlock.setActivation(new EinsteinProduct()); +ruleBlock.setImplication(new EinsteinProduct()); +ruleBlock.setActivation(new General()); ruleBlock.addRule(Rule.parse("if Age is Young or RiskTolerance is High then PercentageInStocks is AboutEightyFive", engine)); ruleBlock.addRule(Rule.parse("if Age is Old or RiskTolerance is Low then PercentageInStocks is AboutFifteen", engine)); ruleBlock.addRule(Rule.parse("if Age is not extremely Old and RiskTolerance is not extremely Low then PercentageInStocks is AboutFifty with 0.500", engine)); diff --git a/examples/mamdani/octave/investment_portfolio.pdf b/examples/mamdani/octave/investment_portfolio.pdf Binary files differnew file mode 100644 index 0000000..c9c897e --- /dev/null +++ b/examples/mamdani/octave/investment_portfolio.pdf diff --git a/examples/mamdani/octave/mamdani_tip_calculator.R b/examples/mamdani/octave/mamdani_tip_calculator.R new file mode 100644 index 0000000..81eabe2 --- /dev/null +++ b/examples/mamdani/octave/mamdani_tip_calculator.R @@ -0,0 +1,90 @@ +#Code automatically generated with fuzzylite 6.0. + +library(ggplot2); + +engine.name = "mamdani_tip_calculator" +engine.fll = "Engine: mamdani_tip_calculator +InputVariable: FoodQuality + enabled: true + range: 1.000 10.000 + lock-range: false + term: Bad Trapezoid 0.000 1.000 3.000 7.000 + term: Good Trapezoid 3.000 7.000 10.000 11.000 +InputVariable: Service + enabled: true + range: 1.000 10.000 + lock-range: false + term: Bad Trapezoid 0.000 1.000 3.000 7.000 + term: Good Trapezoid 3.000 7.000 10.000 11.000 +OutputVariable: Tip + enabled: true + range: 0.000 30.000 + lock-range: false + aggregation: AlgebraicSum + defuzzifier: Centroid 200 + default: nan + lock-previous: false + term: AboutTenPercent Gaussian 10.000 2.000 + term: AboutFifteenPercent Gaussian 15.000 2.000 + term: AboutTwentyPercent Gaussian 20.000 2.000 +OutputVariable: CheckPlusTip + enabled: true + range: 1.000 1.300 + lock-range: false + aggregation: AlgebraicSum + defuzzifier: Centroid 200 + default: nan + lock-previous: false + term: PlusAboutTenPercent Gaussian 1.100 0.020 + term: PlusAboutFifteenPercent Gaussian 1.150 0.020 + term: PlusAboutTwentyPercent Gaussian 1.200 0.020 +RuleBlock: + enabled: true + conjunction: AlgebraicProduct + disjunction: Maximum + implication: Minimum + activation: General + rule: if FoodQuality is Bad and Service is Bad then Tip is AboutTenPercent and CheckPlusTip is PlusAboutTenPercent + rule: if FoodQuality is Bad and Service is Good then Tip is AboutFifteenPercent and CheckPlusTip is PlusAboutFifteenPercent + rule: if FoodQuality is Good and Service is Bad then Tip is AboutFifteenPercent and CheckPlusTip is PlusAboutFifteenPercent + rule: if FoodQuality is Good and Service is Good then Tip is AboutTwentyPercent and CheckPlusTip is PlusAboutTwentyPercent" + +engine.fldFile = "mamdani_tip_calculator.fld" +if (require(data.table)) { + engine.df = data.table::fread(engine.fldFile, sep="auto", header="auto") +} else { + engine.df = read.table(engine.fldFile, header=TRUE) +} + +engine.plot.i1i2_o1 = ggplot(engine.df, aes(FoodQuality, Service)) + + geom_tile(aes(fill=Tip)) + + scale_fill_gradient(low="yellow", high="red") + + stat_contour(aes(x=FoodQuality, y=Service, z=Tip), color="black") + + ggtitle("(FoodQuality, Service) = Tip") + +engine.plot.i2i1_o1 = ggplot(engine.df, aes(Service, FoodQuality)) + + geom_tile(aes(fill=Tip)) + + scale_fill_gradient(low="yellow", high="red") + + stat_contour(aes(x=Service, y=FoodQuality, z=Tip), color="black") + + ggtitle("(Service, FoodQuality) = Tip") + +engine.plot.i1i2_o2 = ggplot(engine.df, aes(FoodQuality, Service)) + + geom_tile(aes(fill=CheckPlusTip)) + + scale_fill_gradient(low="yellow", high="red") + + stat_contour(aes(x=FoodQuality, y=Service, z=CheckPlusTip), color="black") + + ggtitle("(FoodQuality, Service) = CheckPlusTip") + +engine.plot.i2i1_o2 = ggplot(engine.df, aes(Service, FoodQuality)) + + geom_tile(aes(fill=CheckPlusTip)) + + scale_fill_gradient(low="yellow", high="red") + + stat_contour(aes(x=Service, y=FoodQuality, z=CheckPlusTip), color="black") + + ggtitle("(Service, FoodQuality) = CheckPlusTip") + +if (require(gridExtra)) { + engine.plots = arrangeGrob(engine.plot.i1i2_o1, engine.plot.i2i1_o1, engine.plot.i1i2_o2, engine.plot.i2i1_o2, ncol=2, top=engine.name) + ggsave(paste0(engine.name, ".pdf"), engine.plots) + if (require(grid)) { + grid.newpage() + grid.draw(engine.plots) + } +} diff --git a/examples/mamdani/octave/mamdani_tip_calculator.cpp b/examples/mamdani/octave/mamdani_tip_calculator.cpp index cd57bf7..86d6464 100644 --- a/examples/mamdani/octave/mamdani_tip_calculator.cpp +++ b/examples/mamdani/octave/mamdani_tip_calculator.cpp @@ -1,65 +1,76 @@ #include <fl/Headers.h> int main(int argc, char** argv){ +//Code automatically generated with fuzzylite 6.0. + using namespace fl; Engine* engine = new Engine; -engine->setName("Mamdani-Tip-Calculator"); +engine->setName("mamdani_tip_calculator"); +engine->setDescription(""); -InputVariable* inputVariable1 = new InputVariable; -inputVariable1->setEnabled(true); -inputVariable1->setName("FoodQuality"); -inputVariable1->setRange(1.000, 10.000); -inputVariable1->addTerm(new Trapezoid("Bad", 0.000, 1.000, 3.000, 7.000)); -inputVariable1->addTerm(new Trapezoid("Good", 3.000, 7.000, 10.000, 11.000)); -engine->addInputVariable(inputVariable1); +InputVariable* FoodQuality = new InputVariable; +FoodQuality->setName("FoodQuality"); +FoodQuality->setDescription(""); +FoodQuality->setEnabled(true); +FoodQuality->setRange(1.000, 10.000); +FoodQuality->setLockValueInRange(false); +FoodQuality->addTerm(new Trapezoid("Bad", 0.000, 1.000, 3.000, 7.000)); +FoodQuality->addTerm(new Trapezoid("Good", 3.000, 7.000, 10.000, 11.000)); +engine->addInputVariable(FoodQuality); -InputVariable* inputVariable2 = new InputVariable; -inputVariable2->setEnabled(true); -inputVariable2->setName("Service"); -inputVariable2->setRange(1.000, 10.000); -inputVariable2->addTerm(new Trapezoid("Bad", 0.000, 1.000, 3.000, 7.000)); -inputVariable2->addTerm(new Trapezoid("Good", 3.000, 7.000, 10.000, 11.000)); -engine->addInputVariable(inputVariable2); +InputVariable* Service = new InputVariable; +Service->setName("Service"); +Service->setDescription(""); +Service->setEnabled(true); +Service->setRange(1.000, 10.000); +Service->setLockValueInRange(false); +Service->addTerm(new Trapezoid("Bad", 0.000, 1.000, 3.000, 7.000)); +Service->addTerm(new Trapezoid("Good", 3.000, 7.000, 10.000, 11.000)); +engine->addInputVariable(Service); -OutputVariable* outputVariable1 = new OutputVariable; -outputVariable1->setEnabled(true); -outputVariable1->setName("Tip"); -outputVariable1->setRange(0.000, 30.000); -outputVariable1->fuzzyOutput()->setAccumulation(new AlgebraicSum); -outputVariable1->setDefuzzifier(new Centroid(200)); -outputVariable1->setDefaultValue(fl::nan); -outputVariable1->setLockPreviousOutputValue(false); -outputVariable1->setLockOutputValueInRange(false); -outputVariable1->addTerm(new Gaussian("AboutTenPercent", 10.000, 2.000)); -outputVariable1->addTerm(new Gaussian("AboutFifteenPercent", 15.000, 2.000)); -outputVariable1->addTerm(new Gaussian("AboutTwentyPercent", 20.000, 2.000)); -engine->addOutputVariable(outputVariable1); +OutputVariable* Tip = new OutputVariable; +Tip->setName("Tip"); +Tip->setDescription(""); +Tip->setEnabled(true); +Tip->setRange(0.000, 30.000); +Tip->setLockValueInRange(false); +Tip->setAggregation(new AlgebraicSum); +Tip->setDefuzzifier(new Centroid(200)); +Tip->setDefaultValue(fl::nan); +Tip->setLockPreviousValue(false); +Tip->addTerm(new Gaussian("AboutTenPercent", 10.000, 2.000)); +Tip->addTerm(new Gaussian("AboutFifteenPercent", 15.000, 2.000)); +Tip->addTerm(new Gaussian("AboutTwentyPercent", 20.000, 2.000)); +engine->addOutputVariable(Tip); -OutputVariable* outputVariable2 = new OutputVariable; -outputVariable2->setEnabled(true); -outputVariable2->setName("CheckPlusTip"); -outputVariable2->setRange(1.000, 1.300); -outputVariable2->fuzzyOutput()->setAccumulation(new AlgebraicSum); -outputVariable2->setDefuzzifier(new Centroid(200)); -outputVariable2->setDefaultValue(fl::nan); -outputVariable2->setLockPreviousOutputValue(false); -outputVariable2->setLockOutputValueInRange(false); -outputVariable2->addTerm(new Gaussian("PlusAboutTenPercent", 1.100, 0.020)); -outputVariable2->addTerm(new Gaussian("PlusAboutFifteenPercent", 1.150, 0.020)); -outputVariable2->addTerm(new Gaussian("PlusAboutTwentyPercent", 1.200, 0.020)); -engine->addOutputVariable(outputVariable2); +OutputVariable* CheckPlusTip = new OutputVariable; +CheckPlusTip->setName("CheckPlusTip"); +CheckPlusTip->setDescription(""); +CheckPlusTip->setEnabled(true); +CheckPlusTip->setRange(1.000, 1.300); +CheckPlusTip->setLockValueInRange(false); +CheckPlusTip->setAggregation(new AlgebraicSum); +CheckPlusTip->setDefuzzifier(new Centroid(200)); +CheckPlusTip->setDefaultValue(fl::nan); +CheckPlusTip->setLockPreviousValue(false); +CheckPlusTip->addTerm(new Gaussian("PlusAboutTenPercent", 1.100, 0.020)); +CheckPlusTip->addTerm(new Gaussian("PlusAboutFifteenPercent", 1.150, 0.020)); +CheckPlusTip->addTerm(new Gaussian("PlusAboutTwentyPercent", 1.200, 0.020)); +engine->addOutputVariable(CheckPlusTip); RuleBlock* ruleBlock = new RuleBlock; -ruleBlock->setEnabled(true); ruleBlock->setName(""); +ruleBlock->setDescription(""); +ruleBlock->setEnabled(true); ruleBlock->setConjunction(new AlgebraicProduct); ruleBlock->setDisjunction(new Maximum); -ruleBlock->setActivation(new Minimum); -ruleBlock->addRule(fl::Rule::parse("if FoodQuality is Bad and Service is Bad then Tip is AboutTenPercent and CheckPlusTip is PlusAboutTenPercent", engine)); -ruleBlock->addRule(fl::Rule::parse("if FoodQuality is Bad and Service is Good then Tip is AboutFifteenPercent and CheckPlusTip is PlusAboutFifteenPercent", engine)); -ruleBlock->addRule(fl::Rule::parse("if FoodQuality is Good and Service is Bad then Tip is AboutFifteenPercent and CheckPlusTip is PlusAboutFifteenPercent", engine)); -ruleBlock->addRule(fl::Rule::parse("if FoodQuality is Good and Service is Good then Tip is AboutTwentyPercent and CheckPlusTip is PlusAboutTwentyPercent", engine)); +ruleBlock->setImplication(new Minimum); +ruleBlock->setActivation(new General); +ruleBlock->addRule(Rule::parse("if FoodQuality is Bad and Service is Bad then Tip is AboutTenPercent and CheckPlusTip is PlusAboutTenPercent", engine)); +ruleBlock->addRule(Rule::parse("if FoodQuality is Bad and Service is Good then Tip is AboutFifteenPercent and CheckPlusTip is PlusAboutFifteenPercent", engine)); +ruleBlock->addRule(Rule::parse("if FoodQuality is Good and Service is Bad then Tip is AboutFifteenPercent and CheckPlusTip is PlusAboutFifteenPercent", engine)); +ruleBlock->addRule(Rule::parse("if FoodQuality is Good and Service is Good then Tip is AboutTwentyPercent and CheckPlusTip is PlusAboutTwentyPercent", engine)); engine->addRuleBlock(ruleBlock); diff --git a/examples/mamdani/octave/mamdani_tip_calculator.fcl b/examples/mamdani/octave/mamdani_tip_calculator.fcl index 3ea903a..0265bc2 100644 --- a/examples/mamdani/octave/mamdani_tip_calculator.fcl +++ b/examples/mamdani/octave/mamdani_tip_calculator.fcl @@ -1,4 +1,6 @@ -FUNCTION_BLOCK Mamdani-Tip-Calculator +//Code automatically generated with fuzzylite 6.0. + +FUNCTION_BLOCK mamdani_tip_calculator VAR_INPUT FoodQuality: REAL; diff --git a/examples/mamdani/octave/mamdani_tip_calculator.fis b/examples/mamdani/octave/mamdani_tip_calculator.fis index 42cf1df..13cd802 100644 --- a/examples/mamdani/octave/mamdani_tip_calculator.fis +++ b/examples/mamdani/octave/mamdani_tip_calculator.fis @@ -1,13 +1,16 @@ +#Code automatically generated with fuzzylite 6.0. + [System] -Name='Mamdani-Tip-Calculator' +Name='mamdani_tip_calculator' Type='mamdani' +Version=6.0 NumInputs=2 NumOutputs=2 NumRules=4 AndMethod='prod' OrMethod='max' ImpMethod='min' -AggMethod='sum' +AggMethod='probor' DefuzzMethod='centroid' [Input1] diff --git a/examples/mamdani/octave/mamdani_tip_calculator.fld b/examples/mamdani/octave/mamdani_tip_calculator.fld index 9d54109..9d87eab 100644 --- a/examples/mamdani/octave/mamdani_tip_calculator.fld +++ b/examples/mamdani/octave/mamdani_tip_calculator.fld @@ -1,1026 +1,1025 @@ -#@Engine: Mamdani-Tip-Calculator; -#@InputVariable: FoodQuality; @InputVariable: Service; @OutputVariable: Tip; @OutputVariable: CheckPlusTip; -1.00000000 1.00000000 10.00000296 1.10000003 -1.00000000 1.29032258 10.00000296 1.10000003 -1.00000000 1.58064516 10.00000296 1.10000003 -1.00000000 1.87096774 10.00000296 1.10000003 -1.00000000 2.16129032 10.00000296 1.10000003 -1.00000000 2.45161290 10.00000296 1.10000003 -1.00000000 2.74193548 10.00000296 1.10000003 -1.00000000 3.03225806 10.10361204 1.10103612 -1.00000000 3.32258065 10.70846739 1.10708467 -1.00000000 3.61290323 11.13394556 1.11133946 -1.00000000 3.90322581 11.47924881 1.11479249 -1.00000000 4.19354839 11.77837052 1.11778371 -1.00000000 4.48387097 12.05010492 1.12050105 -1.00000000 4.77419355 12.30576276 1.12305763 -1.00000000 5.06451613 12.55517544 1.12555175 -1.00000000 5.35483871 12.80665986 1.12806660 -1.00000000 5.64516129 13.06809323 1.13068093 -1.00000000 5.93548387 13.35056196 1.13350562 -1.00000000 6.22580645 13.66657067 1.13666571 -1.00000000 6.51612903 14.04212491 1.14042125 -1.00000000 6.80645161 14.52492871 1.14524929 -1.00000000 7.09677419 15.00000000 1.15000000 -1.00000000 7.38709677 15.00000000 1.15000000 -1.00000000 7.67741935 15.00000000 1.15000000 -1.00000000 7.96774194 15.00000000 1.15000000 -1.00000000 8.25806452 15.00000000 1.15000000 -1.00000000 8.54838710 15.00000000 1.15000000 -1.00000000 8.83870968 15.00000000 1.15000000 -1.00000000 9.12903226 15.00000000 1.15000000 -1.00000000 9.41935484 15.00000000 1.15000000 -1.00000000 9.70967742 15.00000000 1.15000000 -1.00000000 10.00000000 15.00000000 1.15000000 -1.29032258 1.00000000 10.00000296 1.10000003 -1.29032258 1.29032258 10.00000296 1.10000003 -1.29032258 1.58064516 10.00000296 1.10000003 -1.29032258 1.87096774 10.00000296 1.10000003 -1.29032258 2.16129032 10.00000296 1.10000003 -1.29032258 2.45161290 10.00000296 1.10000003 -1.29032258 2.74193548 10.00000296 1.10000003 -1.29032258 3.03225806 10.10361204 1.10103612 -1.29032258 3.32258065 10.70846739 1.10708467 -1.29032258 3.61290323 11.13394556 1.11133946 -1.29032258 3.90322581 11.47924881 1.11479249 -1.29032258 4.19354839 11.77837052 1.11778371 -1.29032258 4.48387097 12.05010492 1.12050105 -1.29032258 4.77419355 12.30576276 1.12305763 -1.29032258 5.06451613 12.55517544 1.12555175 -1.29032258 5.35483871 12.80665986 1.12806660 -1.29032258 5.64516129 13.06809323 1.13068093 -1.29032258 5.93548387 13.35056196 1.13350562 -1.29032258 6.22580645 13.66657067 1.13666571 -1.29032258 6.51612903 14.04212491 1.14042125 -1.29032258 6.80645161 14.52492871 1.14524929 -1.29032258 7.09677419 15.00000000 1.15000000 -1.29032258 7.38709677 15.00000000 1.15000000 -1.29032258 7.67741935 15.00000000 1.15000000 -1.29032258 7.96774194 15.00000000 1.15000000 -1.29032258 8.25806452 15.00000000 1.15000000 -1.29032258 8.54838710 15.00000000 1.15000000 -1.29032258 8.83870968 15.00000000 1.15000000 -1.29032258 9.12903226 15.00000000 1.15000000 -1.29032258 9.41935484 15.00000000 1.15000000 -1.29032258 9.70967742 15.00000000 1.15000000 -1.29032258 10.00000000 15.00000000 1.15000000 -1.58064516 1.00000000 10.00000296 1.10000003 -1.58064516 1.29032258 10.00000296 1.10000003 -1.58064516 1.58064516 10.00000296 1.10000003 -1.58064516 1.87096774 10.00000296 1.10000003 -1.58064516 2.16129032 10.00000296 1.10000003 -1.58064516 2.45161290 10.00000296 1.10000003 -1.58064516 2.74193548 10.00000296 1.10000003 -1.58064516 3.03225806 10.10361204 1.10103612 -1.58064516 3.32258065 10.70846739 1.10708467 -1.58064516 3.61290323 11.13394556 1.11133946 -1.58064516 3.90322581 11.47924881 1.11479249 -1.58064516 4.19354839 11.77837052 1.11778371 -1.58064516 4.48387097 12.05010492 1.12050105 -1.58064516 4.77419355 12.30576276 1.12305763 -1.58064516 5.06451613 12.55517544 1.12555175 -1.58064516 5.35483871 12.80665986 1.12806660 -1.58064516 5.64516129 13.06809323 1.13068093 -1.58064516 5.93548387 13.35056196 1.13350562 -1.58064516 6.22580645 13.66657067 1.13666571 -1.58064516 6.51612903 14.04212491 1.14042125 -1.58064516 6.80645161 14.52492871 1.14524929 -1.58064516 7.09677419 15.00000000 1.15000000 -1.58064516 7.38709677 15.00000000 1.15000000 -1.58064516 7.67741935 15.00000000 1.15000000 -1.58064516 7.96774194 15.00000000 1.15000000 -1.58064516 8.25806452 15.00000000 1.15000000 -1.58064516 8.54838710 15.00000000 1.15000000 -1.58064516 8.83870968 15.00000000 1.15000000 -1.58064516 9.12903226 15.00000000 1.15000000 -1.58064516 9.41935484 15.00000000 1.15000000 -1.58064516 9.70967742 15.00000000 1.15000000 -1.58064516 10.00000000 15.00000000 1.15000000 -1.87096774 1.00000000 10.00000296 1.10000003 -1.87096774 1.29032258 10.00000296 1.10000003 -1.87096774 1.58064516 10.00000296 1.10000003 -1.87096774 1.87096774 10.00000296 1.10000003 -1.87096774 2.16129032 10.00000296 1.10000003 -1.87096774 2.45161290 10.00000296 1.10000003 -1.87096774 2.74193548 10.00000296 1.10000003 -1.87096774 3.03225806 10.10361204 1.10103612 -1.87096774 3.32258065 10.70846739 1.10708467 -1.87096774 3.61290323 11.13394556 1.11133946 -1.87096774 3.90322581 11.47924881 1.11479249 -1.87096774 4.19354839 11.77837052 1.11778371 -1.87096774 4.48387097 12.05010492 1.12050105 -1.87096774 4.77419355 12.30576276 1.12305763 -1.87096774 5.06451613 12.55517544 1.12555175 -1.87096774 5.35483871 12.80665986 1.12806660 -1.87096774 5.64516129 13.06809323 1.13068093 -1.87096774 5.93548387 13.35056196 1.13350562 -1.87096774 6.22580645 13.66657067 1.13666571 -1.87096774 6.51612903 14.04212491 1.14042125 -1.87096774 6.80645161 14.52492871 1.14524929 -1.87096774 7.09677419 15.00000000 1.15000000 -1.87096774 7.38709677 15.00000000 1.15000000 -1.87096774 7.67741935 15.00000000 1.15000000 -1.87096774 7.96774194 15.00000000 1.15000000 -1.87096774 8.25806452 15.00000000 1.15000000 -1.87096774 8.54838710 15.00000000 1.15000000 -1.87096774 8.83870968 15.00000000 1.15000000 -1.87096774 9.12903226 15.00000000 1.15000000 -1.87096774 9.41935484 15.00000000 1.15000000 -1.87096774 9.70967742 15.00000000 1.15000000 -1.87096774 10.00000000 15.00000000 1.15000000 -2.16129032 1.00000000 10.00000296 1.10000003 -2.16129032 1.29032258 10.00000296 1.10000003 -2.16129032 1.58064516 10.00000296 1.10000003 -2.16129032 1.87096774 10.00000296 1.10000003 -2.16129032 2.16129032 10.00000296 1.10000003 -2.16129032 2.45161290 10.00000296 1.10000003 -2.16129032 2.74193548 10.00000296 1.10000003 -2.16129032 3.03225806 10.10361204 1.10103612 -2.16129032 3.32258065 10.70846739 1.10708467 -2.16129032 3.61290323 11.13394556 1.11133946 -2.16129032 3.90322581 11.47924881 1.11479249 -2.16129032 4.19354839 11.77837052 1.11778371 -2.16129032 4.48387097 12.05010492 1.12050105 -2.16129032 4.77419355 12.30576276 1.12305763 -2.16129032 5.06451613 12.55517544 1.12555175 -2.16129032 5.35483871 12.80665986 1.12806660 -2.16129032 5.64516129 13.06809323 1.13068093 -2.16129032 5.93548387 13.35056196 1.13350562 -2.16129032 6.22580645 13.66657067 1.13666571 -2.16129032 6.51612903 14.04212491 1.14042125 -2.16129032 6.80645161 14.52492871 1.14524929 -2.16129032 7.09677419 15.00000000 1.15000000 -2.16129032 7.38709677 15.00000000 1.15000000 -2.16129032 7.67741935 15.00000000 1.15000000 -2.16129032 7.96774194 15.00000000 1.15000000 -2.16129032 8.25806452 15.00000000 1.15000000 -2.16129032 8.54838710 15.00000000 1.15000000 -2.16129032 8.83870968 15.00000000 1.15000000 -2.16129032 9.12903226 15.00000000 1.15000000 -2.16129032 9.41935484 15.00000000 1.15000000 -2.16129032 9.70967742 15.00000000 1.15000000 -2.16129032 10.00000000 15.00000000 1.15000000 -2.45161290 1.00000000 10.00000296 1.10000003 -2.45161290 1.29032258 10.00000296 1.10000003 -2.45161290 1.58064516 10.00000296 1.10000003 -2.45161290 1.87096774 10.00000296 1.10000003 -2.45161290 2.16129032 10.00000296 1.10000003 -2.45161290 2.45161290 10.00000296 1.10000003 -2.45161290 2.74193548 10.00000296 1.10000003 -2.45161290 3.03225806 10.10361204 1.10103612 -2.45161290 3.32258065 10.70846739 1.10708467 -2.45161290 3.61290323 11.13394556 1.11133946 -2.45161290 3.90322581 11.47924881 1.11479249 -2.45161290 4.19354839 11.77837052 1.11778371 -2.45161290 4.48387097 12.05010492 1.12050105 -2.45161290 4.77419355 12.30576276 1.12305763 -2.45161290 5.06451613 12.55517544 1.12555175 -2.45161290 5.35483871 12.80665986 1.12806660 -2.45161290 5.64516129 13.06809323 1.13068093 -2.45161290 5.93548387 13.35056196 1.13350562 -2.45161290 6.22580645 13.66657067 1.13666571 -2.45161290 6.51612903 14.04212491 1.14042125 -2.45161290 6.80645161 14.52492871 1.14524929 -2.45161290 7.09677419 15.00000000 1.15000000 -2.45161290 7.38709677 15.00000000 1.15000000 -2.45161290 7.67741935 15.00000000 1.15000000 -2.45161290 7.96774194 15.00000000 1.15000000 -2.45161290 8.25806452 15.00000000 1.15000000 -2.45161290 8.54838710 15.00000000 1.15000000 -2.45161290 8.83870968 15.00000000 1.15000000 -2.45161290 9.12903226 15.00000000 1.15000000 -2.45161290 9.41935484 15.00000000 1.15000000 -2.45161290 9.70967742 15.00000000 1.15000000 -2.45161290 10.00000000 15.00000000 1.15000000 -2.74193548 1.00000000 10.00000296 1.10000003 -2.74193548 1.29032258 10.00000296 1.10000003 -2.74193548 1.58064516 10.00000296 1.10000003 -2.74193548 1.87096774 10.00000296 1.10000003 -2.74193548 2.16129032 10.00000296 1.10000003 -2.74193548 2.45161290 10.00000296 1.10000003 -2.74193548 2.74193548 10.00000296 1.10000003 -2.74193548 3.03225806 10.10361204 1.10103612 -2.74193548 3.32258065 10.70846739 1.10708467 -2.74193548 3.61290323 11.13394556 1.11133946 -2.74193548 3.90322581 11.47924881 1.11479249 -2.74193548 4.19354839 11.77837052 1.11778371 -2.74193548 4.48387097 12.05010492 1.12050105 -2.74193548 4.77419355 12.30576276 1.12305763 -2.74193548 5.06451613 12.55517544 1.12555175 -2.74193548 5.35483871 12.80665986 1.12806660 -2.74193548 5.64516129 13.06809323 1.13068093 -2.74193548 5.93548387 13.35056196 1.13350562 -2.74193548 6.22580645 13.66657067 1.13666571 -2.74193548 6.51612903 14.04212491 1.14042125 -2.74193548 6.80645161 14.52492871 1.14524929 -2.74193548 7.09677419 15.00000000 1.15000000 -2.74193548 7.38709677 15.00000000 1.15000000 -2.74193548 7.67741935 15.00000000 1.15000000 -2.74193548 7.96774194 15.00000000 1.15000000 -2.74193548 8.25806452 15.00000000 1.15000000 -2.74193548 8.54838710 15.00000000 1.15000000 -2.74193548 8.83870968 15.00000000 1.15000000 -2.74193548 9.12903226 15.00000000 1.15000000 -2.74193548 9.41935484 15.00000000 1.15000000 -2.74193548 9.70967742 15.00000000 1.15000000 -2.74193548 10.00000000 15.00000000 1.15000000 -3.03225806 1.00000000 10.10361204 1.10103612 -3.03225806 1.29032258 10.10361204 1.10103612 -3.03225806 1.58064516 10.10361204 1.10103612 -3.03225806 1.87096774 10.10361204 1.10103612 -3.03225806 2.16129032 10.10361204 1.10103612 -3.03225806 2.45161290 10.10361204 1.10103612 -3.03225806 2.74193548 10.10361204 1.10103612 -3.03225806 3.03225806 10.20435811 1.10204358 -3.03225806 3.32258065 10.79601822 1.10796018 -3.03225806 3.61290323 11.21535874 1.11215359 -3.03225806 3.90322581 11.55784646 1.11557846 -3.03225806 4.19354839 11.85579036 1.11855790 -3.03225806 4.48387097 12.12724043 1.12127240 -3.03225806 4.77419355 12.38405258 1.12384053 -3.03225806 5.06451613 12.63499742 1.12634997 -3.03225806 5.35483871 12.88858563 1.12888586 -3.03225806 5.64516129 13.15323067 1.13153231 -3.03225806 5.93548387 13.43888099 1.13438881 -3.03225806 6.22580645 13.75926546 1.13759265 -3.03225806 6.51612903 14.13934485 1.14139345 -3.03225806 6.80645161 14.62674650 1.14626746 -3.03225806 7.09677419 15.10357489 1.15103575 -3.03225806 7.38709677 15.10357489 1.15103575 -3.03225806 7.67741935 15.10357489 1.15103575 -3.03225806 7.96774194 15.10357489 1.15103575 -3.03225806 8.25806452 15.10357489 1.15103575 -3.03225806 8.54838710 15.10357489 1.15103575 -3.03225806 8.83870968 15.10357489 1.15103575 -3.03225806 9.12903226 15.10357489 1.15103575 -3.03225806 9.41935484 15.10357489 1.15103575 -3.03225806 9.70967742 15.10357489 1.15103575 -3.03225806 10.00000000 15.10357489 1.15103575 -3.32258065 1.00000000 10.70846739 1.10708467 -3.32258065 1.29032258 10.70846739 1.10708467 -3.32258065 1.58064516 10.70846739 1.10708467 -3.32258065 1.87096774 10.70846739 1.10708467 -3.32258065 2.16129032 10.70846739 1.10708467 -3.32258065 2.45161290 10.70846739 1.10708467 -3.32258065 2.74193548 10.70846739 1.10708467 -3.32258065 3.03225806 10.79601822 1.10796018 -3.32258065 3.32258065 11.32266175 1.11322662 -3.32258065 3.61290323 11.71291316 1.11712913 -3.32258065 3.90322581 12.04341522 1.12043415 -3.32258065 4.19354839 12.33970940 1.12339709 -3.32258065 4.48387097 12.61573315 1.12615733 -3.32258065 4.77419355 12.88122387 1.12881224 -3.32258065 5.06451613 13.14483502 1.13144835 -3.32258065 5.35483871 13.41408247 1.13414082 -3.32258065 5.64516129 13.69613892 1.13696139 -3.32258065 5.93548387 14.00077769 1.14000778 -3.32258065 6.22580645 14.34225854 1.14342259 -3.32258065 6.51612903 14.73996425 1.14739964 -3.32258065 6.80645161 15.23916402 1.15239164 -3.32258065 7.09677419 15.70844950 1.15708449 -3.32258065 7.38709677 15.70844950 1.15708449 -3.32258065 7.67741935 15.70844950 1.15708449 -3.32258065 7.96774194 15.70844950 1.15708449 -3.32258065 8.25806452 15.70844950 1.15708449 -3.32258065 8.54838710 15.70844950 1.15708449 -3.32258065 8.83870968 15.70844950 1.15708449 -3.32258065 9.12903226 15.70844950 1.15708449 -3.32258065 9.41935484 15.70844950 1.15708449 -3.32258065 9.70967742 15.70844950 1.15708449 -3.32258065 10.00000000 15.70844950 1.15708449 -3.61290323 1.00000000 11.13394556 1.11133946 -3.61290323 1.29032258 11.13394556 1.11133946 -3.61290323 1.58064516 11.13394556 1.11133946 -3.61290323 1.87096774 11.13394556 1.11133946 -3.61290323 2.16129032 11.13394556 1.11133946 -3.61290323 2.45161290 11.13394556 1.11133946 -3.61290323 2.74193548 11.13394556 1.11133946 -3.61290323 3.03225806 11.21535874 1.11215359 -3.61290323 3.32258065 11.71291316 1.11712913 -3.61290323 3.61290323 12.09048689 1.12090487 -3.61290323 3.90322581 12.41795109 1.12417951 -3.61290323 4.19354839 12.71702039 1.12717020 -3.61290323 4.48387097 12.99911163 1.12999112 -3.61290323 4.77419355 13.27378061 1.13273781 -3.61290323 5.06451613 13.54771797 1.13547718 -3.61290323 5.35483871 13.82751223 1.13827512 -3.61290323 5.64516129 14.12018766 1.14120188 -3.61290323 5.93548387 14.43537168 1.14435372 -3.61290323 6.22580645 14.78491413 1.14784914 -3.61290323 6.51612903 15.18700487 1.15187005 -3.61290323 6.80645161 15.68154801 1.15681548 -3.61290323 7.09677419 16.13382374 1.16133824 -3.61290323 7.38709677 16.13382374 1.16133824 -3.61290323 7.67741935 16.13382374 1.16133824 -3.61290323 7.96774194 16.13382374 1.16133824 -3.61290323 8.25806452 16.13382374 1.16133824 -3.61290323 8.54838710 16.13382374 1.16133824 -3.61290323 8.83870968 16.13382374 1.16133824 -3.61290323 9.12903226 16.13382374 1.16133824 -3.61290323 9.41935484 16.13382374 1.16133824 -3.61290323 9.70967742 16.13382374 1.16133824 -3.61290323 10.00000000 16.13382374 1.16133824 -3.90322581 1.00000000 11.47924881 1.11479249 -3.90322581 1.29032258 11.47924881 1.11479249 -3.90322581 1.58064516 11.47924881 1.11479249 -3.90322581 1.87096774 11.47924881 1.11479249 -3.90322581 2.16129032 11.47924881 1.11479249 -3.90322581 2.45161290 11.47924881 1.11479249 -3.90322581 2.74193548 11.47924881 1.11479249 -3.90322581 3.03225806 11.55784646 1.11557846 -3.90322581 3.32258065 12.04341522 1.12043415 -3.90322581 3.61290323 12.41795109 1.12417951 -3.90322581 3.90322581 12.74629906 1.12746299 -3.90322581 4.19354839 13.04969635 1.13049696 -3.90322581 4.48387097 13.33797049 1.13337970 -3.90322581 4.77419355 13.62015959 1.13620160 -3.90322581 5.06451613 13.90194660 1.13901947 -3.90322581 5.35483871 14.18888316 1.14188883 -3.90322581 5.64516129 14.48954068 1.14489541 -3.90322581 5.93548387 14.80982202 1.14809822 -3.90322581 6.22580645 15.16074884 1.15160749 -3.90322581 6.51612903 15.56087142 1.15560871 -3.90322581 6.80645161 16.04390018 1.16043900 -3.90322581 7.09677419 16.47922769 1.16479228 -3.90322581 7.38709677 16.47922769 1.16479228 -3.90322581 7.67741935 16.47922769 1.16479228 -3.90322581 7.96774194 16.47922769 1.16479228 -3.90322581 8.25806452 16.47922769 1.16479228 -3.90322581 8.54838710 16.47922769 1.16479228 -3.90322581 8.83870968 16.47922769 1.16479228 -3.90322581 9.12903226 16.47922769 1.16479228 -3.90322581 9.41935484 16.47922769 1.16479228 -3.90322581 9.70967742 16.47922769 1.16479228 -3.90322581 10.00000000 16.47922769 1.16479228 -4.19354839 1.00000000 11.77837052 1.11778371 -4.19354839 1.29032258 11.77837052 1.11778371 -4.19354839 1.58064516 11.77837052 1.11778371 -4.19354839 1.87096774 11.77837052 1.11778371 -4.19354839 2.16129032 11.77837052 1.11778371 -4.19354839 2.45161290 11.77837052 1.11778371 -4.19354839 2.74193548 11.77837052 1.11778371 -4.19354839 3.03225806 11.85579036 1.11855790 -4.19354839 3.32258065 12.33970940 1.12339709 -4.19354839 3.61290323 12.71702039 1.12717020 -4.19354839 3.90322581 13.04969635 1.13049696 -4.19354839 4.19354839 13.35789542 1.13357895 -4.19354839 4.48387097 13.65214664 1.13652147 -4.19354839 4.77419355 13.94035790 1.13940358 -4.19354839 5.06451613 14.22819712 1.14228197 -4.19354839 5.35483871 14.52045260 1.14520453 -4.19354839 5.64516129 14.82442596 1.14824426 -4.19354839 5.93548387 15.14611095 1.15146111 -4.19354839 6.22580645 15.49584016 1.15495840 -4.19354839 6.51612903 15.88989883 1.15889899 -4.19354839 6.80645161 16.36071096 1.16360711 -4.19354839 7.09677419 16.77845274 1.16778453 -4.19354839 7.38709677 16.77845274 1.16778453 -4.19354839 7.67741935 16.77845274 1.16778453 -4.19354839 7.96774194 16.77845274 1.16778453 -4.19354839 8.25806452 16.77845274 1.16778453 -4.19354839 8.54838710 16.77845274 1.16778453 -4.19354839 8.83870968 16.77845274 1.16778453 -4.19354839 9.12903226 16.77845274 1.16778453 -4.19354839 9.41935484 16.77845274 1.16778453 -4.19354839 9.70967742 16.77845274 1.16778453 -4.19354839 10.00000000 16.77845274 1.16778453 -4.48387097 1.00000000 12.05010492 1.12050105 -4.48387097 1.29032258 12.05010492 1.12050105 -4.48387097 1.58064516 12.05010492 1.12050105 -4.48387097 1.87096774 12.05010492 1.12050105 -4.48387097 2.16129032 12.05010492 1.12050105 -4.48387097 2.45161290 12.05010492 1.12050105 -4.48387097 2.74193548 12.05010492 1.12050105 -4.48387097 3.03225806 12.12724043 1.12127240 -4.48387097 3.32258065 12.61573315 1.12615733 -4.48387097 3.61290323 12.99911163 1.12999112 -4.48387097 3.90322581 13.33797049 1.13337970 -4.48387097 4.19354839 13.65214664 1.13652147 -4.48387097 4.48387097 13.95167976 1.13951680 -4.48387097 4.77419355 14.24536545 1.14245365 -4.48387097 5.06451613 14.53742599 1.14537426 -4.48387097 5.35483871 14.83253803 1.14832538 -4.48387097 5.64516129 15.13703643 1.15137036 -4.48387097 5.93548387 15.45709896 1.15457099 -4.48387097 6.22580645 15.80333467 1.15803335 -4.48387097 6.51612903 16.18964589 1.16189646 -4.48387097 6.80645161 16.64650295 1.16646503 -4.48387097 7.09677419 17.05002382 1.17050024 -4.48387097 7.38709677 17.05002382 1.17050024 -4.48387097 7.67741935 17.05002382 1.17050024 -4.48387097 7.96774194 17.05002382 1.17050024 -4.48387097 8.25806452 17.05002382 1.17050024 -4.48387097 8.54838710 17.05002382 1.17050024 -4.48387097 8.83870968 17.05002382 1.17050024 -4.48387097 9.12903226 17.05002382 1.17050024 -4.48387097 9.41935484 17.05002382 1.17050024 -4.48387097 9.70967742 17.05002382 1.17050024 -4.48387097 10.00000000 17.05002382 1.17050024 -4.77419355 1.00000000 12.30576276 1.12305763 -4.77419355 1.29032258 12.30576276 1.12305763 -4.77419355 1.58064516 12.30576276 1.12305763 -4.77419355 1.87096774 12.30576276 1.12305763 -4.77419355 2.16129032 12.30576276 1.12305763 -4.77419355 2.45161290 12.30576276 1.12305763 -4.77419355 2.74193548 12.30576276 1.12305763 -4.77419355 3.03225806 12.38405258 1.12384053 -4.77419355 3.32258065 12.88122387 1.12881224 -4.77419355 3.61290323 13.27378061 1.13273781 -4.77419355 3.90322581 13.62015959 1.13620160 -4.77419355 4.19354839 13.94035790 1.13940358 -4.77419355 4.48387097 14.24536545 1.14245365 -4.77419355 4.77419355 14.54225355 1.14542254 -4.77419355 5.06451613 14.83618630 1.14836186 -4.77419355 5.35483871 15.13221695 1.15132217 -4.77419355 5.64516129 15.43597664 1.15435977 -4.77419355 5.93548387 15.75365034 1.15753650 -4.77419355 6.22580645 16.09439857 1.16094399 -4.77419355 6.51612903 16.47201646 1.16472016 -4.77419355 6.80645161 16.91532876 1.16915329 -4.77419355 7.09677419 17.30571907 1.17305719 -4.77419355 7.38709677 17.30571907 1.17305719 -4.77419355 7.67741935 17.30571907 1.17305719 -4.77419355 7.96774194 17.30571907 1.17305719 -4.77419355 8.25806452 17.30571907 1.17305719 -4.77419355 8.54838710 17.30571907 1.17305719 -4.77419355 8.83870968 17.30571907 1.17305719 -4.77419355 9.12903226 17.30571907 1.17305719 -4.77419355 9.41935484 17.30571907 1.17305719 -4.77419355 9.70967742 17.30571907 1.17305719 -4.77419355 10.00000000 17.30571907 1.17305719 -5.06451613 1.00000000 12.55517544 1.12555175 -5.06451613 1.29032258 12.55517544 1.12555175 -5.06451613 1.58064516 12.55517544 1.12555175 -5.06451613 1.87096774 12.55517544 1.12555175 -5.06451613 2.16129032 12.55517544 1.12555175 -5.06451613 2.45161290 12.55517544 1.12555175 -5.06451613 2.74193548 12.55517544 1.12555175 -5.06451613 3.03225806 12.63499742 1.12634997 -5.06451613 3.32258065 13.14483502 1.13144835 -5.06451613 3.61290323 13.54771797 1.13547718 -5.06451613 3.90322581 13.90194660 1.13901947 -5.06451613 4.19354839 14.22819712 1.14228197 -5.06451613 4.48387097 14.53742599 1.14537426 -5.06451613 4.77419355 14.83618630 1.14836186 -5.06451613 5.06451613 15.13082220 1.15130822 -5.06451613 5.35483871 15.42613481 1.15426135 -5.06451613 5.64516129 15.72760843 1.15727608 -5.06451613 5.93548387 16.04091807 1.16040918 -5.06451613 6.22580645 16.37497163 1.16374972 -5.06451613 6.51612903 16.74347970 1.16743480 -5.06451613 6.80645161 17.17503189 1.17175032 -5.06451613 7.09677419 17.55554644 1.17555546 -5.06451613 7.38709677 17.55554644 1.17555546 -5.06451613 7.67741935 17.55554644 1.17555546 -5.06451613 7.96774194 17.55554644 1.17555546 -5.06451613 8.25806452 17.55554644 1.17555546 -5.06451613 8.54838710 17.55554644 1.17555546 -5.06451613 8.83870968 17.55554644 1.17555546 -5.06451613 9.12903226 17.55554644 1.17555546 -5.06451613 9.41935484 17.55554644 1.17555546 -5.06451613 9.70967742 17.55554644 1.17555546 -5.06451613 10.00000000 17.55554644 1.17555546 -5.35483871 1.00000000 12.80665986 1.12806660 -5.35483871 1.29032258 12.80665986 1.12806660 -5.35483871 1.58064516 12.80665986 1.12806660 -5.35483871 1.87096774 12.80665986 1.12806660 -5.35483871 2.16129032 12.80665986 1.12806660 -5.35483871 2.45161290 12.80665986 1.12806660 -5.35483871 2.74193548 12.80665986 1.12806660 -5.35483871 3.03225806 12.88858563 1.12888586 -5.35483871 3.32258065 13.41408247 1.13414082 -5.35483871 3.61290323 13.82751223 1.13827512 -5.35483871 3.90322581 14.18888316 1.14188883 -5.35483871 4.19354839 14.52045260 1.14520453 -5.35483871 4.48387097 14.83253803 1.14832538 -5.35483871 4.77419355 15.13221695 1.15132217 -5.35483871 5.06451613 15.42613481 1.15426135 -5.35483871 5.35483871 15.71936190 1.15719362 -5.35483871 5.64516129 16.01779116 1.16017791 -5.35483871 5.93548387 16.32590382 1.16325904 -5.35483871 6.22580645 16.65335849 1.16653358 -5.35483871 6.51612903 17.01334871 1.17013349 -5.35483871 6.80645161 17.43409709 1.17434097 -5.35483871 7.09677419 17.80639865 1.17806399 -5.35483871 7.38709677 17.80639865 1.17806399 -5.35483871 7.67741935 17.80639865 1.17806399 -5.35483871 7.96774194 17.80639865 1.17806399 -5.35483871 8.25806452 17.80639865 1.17806399 -5.35483871 8.54838710 17.80639865 1.17806399 -5.35483871 8.83870968 17.80639865 1.17806399 -5.35483871 9.12903226 17.80639865 1.17806399 -5.35483871 9.41935484 17.80639865 1.17806399 -5.35483871 9.70967742 17.80639865 1.17806399 -5.35483871 10.00000000 17.80639865 1.17806399 -5.64516129 1.00000000 13.06809323 1.13068093 -5.64516129 1.29032258 13.06809323 1.13068093 -5.64516129 1.58064516 13.06809323 1.13068093 -5.64516129 1.87096774 13.06809323 1.13068093 -5.64516129 2.16129032 13.06809323 1.13068093 -5.64516129 2.45161290 13.06809323 1.13068093 -5.64516129 2.74193548 13.06809323 1.13068093 -5.64516129 3.03225806 13.15323067 1.13153231 -5.64516129 3.32258065 13.69613892 1.13696139 -5.64516129 3.61290323 14.12018766 1.14120188 -5.64516129 3.90322581 14.48954068 1.14489541 -5.64516129 4.19354839 14.82442596 1.14824426 -5.64516129 4.48387097 15.13703643 1.15137036 -5.64516129 4.77419355 15.43597664 1.15435977 -5.64516129 5.06451613 15.72760843 1.15727608 -5.64516129 5.35483871 16.01779116 1.16017791 -5.64516129 5.64516129 16.31159861 1.16311599 -5.64516129 5.93548387 16.61373257 1.16613733 -5.64516129 6.22580645 16.93399499 1.16933995 -5.64516129 6.51612903 17.28681907 1.17286819 -5.64516129 6.80645161 17.70002087 1.17700021 -5.64516129 7.09677419 18.06809818 1.18068098 -5.64516129 7.38709677 18.06809818 1.18068098 -5.64516129 7.67741935 18.06809818 1.18068098 -5.64516129 7.96774194 18.06809818 1.18068098 -5.64516129 8.25806452 18.06809818 1.18068098 -5.64516129 8.54838710 18.06809818 1.18068098 -5.64516129 8.83870968 18.06809818 1.18068098 -5.64516129 9.12903226 18.06809818 1.18068098 -5.64516129 9.41935484 18.06809818 1.18068098 -5.64516129 9.70967742 18.06809818 1.18068098 -5.64516129 10.00000000 18.06809818 1.18068098 -5.93548387 1.00000000 13.35056196 1.13350562 -5.93548387 1.29032258 13.35056196 1.13350562 -5.93548387 1.58064516 13.35056196 1.13350562 -5.93548387 1.87096774 13.35056196 1.13350562 -5.93548387 2.16129032 13.35056196 1.13350562 -5.93548387 2.45161290 13.35056196 1.13350562 -5.93548387 2.74193548 13.35056196 1.13350562 -5.93548387 3.03225806 13.43888099 1.13438881 -5.93548387 3.32258065 14.00077769 1.14000778 -5.93548387 3.61290323 14.43537168 1.14435372 -5.93548387 3.90322581 14.80982202 1.14809822 -5.93548387 4.19354839 15.14611095 1.15146111 -5.93548387 4.48387097 15.45709896 1.15457099 -5.93548387 4.77419355 15.75365034 1.15753650 -5.93548387 5.06451613 16.04091807 1.16040918 -5.93548387 5.35483871 16.32590382 1.16325904 -5.93548387 5.64516129 16.61373257 1.16613733 -5.93548387 5.93548387 16.91101948 1.16911019 -5.93548387 6.22580645 17.22556302 1.17225563 -5.93548387 6.51612903 17.57263541 1.17572635 -5.93548387 6.80645161 17.98210647 1.17982106 -5.93548387 7.09677419 18.34996260 1.18349963 -5.93548387 7.38709677 18.34996260 1.18349963 -5.93548387 7.67741935 18.34996260 1.18349963 -5.93548387 7.96774194 18.34996260 1.18349963 -5.93548387 8.25806452 18.34996260 1.18349963 -5.93548387 8.54838710 18.34996260 1.18349963 -5.93548387 8.83870968 18.34996260 1.18349963 -5.93548387 9.12903226 18.34996260 1.18349963 -5.93548387 9.41935484 18.34996260 1.18349963 -5.93548387 9.70967742 18.34996260 1.18349963 -5.93548387 10.00000000 18.34996260 1.18349963 -6.22580645 1.00000000 13.66657067 1.13666571 -6.22580645 1.29032258 13.66657067 1.13666571 -6.22580645 1.58064516 13.66657067 1.13666571 -6.22580645 1.87096774 13.66657067 1.13666571 -6.22580645 2.16129032 13.66657067 1.13666571 -6.22580645 2.45161290 13.66657067 1.13666571 -6.22580645 2.74193548 13.66657067 1.13666571 -6.22580645 3.03225806 13.75926546 1.13759265 -6.22580645 3.32258065 14.34225854 1.14342259 -6.22580645 3.61290323 14.78491413 1.14784914 -6.22580645 3.90322581 15.16074884 1.15160749 -6.22580645 4.19354839 15.49584016 1.15495840 -6.22580645 4.48387097 15.80333467 1.15803335 -6.22580645 4.77419355 16.09439857 1.16094399 -6.22580645 5.06451613 16.37497163 1.16374972 -6.22580645 5.35483871 16.65335849 1.16653358 -6.22580645 5.64516129 16.93399499 1.16933995 -6.22580645 5.93548387 17.22556302 1.17225563 -6.22580645 6.22580645 17.53669460 1.17536695 -6.22580645 6.51612903 17.88214034 1.17882140 -6.22580645 6.80645161 18.29211153 1.18292112 -6.22580645 7.09677419 18.66701771 1.18667018 -6.22580645 7.38709677 18.66701771 1.18667018 -6.22580645 7.67741935 18.66701771 1.18667018 -6.22580645 7.96774194 18.66701771 1.18667018 -6.22580645 8.25806452 18.66701771 1.18667018 -6.22580645 8.54838710 18.66701771 1.18667018 -6.22580645 8.83870968 18.66701771 1.18667018 -6.22580645 9.12903226 18.66701771 1.18667018 -6.22580645 9.41935484 18.66701771 1.18667018 -6.22580645 9.70967742 18.66701771 1.18667018 -6.22580645 10.00000000 18.66701771 1.18667018 -6.51612903 1.00000000 14.04212491 1.14042125 -6.51612903 1.29032258 14.04212491 1.14042125 -6.51612903 1.58064516 14.04212491 1.14042125 -6.51612903 1.87096774 14.04212491 1.14042125 -6.51612903 2.16129032 14.04212491 1.14042125 -6.51612903 2.45161290 14.04212491 1.14042125 -6.51612903 2.74193548 14.04212491 1.14042125 -6.51612903 3.03225806 14.13934485 1.14139345 -6.51612903 3.32258065 14.73996425 1.14739964 -6.51612903 3.61290323 15.18700487 1.15187005 -6.51612903 3.90322581 15.56087142 1.15560871 -6.51612903 4.19354839 15.88989883 1.15889899 -6.51612903 4.48387097 16.18964589 1.16189646 -6.51612903 4.77419355 16.47201646 1.16472016 -6.51612903 5.06451613 16.74347970 1.16743480 -6.51612903 5.35483871 17.01334871 1.17013349 -6.51612903 5.64516129 17.28681907 1.17286819 -6.51612903 5.93548387 17.57263541 1.17572635 -6.51612903 6.22580645 17.88214034 1.17882140 -6.51612903 6.51612903 18.22999587 1.18229996 -6.51612903 6.80645161 18.65108897 1.18651089 -6.51612903 7.09677419 19.04189908 1.19041899 -6.51612903 7.38709677 19.04189908 1.19041899 -6.51612903 7.67741935 19.04189908 1.19041899 -6.51612903 7.96774194 19.04189908 1.19041899 -6.51612903 8.25806452 19.04189908 1.19041899 -6.51612903 8.54838710 19.04189908 1.19041899 -6.51612903 8.83870968 19.04189908 1.19041899 -6.51612903 9.12903226 19.04189908 1.19041899 -6.51612903 9.41935484 19.04189908 1.19041899 -6.51612903 9.70967742 19.04189908 1.19041899 -6.51612903 10.00000000 19.04189908 1.19041899 -6.80645161 1.00000000 14.52492871 1.14524929 -6.80645161 1.29032258 14.52492871 1.14524929 -6.80645161 1.58064516 14.52492871 1.14524929 -6.80645161 1.87096774 14.52492871 1.14524929 -6.80645161 2.16129032 14.52492871 1.14524929 -6.80645161 2.45161290 14.52492871 1.14524929 -6.80645161 2.74193548 14.52492871 1.14524929 -6.80645161 3.03225806 14.62674650 1.14626746 -6.80645161 3.32258065 15.23916402 1.15239164 -6.80645161 3.61290323 15.68154801 1.15681548 -6.80645161 3.90322581 16.04390018 1.16043900 -6.80645161 4.19354839 16.36071096 1.16360711 -6.80645161 4.48387097 16.64650295 1.16646503 -6.80645161 4.77419355 16.91532876 1.16915329 -6.80645161 5.06451613 17.17503189 1.17175032 -6.80645161 5.35483871 17.43409709 1.17434097 -6.80645161 5.64516129 17.70002087 1.17700021 -6.80645161 5.93548387 17.98210647 1.17982106 -6.80645161 6.22580645 18.29211153 1.18292112 -6.80645161 6.51612903 18.65108897 1.18651089 -6.80645161 6.80645161 19.09888025 1.19098880 -6.80645161 7.09677419 19.52496415 1.19524964 -6.80645161 7.38709677 19.52496415 1.19524964 -6.80645161 7.67741935 19.52496415 1.19524964 -6.80645161 7.96774194 19.52496415 1.19524964 -6.80645161 8.25806452 19.52496415 1.19524964 -6.80645161 8.54838710 19.52496415 1.19524964 -6.80645161 8.83870968 19.52496415 1.19524964 -6.80645161 9.12903226 19.52496415 1.19524964 -6.80645161 9.41935484 19.52496415 1.19524964 -6.80645161 9.70967742 19.52496415 1.19524964 -6.80645161 10.00000000 19.52496415 1.19524964 -7.09677419 1.00000000 15.00000000 1.15000000 -7.09677419 1.29032258 15.00000000 1.15000000 -7.09677419 1.58064516 15.00000000 1.15000000 -7.09677419 1.87096774 15.00000000 1.15000000 -7.09677419 2.16129032 15.00000000 1.15000000 -7.09677419 2.45161290 15.00000000 1.15000000 -7.09677419 2.74193548 15.00000000 1.15000000 -7.09677419 3.03225806 15.10357489 1.15103575 -7.09677419 3.32258065 15.70844950 1.15708449 -7.09677419 3.61290323 16.13382374 1.16133824 -7.09677419 3.90322581 16.47922769 1.16479228 -7.09677419 4.19354839 16.77845274 1.16778453 -7.09677419 4.48387097 17.05002382 1.17050024 -7.09677419 4.77419355 17.30571907 1.17305719 -7.09677419 5.06451613 17.55554644 1.17555546 -7.09677419 5.35483871 17.80639865 1.17806399 -7.09677419 5.64516129 18.06809818 1.18068098 -7.09677419 5.93548387 18.34996260 1.18349963 -7.09677419 6.22580645 18.66701771 1.18667018 -7.09677419 6.51612903 19.04189908 1.19041899 -7.09677419 6.80645161 19.52496415 1.19524964 -7.09677419 7.09677419 19.99999704 1.19999997 -7.09677419 7.38709677 19.99999704 1.19999997 -7.09677419 7.67741935 19.99999704 1.19999997 -7.09677419 7.96774194 19.99999704 1.19999997 -7.09677419 8.25806452 19.99999704 1.19999997 -7.09677419 8.54838710 19.99999704 1.19999997 -7.09677419 8.83870968 19.99999704 1.19999997 -7.09677419 9.12903226 19.99999704 1.19999997 -7.09677419 9.41935484 19.99999704 1.19999997 -7.09677419 9.70967742 19.99999704 1.19999997 -7.09677419 10.00000000 19.99999704 1.19999997 -7.38709677 1.00000000 15.00000000 1.15000000 -7.38709677 1.29032258 15.00000000 1.15000000 -7.38709677 1.58064516 15.00000000 1.15000000 -7.38709677 1.87096774 15.00000000 1.15000000 -7.38709677 2.16129032 15.00000000 1.15000000 -7.38709677 2.45161290 15.00000000 1.15000000 -7.38709677 2.74193548 15.00000000 1.15000000 -7.38709677 3.03225806 15.10357489 1.15103575 -7.38709677 3.32258065 15.70844950 1.15708449 -7.38709677 3.61290323 16.13382374 1.16133824 -7.38709677 3.90322581 16.47922769 1.16479228 -7.38709677 4.19354839 16.77845274 1.16778453 -7.38709677 4.48387097 17.05002382 1.17050024 -7.38709677 4.77419355 17.30571907 1.17305719 -7.38709677 5.06451613 17.55554644 1.17555546 -7.38709677 5.35483871 17.80639865 1.17806399 -7.38709677 5.64516129 18.06809818 1.18068098 -7.38709677 5.93548387 18.34996260 1.18349963 -7.38709677 6.22580645 18.66701771 1.18667018 -7.38709677 6.51612903 19.04189908 1.19041899 -7.38709677 6.80645161 19.52496415 1.19524964 -7.38709677 7.09677419 19.99999704 1.19999997 -7.38709677 7.38709677 19.99999704 1.19999997 -7.38709677 7.67741935 19.99999704 1.19999997 -7.38709677 7.96774194 19.99999704 1.19999997 -7.38709677 8.25806452 19.99999704 1.19999997 -7.38709677 8.54838710 19.99999704 1.19999997 -7.38709677 8.83870968 19.99999704 1.19999997 -7.38709677 9.12903226 19.99999704 1.19999997 -7.38709677 9.41935484 19.99999704 1.19999997 -7.38709677 9.70967742 19.99999704 1.19999997 -7.38709677 10.00000000 19.99999704 1.19999997 -7.67741935 1.00000000 15.00000000 1.15000000 -7.67741935 1.29032258 15.00000000 1.15000000 -7.67741935 1.58064516 15.00000000 1.15000000 -7.67741935 1.87096774 15.00000000 1.15000000 -7.67741935 2.16129032 15.00000000 1.15000000 -7.67741935 2.45161290 15.00000000 1.15000000 -7.67741935 2.74193548 15.00000000 1.15000000 -7.67741935 3.03225806 15.10357489 1.15103575 -7.67741935 3.32258065 15.70844950 1.15708449 -7.67741935 3.61290323 16.13382374 1.16133824 -7.67741935 3.90322581 16.47922769 1.16479228 -7.67741935 4.19354839 16.77845274 1.16778453 -7.67741935 4.48387097 17.05002382 1.17050024 -7.67741935 4.77419355 17.30571907 1.17305719 -7.67741935 5.06451613 17.55554644 1.17555546 -7.67741935 5.35483871 17.80639865 1.17806399 -7.67741935 5.64516129 18.06809818 1.18068098 -7.67741935 5.93548387 18.34996260 1.18349963 -7.67741935 6.22580645 18.66701771 1.18667018 -7.67741935 6.51612903 19.04189908 1.19041899 -7.67741935 6.80645161 19.52496415 1.19524964 -7.67741935 7.09677419 19.99999704 1.19999997 -7.67741935 7.38709677 19.99999704 1.19999997 -7.67741935 7.67741935 19.99999704 1.19999997 -7.67741935 7.96774194 19.99999704 1.19999997 -7.67741935 8.25806452 19.99999704 1.19999997 -7.67741935 8.54838710 19.99999704 1.19999997 -7.67741935 8.83870968 19.99999704 1.19999997 -7.67741935 9.12903226 19.99999704 1.19999997 -7.67741935 9.41935484 19.99999704 1.19999997 -7.67741935 9.70967742 19.99999704 1.19999997 -7.67741935 10.00000000 19.99999704 1.19999997 -7.96774194 1.00000000 15.00000000 1.15000000 -7.96774194 1.29032258 15.00000000 1.15000000 -7.96774194 1.58064516 15.00000000 1.15000000 -7.96774194 1.87096774 15.00000000 1.15000000 -7.96774194 2.16129032 15.00000000 1.15000000 -7.96774194 2.45161290 15.00000000 1.15000000 -7.96774194 2.74193548 15.00000000 1.15000000 -7.96774194 3.03225806 15.10357489 1.15103575 -7.96774194 3.32258065 15.70844950 1.15708449 -7.96774194 3.61290323 16.13382374 1.16133824 -7.96774194 3.90322581 16.47922769 1.16479228 -7.96774194 4.19354839 16.77845274 1.16778453 -7.96774194 4.48387097 17.05002382 1.17050024 -7.96774194 4.77419355 17.30571907 1.17305719 -7.96774194 5.06451613 17.55554644 1.17555546 -7.96774194 5.35483871 17.80639865 1.17806399 -7.96774194 5.64516129 18.06809818 1.18068098 -7.96774194 5.93548387 18.34996260 1.18349963 -7.96774194 6.22580645 18.66701771 1.18667018 -7.96774194 6.51612903 19.04189908 1.19041899 -7.96774194 6.80645161 19.52496415 1.19524964 -7.96774194 7.09677419 19.99999704 1.19999997 -7.96774194 7.38709677 19.99999704 1.19999997 -7.96774194 7.67741935 19.99999704 1.19999997 -7.96774194 7.96774194 19.99999704 1.19999997 -7.96774194 8.25806452 19.99999704 1.19999997 -7.96774194 8.54838710 19.99999704 1.19999997 -7.96774194 8.83870968 19.99999704 1.19999997 -7.96774194 9.12903226 19.99999704 1.19999997 -7.96774194 9.41935484 19.99999704 1.19999997 -7.96774194 9.70967742 19.99999704 1.19999997 -7.96774194 10.00000000 19.99999704 1.19999997 -8.25806452 1.00000000 15.00000000 1.15000000 -8.25806452 1.29032258 15.00000000 1.15000000 -8.25806452 1.58064516 15.00000000 1.15000000 -8.25806452 1.87096774 15.00000000 1.15000000 -8.25806452 2.16129032 15.00000000 1.15000000 -8.25806452 2.45161290 15.00000000 1.15000000 -8.25806452 2.74193548 15.00000000 1.15000000 -8.25806452 3.03225806 15.10357489 1.15103575 -8.25806452 3.32258065 15.70844950 1.15708449 -8.25806452 3.61290323 16.13382374 1.16133824 -8.25806452 3.90322581 16.47922769 1.16479228 -8.25806452 4.19354839 16.77845274 1.16778453 -8.25806452 4.48387097 17.05002382 1.17050024 -8.25806452 4.77419355 17.30571907 1.17305719 -8.25806452 5.06451613 17.55554644 1.17555546 -8.25806452 5.35483871 17.80639865 1.17806399 -8.25806452 5.64516129 18.06809818 1.18068098 -8.25806452 5.93548387 18.34996260 1.18349963 -8.25806452 6.22580645 18.66701771 1.18667018 -8.25806452 6.51612903 19.04189908 1.19041899 -8.25806452 6.80645161 19.52496415 1.19524964 -8.25806452 7.09677419 19.99999704 1.19999997 -8.25806452 7.38709677 19.99999704 1.19999997 -8.25806452 7.67741935 19.99999704 1.19999997 -8.25806452 7.96774194 19.99999704 1.19999997 -8.25806452 8.25806452 19.99999704 1.19999997 -8.25806452 8.54838710 19.99999704 1.19999997 -8.25806452 8.83870968 19.99999704 1.19999997 -8.25806452 9.12903226 19.99999704 1.19999997 -8.25806452 9.41935484 19.99999704 1.19999997 -8.25806452 9.70967742 19.99999704 1.19999997 -8.25806452 10.00000000 19.99999704 1.19999997 -8.54838710 1.00000000 15.00000000 1.15000000 -8.54838710 1.29032258 15.00000000 1.15000000 -8.54838710 1.58064516 15.00000000 1.15000000 -8.54838710 1.87096774 15.00000000 1.15000000 -8.54838710 2.16129032 15.00000000 1.15000000 -8.54838710 2.45161290 15.00000000 1.15000000 -8.54838710 2.74193548 15.00000000 1.15000000 -8.54838710 3.03225806 15.10357489 1.15103575 -8.54838710 3.32258065 15.70844950 1.15708449 -8.54838710 3.61290323 16.13382374 1.16133824 -8.54838710 3.90322581 16.47922769 1.16479228 -8.54838710 4.19354839 16.77845274 1.16778453 -8.54838710 4.48387097 17.05002382 1.17050024 -8.54838710 4.77419355 17.30571907 1.17305719 -8.54838710 5.06451613 17.55554644 1.17555546 -8.54838710 5.35483871 17.80639865 1.17806399 -8.54838710 5.64516129 18.06809818 1.18068098 -8.54838710 5.93548387 18.34996260 1.18349963 -8.54838710 6.22580645 18.66701771 1.18667018 -8.54838710 6.51612903 19.04189908 1.19041899 -8.54838710 6.80645161 19.52496415 1.19524964 -8.54838710 7.09677419 19.99999704 1.19999997 -8.54838710 7.38709677 19.99999704 1.19999997 -8.54838710 7.67741935 19.99999704 1.19999997 -8.54838710 7.96774194 19.99999704 1.19999997 -8.54838710 8.25806452 19.99999704 1.19999997 -8.54838710 8.54838710 19.99999704 1.19999997 -8.54838710 8.83870968 19.99999704 1.19999997 -8.54838710 9.12903226 19.99999704 1.19999997 -8.54838710 9.41935484 19.99999704 1.19999997 -8.54838710 9.70967742 19.99999704 1.19999997 -8.54838710 10.00000000 19.99999704 1.19999997 -8.83870968 1.00000000 15.00000000 1.15000000 -8.83870968 1.29032258 15.00000000 1.15000000 -8.83870968 1.58064516 15.00000000 1.15000000 -8.83870968 1.87096774 15.00000000 1.15000000 -8.83870968 2.16129032 15.00000000 1.15000000 -8.83870968 2.45161290 15.00000000 1.15000000 -8.83870968 2.74193548 15.00000000 1.15000000 -8.83870968 3.03225806 15.10357489 1.15103575 -8.83870968 3.32258065 15.70844950 1.15708449 -8.83870968 3.61290323 16.13382374 1.16133824 -8.83870968 3.90322581 16.47922769 1.16479228 -8.83870968 4.19354839 16.77845274 1.16778453 -8.83870968 4.48387097 17.05002382 1.17050024 -8.83870968 4.77419355 17.30571907 1.17305719 -8.83870968 5.06451613 17.55554644 1.17555546 -8.83870968 5.35483871 17.80639865 1.17806399 -8.83870968 5.64516129 18.06809818 1.18068098 -8.83870968 5.93548387 18.34996260 1.18349963 -8.83870968 6.22580645 18.66701771 1.18667018 -8.83870968 6.51612903 19.04189908 1.19041899 -8.83870968 6.80645161 19.52496415 1.19524964 -8.83870968 7.09677419 19.99999704 1.19999997 -8.83870968 7.38709677 19.99999704 1.19999997 -8.83870968 7.67741935 19.99999704 1.19999997 -8.83870968 7.96774194 19.99999704 1.19999997 -8.83870968 8.25806452 19.99999704 1.19999997 -8.83870968 8.54838710 19.99999704 1.19999997 -8.83870968 8.83870968 19.99999704 1.19999997 -8.83870968 9.12903226 19.99999704 1.19999997 -8.83870968 9.41935484 19.99999704 1.19999997 -8.83870968 9.70967742 19.99999704 1.19999997 -8.83870968 10.00000000 19.99999704 1.19999997 -9.12903226 1.00000000 15.00000000 1.15000000 -9.12903226 1.29032258 15.00000000 1.15000000 -9.12903226 1.58064516 15.00000000 1.15000000 -9.12903226 1.87096774 15.00000000 1.15000000 -9.12903226 2.16129032 15.00000000 1.15000000 -9.12903226 2.45161290 15.00000000 1.15000000 -9.12903226 2.74193548 15.00000000 1.15000000 -9.12903226 3.03225806 15.10357489 1.15103575 -9.12903226 3.32258065 15.70844950 1.15708449 -9.12903226 3.61290323 16.13382374 1.16133824 -9.12903226 3.90322581 16.47922769 1.16479228 -9.12903226 4.19354839 16.77845274 1.16778453 -9.12903226 4.48387097 17.05002382 1.17050024 -9.12903226 4.77419355 17.30571907 1.17305719 -9.12903226 5.06451613 17.55554644 1.17555546 -9.12903226 5.35483871 17.80639865 1.17806399 -9.12903226 5.64516129 18.06809818 1.18068098 -9.12903226 5.93548387 18.34996260 1.18349963 -9.12903226 6.22580645 18.66701771 1.18667018 -9.12903226 6.51612903 19.04189908 1.19041899 -9.12903226 6.80645161 19.52496415 1.19524964 -9.12903226 7.09677419 19.99999704 1.19999997 -9.12903226 7.38709677 19.99999704 1.19999997 -9.12903226 7.67741935 19.99999704 1.19999997 -9.12903226 7.96774194 19.99999704 1.19999997 -9.12903226 8.25806452 19.99999704 1.19999997 -9.12903226 8.54838710 19.99999704 1.19999997 -9.12903226 8.83870968 19.99999704 1.19999997 -9.12903226 9.12903226 19.99999704 1.19999997 -9.12903226 9.41935484 19.99999704 1.19999997 -9.12903226 9.70967742 19.99999704 1.19999997 -9.12903226 10.00000000 19.99999704 1.19999997 -9.41935484 1.00000000 15.00000000 1.15000000 -9.41935484 1.29032258 15.00000000 1.15000000 -9.41935484 1.58064516 15.00000000 1.15000000 -9.41935484 1.87096774 15.00000000 1.15000000 -9.41935484 2.16129032 15.00000000 1.15000000 -9.41935484 2.45161290 15.00000000 1.15000000 -9.41935484 2.74193548 15.00000000 1.15000000 -9.41935484 3.03225806 15.10357489 1.15103575 -9.41935484 3.32258065 15.70844950 1.15708449 -9.41935484 3.61290323 16.13382374 1.16133824 -9.41935484 3.90322581 16.47922769 1.16479228 -9.41935484 4.19354839 16.77845274 1.16778453 -9.41935484 4.48387097 17.05002382 1.17050024 -9.41935484 4.77419355 17.30571907 1.17305719 -9.41935484 5.06451613 17.55554644 1.17555546 -9.41935484 5.35483871 17.80639865 1.17806399 -9.41935484 5.64516129 18.06809818 1.18068098 -9.41935484 5.93548387 18.34996260 1.18349963 -9.41935484 6.22580645 18.66701771 1.18667018 -9.41935484 6.51612903 19.04189908 1.19041899 -9.41935484 6.80645161 19.52496415 1.19524964 -9.41935484 7.09677419 19.99999704 1.19999997 -9.41935484 7.38709677 19.99999704 1.19999997 -9.41935484 7.67741935 19.99999704 1.19999997 -9.41935484 7.96774194 19.99999704 1.19999997 -9.41935484 8.25806452 19.99999704 1.19999997 -9.41935484 8.54838710 19.99999704 1.19999997 -9.41935484 8.83870968 19.99999704 1.19999997 -9.41935484 9.12903226 19.99999704 1.19999997 -9.41935484 9.41935484 19.99999704 1.19999997 -9.41935484 9.70967742 19.99999704 1.19999997 -9.41935484 10.00000000 19.99999704 1.19999997 -9.70967742 1.00000000 15.00000000 1.15000000 -9.70967742 1.29032258 15.00000000 1.15000000 -9.70967742 1.58064516 15.00000000 1.15000000 -9.70967742 1.87096774 15.00000000 1.15000000 -9.70967742 2.16129032 15.00000000 1.15000000 -9.70967742 2.45161290 15.00000000 1.15000000 -9.70967742 2.74193548 15.00000000 1.15000000 -9.70967742 3.03225806 15.10357489 1.15103575 -9.70967742 3.32258065 15.70844950 1.15708449 -9.70967742 3.61290323 16.13382374 1.16133824 -9.70967742 3.90322581 16.47922769 1.16479228 -9.70967742 4.19354839 16.77845274 1.16778453 -9.70967742 4.48387097 17.05002382 1.17050024 -9.70967742 4.77419355 17.30571907 1.17305719 -9.70967742 5.06451613 17.55554644 1.17555546 -9.70967742 5.35483871 17.80639865 1.17806399 -9.70967742 5.64516129 18.06809818 1.18068098 -9.70967742 5.93548387 18.34996260 1.18349963 -9.70967742 6.22580645 18.66701771 1.18667018 -9.70967742 6.51612903 19.04189908 1.19041899 -9.70967742 6.80645161 19.52496415 1.19524964 -9.70967742 7.09677419 19.99999704 1.19999997 -9.70967742 7.38709677 19.99999704 1.19999997 -9.70967742 7.67741935 19.99999704 1.19999997 -9.70967742 7.96774194 19.99999704 1.19999997 -9.70967742 8.25806452 19.99999704 1.19999997 -9.70967742 8.54838710 19.99999704 1.19999997 -9.70967742 8.83870968 19.99999704 1.19999997 -9.70967742 9.12903226 19.99999704 1.19999997 -9.70967742 9.41935484 19.99999704 1.19999997 -9.70967742 9.70967742 19.99999704 1.19999997 -9.70967742 10.00000000 19.99999704 1.19999997 -10.00000000 1.00000000 15.00000000 1.15000000 -10.00000000 1.29032258 15.00000000 1.15000000 -10.00000000 1.58064516 15.00000000 1.15000000 -10.00000000 1.87096774 15.00000000 1.15000000 -10.00000000 2.16129032 15.00000000 1.15000000 -10.00000000 2.45161290 15.00000000 1.15000000 -10.00000000 2.74193548 15.00000000 1.15000000 -10.00000000 3.03225806 15.10357489 1.15103575 -10.00000000 3.32258065 15.70844950 1.15708449 -10.00000000 3.61290323 16.13382374 1.16133824 -10.00000000 3.90322581 16.47922769 1.16479228 -10.00000000 4.19354839 16.77845274 1.16778453 -10.00000000 4.48387097 17.05002382 1.17050024 -10.00000000 4.77419355 17.30571907 1.17305719 -10.00000000 5.06451613 17.55554644 1.17555546 -10.00000000 5.35483871 17.80639865 1.17806399 -10.00000000 5.64516129 18.06809818 1.18068098 -10.00000000 5.93548387 18.34996260 1.18349963 -10.00000000 6.22580645 18.66701771 1.18667018 -10.00000000 6.51612903 19.04189908 1.19041899 -10.00000000 6.80645161 19.52496415 1.19524964 -10.00000000 7.09677419 19.99999704 1.19999997 -10.00000000 7.38709677 19.99999704 1.19999997 -10.00000000 7.67741935 19.99999704 1.19999997 -10.00000000 7.96774194 19.99999704 1.19999997 -10.00000000 8.25806452 19.99999704 1.19999997 -10.00000000 8.54838710 19.99999704 1.19999997 -10.00000000 8.83870968 19.99999704 1.19999997 -10.00000000 9.12903226 19.99999704 1.19999997 -10.00000000 9.41935484 19.99999704 1.19999997 -10.00000000 9.70967742 19.99999704 1.19999997 -10.00000000 10.00000000 19.99999704 1.19999997 +FoodQuality Service Tip CheckPlusTip +1.000000000 1.000000000 10.000002957 1.100000030 +1.000000000 1.290322581 10.000002957 1.100000030 +1.000000000 1.580645161 10.000002957 1.100000030 +1.000000000 1.870967742 10.000002957 1.100000030 +1.000000000 2.161290323 10.000002957 1.100000030 +1.000000000 2.451612903 10.000002957 1.100000030 +1.000000000 2.741935484 10.000002957 1.100000030 +1.000000000 3.032258065 10.103612040 1.101036120 +1.000000000 3.322580645 10.708467388 1.107084674 +1.000000000 3.612903226 11.133945555 1.111339456 +1.000000000 3.903225806 11.479248807 1.114792488 +1.000000000 4.193548387 11.778370516 1.117783705 +1.000000000 4.483870968 12.050104922 1.120501049 +1.000000000 4.774193548 12.305762763 1.123057628 +1.000000000 5.064516129 12.555175445 1.125551754 +1.000000000 5.354838710 12.806659860 1.128066599 +1.000000000 5.645161290 13.068093230 1.130680932 +1.000000000 5.935483871 13.350561957 1.133505620 +1.000000000 6.225806452 13.666570669 1.136665707 +1.000000000 6.516129032 14.042124914 1.140421249 +1.000000000 6.806451613 14.524928709 1.145249287 +1.000000000 7.096774194 15.000000000 1.150000000 +1.000000000 7.387096774 15.000000000 1.150000000 +1.000000000 7.677419355 15.000000000 1.150000000 +1.000000000 7.967741935 15.000000000 1.150000000 +1.000000000 8.258064516 15.000000000 1.150000000 +1.000000000 8.548387097 15.000000000 1.150000000 +1.000000000 8.838709677 15.000000000 1.150000000 +1.000000000 9.129032258 15.000000000 1.150000000 +1.000000000 9.419354839 15.000000000 1.150000000 +1.000000000 9.709677419 15.000000000 1.150000000 +1.000000000 10.000000000 15.000000000 1.150000000 +1.290322581 1.000000000 10.000002957 1.100000030 +1.290322581 1.290322581 10.000002957 1.100000030 +1.290322581 1.580645161 10.000002957 1.100000030 +1.290322581 1.870967742 10.000002957 1.100000030 +1.290322581 2.161290323 10.000002957 1.100000030 +1.290322581 2.451612903 10.000002957 1.100000030 +1.290322581 2.741935484 10.000002957 1.100000030 +1.290322581 3.032258065 10.103612040 1.101036120 +1.290322581 3.322580645 10.708467388 1.107084674 +1.290322581 3.612903226 11.133945555 1.111339456 +1.290322581 3.903225806 11.479248807 1.114792488 +1.290322581 4.193548387 11.778370516 1.117783705 +1.290322581 4.483870968 12.050104922 1.120501049 +1.290322581 4.774193548 12.305762763 1.123057628 +1.290322581 5.064516129 12.555175445 1.125551754 +1.290322581 5.354838710 12.806659860 1.128066599 +1.290322581 5.645161290 13.068093230 1.130680932 +1.290322581 5.935483871 13.350561957 1.133505620 +1.290322581 6.225806452 13.666570669 1.136665707 +1.290322581 6.516129032 14.042124914 1.140421249 +1.290322581 6.806451613 14.524928709 1.145249287 +1.290322581 7.096774194 15.000000000 1.150000000 +1.290322581 7.387096774 15.000000000 1.150000000 +1.290322581 7.677419355 15.000000000 1.150000000 +1.290322581 7.967741935 15.000000000 1.150000000 +1.290322581 8.258064516 15.000000000 1.150000000 +1.290322581 8.548387097 15.000000000 1.150000000 +1.290322581 8.838709677 15.000000000 1.150000000 +1.290322581 9.129032258 15.000000000 1.150000000 +1.290322581 9.419354839 15.000000000 1.150000000 +1.290322581 9.709677419 15.000000000 1.150000000 +1.290322581 10.000000000 15.000000000 1.150000000 +1.580645161 1.000000000 10.000002957 1.100000030 +1.580645161 1.290322581 10.000002957 1.100000030 +1.580645161 1.580645161 10.000002957 1.100000030 +1.580645161 1.870967742 10.000002957 1.100000030 +1.580645161 2.161290323 10.000002957 1.100000030 +1.580645161 2.451612903 10.000002957 1.100000030 +1.580645161 2.741935484 10.000002957 1.100000030 +1.580645161 3.032258065 10.103612040 1.101036120 +1.580645161 3.322580645 10.708467388 1.107084674 +1.580645161 3.612903226 11.133945555 1.111339456 +1.580645161 3.903225806 11.479248807 1.114792488 +1.580645161 4.193548387 11.778370516 1.117783705 +1.580645161 4.483870968 12.050104922 1.120501049 +1.580645161 4.774193548 12.305762763 1.123057628 +1.580645161 5.064516129 12.555175445 1.125551754 +1.580645161 5.354838710 12.806659860 1.128066599 +1.580645161 5.645161290 13.068093230 1.130680932 +1.580645161 5.935483871 13.350561957 1.133505620 +1.580645161 6.225806452 13.666570669 1.136665707 +1.580645161 6.516129032 14.042124914 1.140421249 +1.580645161 6.806451613 14.524928709 1.145249287 +1.580645161 7.096774194 15.000000000 1.150000000 +1.580645161 7.387096774 15.000000000 1.150000000 +1.580645161 7.677419355 15.000000000 1.150000000 +1.580645161 7.967741935 15.000000000 1.150000000 +1.580645161 8.258064516 15.000000000 1.150000000 +1.580645161 8.548387097 15.000000000 1.150000000 +1.580645161 8.838709677 15.000000000 1.150000000 +1.580645161 9.129032258 15.000000000 1.150000000 +1.580645161 9.419354839 15.000000000 1.150000000 +1.580645161 9.709677419 15.000000000 1.150000000 +1.580645161 10.000000000 15.000000000 1.150000000 +1.870967742 1.000000000 10.000002957 1.100000030 +1.870967742 1.290322581 10.000002957 1.100000030 +1.870967742 1.580645161 10.000002957 1.100000030 +1.870967742 1.870967742 10.000002957 1.100000030 +1.870967742 2.161290323 10.000002957 1.100000030 +1.870967742 2.451612903 10.000002957 1.100000030 +1.870967742 2.741935484 10.000002957 1.100000030 +1.870967742 3.032258065 10.103612040 1.101036120 +1.870967742 3.322580645 10.708467388 1.107084674 +1.870967742 3.612903226 11.133945555 1.111339456 +1.870967742 3.903225806 11.479248807 1.114792488 +1.870967742 4.193548387 11.778370516 1.117783705 +1.870967742 4.483870968 12.050104922 1.120501049 +1.870967742 4.774193548 12.305762763 1.123057628 +1.870967742 5.064516129 12.555175445 1.125551754 +1.870967742 5.354838710 12.806659860 1.128066599 +1.870967742 5.645161290 13.068093230 1.130680932 +1.870967742 5.935483871 13.350561957 1.133505620 +1.870967742 6.225806452 13.666570669 1.136665707 +1.870967742 6.516129032 14.042124914 1.140421249 +1.870967742 6.806451613 14.524928709 1.145249287 +1.870967742 7.096774194 15.000000000 1.150000000 +1.870967742 7.387096774 15.000000000 1.150000000 +1.870967742 7.677419355 15.000000000 1.150000000 +1.870967742 7.967741935 15.000000000 1.150000000 +1.870967742 8.258064516 15.000000000 1.150000000 +1.870967742 8.548387097 15.000000000 1.150000000 +1.870967742 8.838709677 15.000000000 1.150000000 +1.870967742 9.129032258 15.000000000 1.150000000 +1.870967742 9.419354839 15.000000000 1.150000000 +1.870967742 9.709677419 15.000000000 1.150000000 +1.870967742 10.000000000 15.000000000 1.150000000 +2.161290323 1.000000000 10.000002957 1.100000030 +2.161290323 1.290322581 10.000002957 1.100000030 +2.161290323 1.580645161 10.000002957 1.100000030 +2.161290323 1.870967742 10.000002957 1.100000030 +2.161290323 2.161290323 10.000002957 1.100000030 +2.161290323 2.451612903 10.000002957 1.100000030 +2.161290323 2.741935484 10.000002957 1.100000030 +2.161290323 3.032258065 10.103612040 1.101036120 +2.161290323 3.322580645 10.708467388 1.107084674 +2.161290323 3.612903226 11.133945555 1.111339456 +2.161290323 3.903225806 11.479248807 1.114792488 +2.161290323 4.193548387 11.778370516 1.117783705 +2.161290323 4.483870968 12.050104922 1.120501049 +2.161290323 4.774193548 12.305762763 1.123057628 +2.161290323 5.064516129 12.555175445 1.125551754 +2.161290323 5.354838710 12.806659860 1.128066599 +2.161290323 5.645161290 13.068093230 1.130680932 +2.161290323 5.935483871 13.350561957 1.133505620 +2.161290323 6.225806452 13.666570669 1.136665707 +2.161290323 6.516129032 14.042124914 1.140421249 +2.161290323 6.806451613 14.524928709 1.145249287 +2.161290323 7.096774194 15.000000000 1.150000000 +2.161290323 7.387096774 15.000000000 1.150000000 +2.161290323 7.677419355 15.000000000 1.150000000 +2.161290323 7.967741935 15.000000000 1.150000000 +2.161290323 8.258064516 15.000000000 1.150000000 +2.161290323 8.548387097 15.000000000 1.150000000 +2.161290323 8.838709677 15.000000000 1.150000000 +2.161290323 9.129032258 15.000000000 1.150000000 +2.161290323 9.419354839 15.000000000 1.150000000 +2.161290323 9.709677419 15.000000000 1.150000000 +2.161290323 10.000000000 15.000000000 1.150000000 +2.451612903 1.000000000 10.000002957 1.100000030 +2.451612903 1.290322581 10.000002957 1.100000030 +2.451612903 1.580645161 10.000002957 1.100000030 +2.451612903 1.870967742 10.000002957 1.100000030 +2.451612903 2.161290323 10.000002957 1.100000030 +2.451612903 2.451612903 10.000002957 1.100000030 +2.451612903 2.741935484 10.000002957 1.100000030 +2.451612903 3.032258065 10.103612040 1.101036120 +2.451612903 3.322580645 10.708467388 1.107084674 +2.451612903 3.612903226 11.133945555 1.111339456 +2.451612903 3.903225806 11.479248807 1.114792488 +2.451612903 4.193548387 11.778370516 1.117783705 +2.451612903 4.483870968 12.050104922 1.120501049 +2.451612903 4.774193548 12.305762763 1.123057628 +2.451612903 5.064516129 12.555175445 1.125551754 +2.451612903 5.354838710 12.806659860 1.128066599 +2.451612903 5.645161290 13.068093230 1.130680932 +2.451612903 5.935483871 13.350561957 1.133505620 +2.451612903 6.225806452 13.666570669 1.136665707 +2.451612903 6.516129032 14.042124914 1.140421249 +2.451612903 6.806451613 14.524928709 1.145249287 +2.451612903 7.096774194 15.000000000 1.150000000 +2.451612903 7.387096774 15.000000000 1.150000000 +2.451612903 7.677419355 15.000000000 1.150000000 +2.451612903 7.967741935 15.000000000 1.150000000 +2.451612903 8.258064516 15.000000000 1.150000000 +2.451612903 8.548387097 15.000000000 1.150000000 +2.451612903 8.838709677 15.000000000 1.150000000 +2.451612903 9.129032258 15.000000000 1.150000000 +2.451612903 9.419354839 15.000000000 1.150000000 +2.451612903 9.709677419 15.000000000 1.150000000 +2.451612903 10.000000000 15.000000000 1.150000000 +2.741935484 1.000000000 10.000002957 1.100000030 +2.741935484 1.290322581 10.000002957 1.100000030 +2.741935484 1.580645161 10.000002957 1.100000030 +2.741935484 1.870967742 10.000002957 1.100000030 +2.741935484 2.161290323 10.000002957 1.100000030 +2.741935484 2.451612903 10.000002957 1.100000030 +2.741935484 2.741935484 10.000002957 1.100000030 +2.741935484 3.032258065 10.103612040 1.101036120 +2.741935484 3.322580645 10.708467388 1.107084674 +2.741935484 3.612903226 11.133945555 1.111339456 +2.741935484 3.903225806 11.479248807 1.114792488 +2.741935484 4.193548387 11.778370516 1.117783705 +2.741935484 4.483870968 12.050104922 1.120501049 +2.741935484 4.774193548 12.305762763 1.123057628 +2.741935484 5.064516129 12.555175445 1.125551754 +2.741935484 5.354838710 12.806659860 1.128066599 +2.741935484 5.645161290 13.068093230 1.130680932 +2.741935484 5.935483871 13.350561957 1.133505620 +2.741935484 6.225806452 13.666570669 1.136665707 +2.741935484 6.516129032 14.042124914 1.140421249 +2.741935484 6.806451613 14.524928709 1.145249287 +2.741935484 7.096774194 15.000000000 1.150000000 +2.741935484 7.387096774 15.000000000 1.150000000 +2.741935484 7.677419355 15.000000000 1.150000000 +2.741935484 7.967741935 15.000000000 1.150000000 +2.741935484 8.258064516 15.000000000 1.150000000 +2.741935484 8.548387097 15.000000000 1.150000000 +2.741935484 8.838709677 15.000000000 1.150000000 +2.741935484 9.129032258 15.000000000 1.150000000 +2.741935484 9.419354839 15.000000000 1.150000000 +2.741935484 9.709677419 15.000000000 1.150000000 +2.741935484 10.000000000 15.000000000 1.150000000 +3.032258065 1.000000000 10.103612040 1.101036120 +3.032258065 1.290322581 10.103612040 1.101036120 +3.032258065 1.580645161 10.103612040 1.101036120 +3.032258065 1.870967742 10.103612040 1.101036120 +3.032258065 2.161290323 10.103612040 1.101036120 +3.032258065 2.451612903 10.103612040 1.101036120 +3.032258065 2.741935484 10.103612040 1.101036120 +3.032258065 3.032258065 10.204358113 1.102043581 +3.032258065 3.322580645 10.796018218 1.107960182 +3.032258065 3.612903226 11.215358735 1.112153587 +3.032258065 3.903225806 11.557846462 1.115578465 +3.032258065 4.193548387 11.855790361 1.118557904 +3.032258065 4.483870968 12.127240434 1.121272404 +3.032258065 4.774193548 12.384052580 1.123840526 +3.032258065 5.064516129 12.634997421 1.126349974 +3.032258065 5.354838710 12.888585631 1.128885856 +3.032258065 5.645161290 13.153230669 1.131532307 +3.032258065 5.935483871 13.438880990 1.134388810 +3.032258065 6.225806452 13.759265462 1.137592655 +3.032258065 6.516129032 14.139344845 1.141393448 +3.032258065 6.806451613 14.626746497 1.146267465 +3.032258065 7.096774194 15.103574890 1.151035749 +3.032258065 7.387096774 15.103574890 1.151035749 +3.032258065 7.677419355 15.103574890 1.151035749 +3.032258065 7.967741935 15.103574890 1.151035749 +3.032258065 8.258064516 15.103574890 1.151035749 +3.032258065 8.548387097 15.103574890 1.151035749 +3.032258065 8.838709677 15.103574890 1.151035749 +3.032258065 9.129032258 15.103574890 1.151035749 +3.032258065 9.419354839 15.103574890 1.151035749 +3.032258065 9.709677419 15.103574890 1.151035749 +3.032258065 10.000000000 15.103574890 1.151035749 +3.322580645 1.000000000 10.708467388 1.107084674 +3.322580645 1.290322581 10.708467388 1.107084674 +3.322580645 1.580645161 10.708467388 1.107084674 +3.322580645 1.870967742 10.708467388 1.107084674 +3.322580645 2.161290323 10.708467388 1.107084674 +3.322580645 2.451612903 10.708467388 1.107084674 +3.322580645 2.741935484 10.708467388 1.107084674 +3.322580645 3.032258065 10.796018218 1.107960182 +3.322580645 3.322580645 11.322661747 1.113226617 +3.322580645 3.612903226 11.712913158 1.117129132 +3.322580645 3.903225806 12.043415217 1.120434152 +3.322580645 4.193548387 12.339709404 1.123397094 +3.322580645 4.483870968 12.615733153 1.126157332 +3.322580645 4.774193548 12.881223868 1.128812239 +3.322580645 5.064516129 13.144835022 1.131448350 +3.322580645 5.354838710 13.414082467 1.134140825 +3.322580645 5.645161290 13.696138923 1.136961389 +3.322580645 5.935483871 14.000777693 1.140007777 +3.322580645 6.225806452 14.342258539 1.143422585 +3.322580645 6.516129032 14.739964250 1.147399642 +3.322580645 6.806451613 15.239164015 1.152391640 +3.322580645 7.096774194 15.708449495 1.157084495 +3.322580645 7.387096774 15.708449495 1.157084495 +3.322580645 7.677419355 15.708449495 1.157084495 +3.322580645 7.967741935 15.708449495 1.157084495 +3.322580645 8.258064516 15.708449495 1.157084495 +3.322580645 8.548387097 15.708449495 1.157084495 +3.322580645 8.838709677 15.708449495 1.157084495 +3.322580645 9.129032258 15.708449495 1.157084495 +3.322580645 9.419354839 15.708449495 1.157084495 +3.322580645 9.709677419 15.708449495 1.157084495 +3.322580645 10.000000000 15.708449495 1.157084495 +3.612903226 1.000000000 11.133945555 1.111339456 +3.612903226 1.290322581 11.133945555 1.111339456 +3.612903226 1.580645161 11.133945555 1.111339456 +3.612903226 1.870967742 11.133945555 1.111339456 +3.612903226 2.161290323 11.133945555 1.111339456 +3.612903226 2.451612903 11.133945555 1.111339456 +3.612903226 2.741935484 11.133945555 1.111339456 +3.612903226 3.032258065 11.215358735 1.112153587 +3.612903226 3.322580645 11.712913158 1.117129132 +3.612903226 3.612903226 12.090486886 1.120904869 +3.612903226 3.903225806 12.417951094 1.124179511 +3.612903226 4.193548387 12.717020386 1.127170204 +3.612903226 4.483870968 12.999111631 1.129991116 +3.612903226 4.774193548 13.273780609 1.132737806 +3.612903226 5.064516129 13.547717972 1.135477180 +3.612903226 5.354838710 13.827512227 1.138275122 +3.612903226 5.645161290 14.120187657 1.141201877 +3.612903226 5.935483871 14.435371678 1.144353717 +3.612903226 6.225806452 14.784914127 1.147849141 +3.612903226 6.516129032 15.187004870 1.151870049 +3.612903226 6.806451613 15.681548005 1.156815480 +3.612903226 7.096774194 16.133823742 1.161338237 +3.612903226 7.387096774 16.133823742 1.161338237 +3.612903226 7.677419355 16.133823742 1.161338237 +3.612903226 7.967741935 16.133823742 1.161338237 +3.612903226 8.258064516 16.133823742 1.161338237 +3.612903226 8.548387097 16.133823742 1.161338237 +3.612903226 8.838709677 16.133823742 1.161338237 +3.612903226 9.129032258 16.133823742 1.161338237 +3.612903226 9.419354839 16.133823742 1.161338237 +3.612903226 9.709677419 16.133823742 1.161338237 +3.612903226 10.000000000 16.133823742 1.161338237 +3.903225806 1.000000000 11.479248807 1.114792488 +3.903225806 1.290322581 11.479248807 1.114792488 +3.903225806 1.580645161 11.479248807 1.114792488 +3.903225806 1.870967742 11.479248807 1.114792488 +3.903225806 2.161290323 11.479248807 1.114792488 +3.903225806 2.451612903 11.479248807 1.114792488 +3.903225806 2.741935484 11.479248807 1.114792488 +3.903225806 3.032258065 11.557846462 1.115578465 +3.903225806 3.322580645 12.043415217 1.120434152 +3.903225806 3.612903226 12.417951094 1.124179511 +3.903225806 3.903225806 12.746299057 1.127462991 +3.903225806 4.193548387 13.049696353 1.130496964 +3.903225806 4.483870968 13.337970486 1.133379705 +3.903225806 4.774193548 13.620159587 1.136201596 +3.903225806 5.064516129 13.901946604 1.139019466 +3.903225806 5.354838710 14.188883155 1.141888832 +3.903225806 5.645161290 14.489540684 1.144895407 +3.903225806 5.935483871 14.809822020 1.148098220 +3.903225806 6.225806452 15.160748839 1.151607488 +3.903225806 6.516129032 15.560871420 1.155608714 +3.903225806 6.806451613 16.043900181 1.160439002 +3.903225806 7.096774194 16.479227686 1.164792277 +3.903225806 7.387096774 16.479227686 1.164792277 +3.903225806 7.677419355 16.479227686 1.164792277 +3.903225806 7.967741935 16.479227686 1.164792277 +3.903225806 8.258064516 16.479227686 1.164792277 +3.903225806 8.548387097 16.479227686 1.164792277 +3.903225806 8.838709677 16.479227686 1.164792277 +3.903225806 9.129032258 16.479227686 1.164792277 +3.903225806 9.419354839 16.479227686 1.164792277 +3.903225806 9.709677419 16.479227686 1.164792277 +3.903225806 10.000000000 16.479227686 1.164792277 +4.193548387 1.000000000 11.778370516 1.117783705 +4.193548387 1.290322581 11.778370516 1.117783705 +4.193548387 1.580645161 11.778370516 1.117783705 +4.193548387 1.870967742 11.778370516 1.117783705 +4.193548387 2.161290323 11.778370516 1.117783705 +4.193548387 2.451612903 11.778370516 1.117783705 +4.193548387 2.741935484 11.778370516 1.117783705 +4.193548387 3.032258065 11.855790361 1.118557904 +4.193548387 3.322580645 12.339709404 1.123397094 +4.193548387 3.612903226 12.717020386 1.127170204 +4.193548387 3.903225806 13.049696353 1.130496964 +4.193548387 4.193548387 13.357895418 1.133578954 +4.193548387 4.483870968 13.652146644 1.136521466 +4.193548387 4.774193548 13.940357897 1.139403579 +4.193548387 5.064516129 14.228197117 1.142281971 +4.193548387 5.354838710 14.520452601 1.145204526 +4.193548387 5.645161290 14.824425958 1.148244260 +4.193548387 5.935483871 15.146110946 1.151461109 +4.193548387 6.225806452 15.495840162 1.154958402 +4.193548387 6.516129032 15.889898831 1.158898988 +4.193548387 6.806451613 16.360710958 1.163607110 +4.193548387 7.096774194 16.778452741 1.167784527 +4.193548387 7.387096774 16.778452741 1.167784527 +4.193548387 7.677419355 16.778452741 1.167784527 +4.193548387 7.967741935 16.778452741 1.167784527 +4.193548387 8.258064516 16.778452741 1.167784527 +4.193548387 8.548387097 16.778452741 1.167784527 +4.193548387 8.838709677 16.778452741 1.167784527 +4.193548387 9.129032258 16.778452741 1.167784527 +4.193548387 9.419354839 16.778452741 1.167784527 +4.193548387 9.709677419 16.778452741 1.167784527 +4.193548387 10.000000000 16.778452741 1.167784527 +4.483870968 1.000000000 12.050104922 1.120501049 +4.483870968 1.290322581 12.050104922 1.120501049 +4.483870968 1.580645161 12.050104922 1.120501049 +4.483870968 1.870967742 12.050104922 1.120501049 +4.483870968 2.161290323 12.050104922 1.120501049 +4.483870968 2.451612903 12.050104922 1.120501049 +4.483870968 2.741935484 12.050104922 1.120501049 +4.483870968 3.032258065 12.127240434 1.121272404 +4.483870968 3.322580645 12.615733153 1.126157332 +4.483870968 3.612903226 12.999111631 1.129991116 +4.483870968 3.903225806 13.337970486 1.133379705 +4.483870968 4.193548387 13.652146644 1.136521466 +4.483870968 4.483870968 13.951679758 1.139516798 +4.483870968 4.774193548 14.245365454 1.142453655 +4.483870968 5.064516129 14.537425993 1.145374260 +4.483870968 5.354838710 14.832538034 1.148325380 +4.483870968 5.645161290 15.137036426 1.151370364 +4.483870968 5.935483871 15.457098960 1.154570990 +4.483870968 6.225806452 15.803334671 1.158033347 +4.483870968 6.516129032 16.189645887 1.161896459 +4.483870968 6.806451613 16.646502949 1.166465029 +4.483870968 7.096774194 17.050023823 1.170500238 +4.483870968 7.387096774 17.050023823 1.170500238 +4.483870968 7.677419355 17.050023823 1.170500238 +4.483870968 7.967741935 17.050023823 1.170500238 +4.483870968 8.258064516 17.050023823 1.170500238 +4.483870968 8.548387097 17.050023823 1.170500238 +4.483870968 8.838709677 17.050023823 1.170500238 +4.483870968 9.129032258 17.050023823 1.170500238 +4.483870968 9.419354839 17.050023823 1.170500238 +4.483870968 9.709677419 17.050023823 1.170500238 +4.483870968 10.000000000 17.050023823 1.170500238 +4.774193548 1.000000000 12.305762763 1.123057628 +4.774193548 1.290322581 12.305762763 1.123057628 +4.774193548 1.580645161 12.305762763 1.123057628 +4.774193548 1.870967742 12.305762763 1.123057628 +4.774193548 2.161290323 12.305762763 1.123057628 +4.774193548 2.451612903 12.305762763 1.123057628 +4.774193548 2.741935484 12.305762763 1.123057628 +4.774193548 3.032258065 12.384052580 1.123840526 +4.774193548 3.322580645 12.881223868 1.128812239 +4.774193548 3.612903226 13.273780609 1.132737806 +4.774193548 3.903225806 13.620159587 1.136201596 +4.774193548 4.193548387 13.940357897 1.139403579 +4.774193548 4.483870968 14.245365454 1.142453655 +4.774193548 4.774193548 14.542253555 1.145422536 +4.774193548 5.064516129 14.836186297 1.148361863 +4.774193548 5.354838710 15.132216948 1.151322169 +4.774193548 5.645161290 15.435976637 1.154359766 +4.774193548 5.935483871 15.753650335 1.157536503 +4.774193548 6.225806452 16.094398574 1.160943986 +4.774193548 6.516129032 16.472016458 1.164720165 +4.774193548 6.806451613 16.915328759 1.169153288 +4.774193548 7.096774194 17.305719073 1.173057191 +4.774193548 7.387096774 17.305719073 1.173057191 +4.774193548 7.677419355 17.305719073 1.173057191 +4.774193548 7.967741935 17.305719073 1.173057191 +4.774193548 8.258064516 17.305719073 1.173057191 +4.774193548 8.548387097 17.305719073 1.173057191 +4.774193548 8.838709677 17.305719073 1.173057191 +4.774193548 9.129032258 17.305719073 1.173057191 +4.774193548 9.419354839 17.305719073 1.173057191 +4.774193548 9.709677419 17.305719073 1.173057191 +4.774193548 10.000000000 17.305719073 1.173057191 +5.064516129 1.000000000 12.555175445 1.125551754 +5.064516129 1.290322581 12.555175445 1.125551754 +5.064516129 1.580645161 12.555175445 1.125551754 +5.064516129 1.870967742 12.555175445 1.125551754 +5.064516129 2.161290323 12.555175445 1.125551754 +5.064516129 2.451612903 12.555175445 1.125551754 +5.064516129 2.741935484 12.555175445 1.125551754 +5.064516129 3.032258065 12.634997421 1.126349974 +5.064516129 3.322580645 13.144835022 1.131448350 +5.064516129 3.612903226 13.547717972 1.135477180 +5.064516129 3.903225806 13.901946604 1.139019466 +5.064516129 4.193548387 14.228197117 1.142281971 +5.064516129 4.483870968 14.537425993 1.145374260 +5.064516129 4.774193548 14.836186297 1.148361863 +5.064516129 5.064516129 15.130822202 1.151308222 +5.064516129 5.354838710 15.426134812 1.154261348 +5.064516129 5.645161290 15.727608429 1.157276084 +5.064516129 5.935483871 16.040918075 1.160409181 +5.064516129 6.225806452 16.374971626 1.163749716 +5.064516129 6.516129032 16.743479696 1.167434797 +5.064516129 6.806451613 17.175031887 1.171750319 +5.064516129 7.096774194 17.555546435 1.175555464 +5.064516129 7.387096774 17.555546435 1.175555464 +5.064516129 7.677419355 17.555546435 1.175555464 +5.064516129 7.967741935 17.555546435 1.175555464 +5.064516129 8.258064516 17.555546435 1.175555464 +5.064516129 8.548387097 17.555546435 1.175555464 +5.064516129 8.838709677 17.555546435 1.175555464 +5.064516129 9.129032258 17.555546435 1.175555464 +5.064516129 9.419354839 17.555546435 1.175555464 +5.064516129 9.709677419 17.555546435 1.175555464 +5.064516129 10.000000000 17.555546435 1.175555464 +5.354838710 1.000000000 12.806659860 1.128066599 +5.354838710 1.290322581 12.806659860 1.128066599 +5.354838710 1.580645161 12.806659860 1.128066599 +5.354838710 1.870967742 12.806659860 1.128066599 +5.354838710 2.161290323 12.806659860 1.128066599 +5.354838710 2.451612903 12.806659860 1.128066599 +5.354838710 2.741935484 12.806659860 1.128066599 +5.354838710 3.032258065 12.888585631 1.128885856 +5.354838710 3.322580645 13.414082467 1.134140825 +5.354838710 3.612903226 13.827512227 1.138275122 +5.354838710 3.903225806 14.188883155 1.141888832 +5.354838710 4.193548387 14.520452601 1.145204526 +5.354838710 4.483870968 14.832538034 1.148325380 +5.354838710 4.774193548 15.132216948 1.151322169 +5.354838710 5.064516129 15.426134812 1.154261348 +5.354838710 5.354838710 15.719361905 1.157193619 +5.354838710 5.645161290 16.017791161 1.160177912 +5.354838710 5.935483871 16.325903819 1.163259038 +5.354838710 6.225806452 16.653358486 1.166533585 +5.354838710 6.516129032 17.013348713 1.170133487 +5.354838710 6.806451613 17.434097089 1.174340971 +5.354838710 7.096774194 17.806398651 1.178063987 +5.354838710 7.387096774 17.806398651 1.178063987 +5.354838710 7.677419355 17.806398651 1.178063987 +5.354838710 7.967741935 17.806398651 1.178063987 +5.354838710 8.258064516 17.806398651 1.178063987 +5.354838710 8.548387097 17.806398651 1.178063987 +5.354838710 8.838709677 17.806398651 1.178063987 +5.354838710 9.129032258 17.806398651 1.178063987 +5.354838710 9.419354839 17.806398651 1.178063987 +5.354838710 9.709677419 17.806398651 1.178063987 +5.354838710 10.000000000 17.806398651 1.178063987 +5.645161290 1.000000000 13.068093230 1.130680932 +5.645161290 1.290322581 13.068093230 1.130680932 +5.645161290 1.580645161 13.068093230 1.130680932 +5.645161290 1.870967742 13.068093230 1.130680932 +5.645161290 2.161290323 13.068093230 1.130680932 +5.645161290 2.451612903 13.068093230 1.130680932 +5.645161290 2.741935484 13.068093230 1.130680932 +5.645161290 3.032258065 13.153230669 1.131532307 +5.645161290 3.322580645 13.696138923 1.136961389 +5.645161290 3.612903226 14.120187657 1.141201877 +5.645161290 3.903225806 14.489540684 1.144895407 +5.645161290 4.193548387 14.824425958 1.148244260 +5.645161290 4.483870968 15.137036426 1.151370364 +5.645161290 4.774193548 15.435976637 1.154359766 +5.645161290 5.064516129 15.727608429 1.157276084 +5.645161290 5.354838710 16.017791161 1.160177912 +5.645161290 5.645161290 16.311598605 1.163115986 +5.645161290 5.935483871 16.613732570 1.166137326 +5.645161290 6.225806452 16.933994986 1.169339950 +5.645161290 6.516129032 17.286819066 1.172868191 +5.645161290 6.806451613 17.700020869 1.177000209 +5.645161290 7.096774194 18.068098179 1.180680982 +5.645161290 7.387096774 18.068098179 1.180680982 +5.645161290 7.677419355 18.068098179 1.180680982 +5.645161290 7.967741935 18.068098179 1.180680982 +5.645161290 8.258064516 18.068098179 1.180680982 +5.645161290 8.548387097 18.068098179 1.180680982 +5.645161290 8.838709677 18.068098179 1.180680982 +5.645161290 9.129032258 18.068098179 1.180680982 +5.645161290 9.419354839 18.068098179 1.180680982 +5.645161290 9.709677419 18.068098179 1.180680982 +5.645161290 10.000000000 18.068098179 1.180680982 +5.935483871 1.000000000 13.350561957 1.133505620 +5.935483871 1.290322581 13.350561957 1.133505620 +5.935483871 1.580645161 13.350561957 1.133505620 +5.935483871 1.870967742 13.350561957 1.133505620 +5.935483871 2.161290323 13.350561957 1.133505620 +5.935483871 2.451612903 13.350561957 1.133505620 +5.935483871 2.741935484 13.350561957 1.133505620 +5.935483871 3.032258065 13.438880990 1.134388810 +5.935483871 3.322580645 14.000777693 1.140007777 +5.935483871 3.612903226 14.435371678 1.144353717 +5.935483871 3.903225806 14.809822020 1.148098220 +5.935483871 4.193548387 15.146110946 1.151461109 +5.935483871 4.483870968 15.457098960 1.154570990 +5.935483871 4.774193548 15.753650335 1.157536503 +5.935483871 5.064516129 16.040918075 1.160409181 +5.935483871 5.354838710 16.325903819 1.163259038 +5.935483871 5.645161290 16.613732570 1.166137326 +5.935483871 5.935483871 16.911019483 1.169110195 +5.935483871 6.225806452 17.225563024 1.172255630 +5.935483871 6.516129032 17.572635415 1.175726354 +5.935483871 6.806451613 17.982106473 1.179821065 +5.935483871 7.096774194 18.349962605 1.183499626 +5.935483871 7.387096774 18.349962605 1.183499626 +5.935483871 7.677419355 18.349962605 1.183499626 +5.935483871 7.967741935 18.349962605 1.183499626 +5.935483871 8.258064516 18.349962605 1.183499626 +5.935483871 8.548387097 18.349962605 1.183499626 +5.935483871 8.838709677 18.349962605 1.183499626 +5.935483871 9.129032258 18.349962605 1.183499626 +5.935483871 9.419354839 18.349962605 1.183499626 +5.935483871 9.709677419 18.349962605 1.183499626 +5.935483871 10.000000000 18.349962605 1.183499626 +6.225806452 1.000000000 13.666570669 1.136665707 +6.225806452 1.290322581 13.666570669 1.136665707 +6.225806452 1.580645161 13.666570669 1.136665707 +6.225806452 1.870967742 13.666570669 1.136665707 +6.225806452 2.161290323 13.666570669 1.136665707 +6.225806452 2.451612903 13.666570669 1.136665707 +6.225806452 2.741935484 13.666570669 1.136665707 +6.225806452 3.032258065 13.759265462 1.137592655 +6.225806452 3.322580645 14.342258539 1.143422585 +6.225806452 3.612903226 14.784914127 1.147849141 +6.225806452 3.903225806 15.160748839 1.151607488 +6.225806452 4.193548387 15.495840162 1.154958402 +6.225806452 4.483870968 15.803334671 1.158033347 +6.225806452 4.774193548 16.094398574 1.160943986 +6.225806452 5.064516129 16.374971626 1.163749716 +6.225806452 5.354838710 16.653358486 1.166533585 +6.225806452 5.645161290 16.933994986 1.169339950 +6.225806452 5.935483871 17.225563024 1.172255630 +6.225806452 6.225806452 17.536694601 1.175366946 +6.225806452 6.516129032 17.882140340 1.178821403 +6.225806452 6.806451613 18.292111531 1.182921115 +6.225806452 7.096774194 18.667017714 1.186670177 +6.225806452 7.387096774 18.667017714 1.186670177 +6.225806452 7.677419355 18.667017714 1.186670177 +6.225806452 7.967741935 18.667017714 1.186670177 +6.225806452 8.258064516 18.667017714 1.186670177 +6.225806452 8.548387097 18.667017714 1.186670177 +6.225806452 8.838709677 18.667017714 1.186670177 +6.225806452 9.129032258 18.667017714 1.186670177 +6.225806452 9.419354839 18.667017714 1.186670177 +6.225806452 9.709677419 18.667017714 1.186670177 +6.225806452 10.000000000 18.667017714 1.186670177 +6.516129032 1.000000000 14.042124914 1.140421249 +6.516129032 1.290322581 14.042124914 1.140421249 +6.516129032 1.580645161 14.042124914 1.140421249 +6.516129032 1.870967742 14.042124914 1.140421249 +6.516129032 2.161290323 14.042124914 1.140421249 +6.516129032 2.451612903 14.042124914 1.140421249 +6.516129032 2.741935484 14.042124914 1.140421249 +6.516129032 3.032258065 14.139344845 1.141393448 +6.516129032 3.322580645 14.739964250 1.147399642 +6.516129032 3.612903226 15.187004870 1.151870049 +6.516129032 3.903225806 15.560871420 1.155608714 +6.516129032 4.193548387 15.889898831 1.158898988 +6.516129032 4.483870968 16.189645887 1.161896459 +6.516129032 4.774193548 16.472016458 1.164720165 +6.516129032 5.064516129 16.743479696 1.167434797 +6.516129032 5.354838710 17.013348713 1.170133487 +6.516129032 5.645161290 17.286819066 1.172868191 +6.516129032 5.935483871 17.572635415 1.175726354 +6.516129032 6.225806452 17.882140340 1.178821403 +6.516129032 6.516129032 18.229995875 1.182299959 +6.516129032 6.806451613 18.651088969 1.186510890 +6.516129032 7.096774194 19.041899081 1.190418991 +6.516129032 7.387096774 19.041899081 1.190418991 +6.516129032 7.677419355 19.041899081 1.190418991 +6.516129032 7.967741935 19.041899081 1.190418991 +6.516129032 8.258064516 19.041899081 1.190418991 +6.516129032 8.548387097 19.041899081 1.190418991 +6.516129032 8.838709677 19.041899081 1.190418991 +6.516129032 9.129032258 19.041899081 1.190418991 +6.516129032 9.419354839 19.041899081 1.190418991 +6.516129032 9.709677419 19.041899081 1.190418991 +6.516129032 10.000000000 19.041899081 1.190418991 +6.806451613 1.000000000 14.524928709 1.145249287 +6.806451613 1.290322581 14.524928709 1.145249287 +6.806451613 1.580645161 14.524928709 1.145249287 +6.806451613 1.870967742 14.524928709 1.145249287 +6.806451613 2.161290323 14.524928709 1.145249287 +6.806451613 2.451612903 14.524928709 1.145249287 +6.806451613 2.741935484 14.524928709 1.145249287 +6.806451613 3.032258065 14.626746497 1.146267465 +6.806451613 3.322580645 15.239164015 1.152391640 +6.806451613 3.612903226 15.681548005 1.156815480 +6.806451613 3.903225806 16.043900181 1.160439002 +6.806451613 4.193548387 16.360710958 1.163607110 +6.806451613 4.483870968 16.646502949 1.166465029 +6.806451613 4.774193548 16.915328759 1.169153288 +6.806451613 5.064516129 17.175031887 1.171750319 +6.806451613 5.354838710 17.434097089 1.174340971 +6.806451613 5.645161290 17.700020869 1.177000209 +6.806451613 5.935483871 17.982106473 1.179821065 +6.806451613 6.225806452 18.292111531 1.182921115 +6.806451613 6.516129032 18.651088969 1.186510890 +6.806451613 6.806451613 19.098880252 1.190988803 +6.806451613 7.096774194 19.524964154 1.195249642 +6.806451613 7.387096774 19.524964154 1.195249642 +6.806451613 7.677419355 19.524964154 1.195249642 +6.806451613 7.967741935 19.524964154 1.195249642 +6.806451613 8.258064516 19.524964154 1.195249642 +6.806451613 8.548387097 19.524964154 1.195249642 +6.806451613 8.838709677 19.524964154 1.195249642 +6.806451613 9.129032258 19.524964154 1.195249642 +6.806451613 9.419354839 19.524964154 1.195249642 +6.806451613 9.709677419 19.524964154 1.195249642 +6.806451613 10.000000000 19.524964154 1.195249642 +7.096774194 1.000000000 15.000000000 1.150000000 +7.096774194 1.290322581 15.000000000 1.150000000 +7.096774194 1.580645161 15.000000000 1.150000000 +7.096774194 1.870967742 15.000000000 1.150000000 +7.096774194 2.161290323 15.000000000 1.150000000 +7.096774194 2.451612903 15.000000000 1.150000000 +7.096774194 2.741935484 15.000000000 1.150000000 +7.096774194 3.032258065 15.103574890 1.151035749 +7.096774194 3.322580645 15.708449495 1.157084495 +7.096774194 3.612903226 16.133823742 1.161338237 +7.096774194 3.903225806 16.479227686 1.164792277 +7.096774194 4.193548387 16.778452741 1.167784527 +7.096774194 4.483870968 17.050023823 1.170500238 +7.096774194 4.774193548 17.305719073 1.173057191 +7.096774194 5.064516129 17.555546435 1.175555464 +7.096774194 5.354838710 17.806398651 1.178063987 +7.096774194 5.645161290 18.068098179 1.180680982 +7.096774194 5.935483871 18.349962605 1.183499626 +7.096774194 6.225806452 18.667017714 1.186670177 +7.096774194 6.516129032 19.041899081 1.190418991 +7.096774194 6.806451613 19.524964154 1.195249642 +7.096774194 7.096774194 19.999997043 1.199999970 +7.096774194 7.387096774 19.999997043 1.199999970 +7.096774194 7.677419355 19.999997043 1.199999970 +7.096774194 7.967741935 19.999997043 1.199999970 +7.096774194 8.258064516 19.999997043 1.199999970 +7.096774194 8.548387097 19.999997043 1.199999970 +7.096774194 8.838709677 19.999997043 1.199999970 +7.096774194 9.129032258 19.999997043 1.199999970 +7.096774194 9.419354839 19.999997043 1.199999970 +7.096774194 9.709677419 19.999997043 1.199999970 +7.096774194 10.000000000 19.999997043 1.199999970 +7.387096774 1.000000000 15.000000000 1.150000000 +7.387096774 1.290322581 15.000000000 1.150000000 +7.387096774 1.580645161 15.000000000 1.150000000 +7.387096774 1.870967742 15.000000000 1.150000000 +7.387096774 2.161290323 15.000000000 1.150000000 +7.387096774 2.451612903 15.000000000 1.150000000 +7.387096774 2.741935484 15.000000000 1.150000000 +7.387096774 3.032258065 15.103574890 1.151035749 +7.387096774 3.322580645 15.708449495 1.157084495 +7.387096774 3.612903226 16.133823742 1.161338237 +7.387096774 3.903225806 16.479227686 1.164792277 +7.387096774 4.193548387 16.778452741 1.167784527 +7.387096774 4.483870968 17.050023823 1.170500238 +7.387096774 4.774193548 17.305719073 1.173057191 +7.387096774 5.064516129 17.555546435 1.175555464 +7.387096774 5.354838710 17.806398651 1.178063987 +7.387096774 5.645161290 18.068098179 1.180680982 +7.387096774 5.935483871 18.349962605 1.183499626 +7.387096774 6.225806452 18.667017714 1.186670177 +7.387096774 6.516129032 19.041899081 1.190418991 +7.387096774 6.806451613 19.524964154 1.195249642 +7.387096774 7.096774194 19.999997043 1.199999970 +7.387096774 7.387096774 19.999997043 1.199999970 +7.387096774 7.677419355 19.999997043 1.199999970 +7.387096774 7.967741935 19.999997043 1.199999970 +7.387096774 8.258064516 19.999997043 1.199999970 +7.387096774 8.548387097 19.999997043 1.199999970 +7.387096774 8.838709677 19.999997043 1.199999970 +7.387096774 9.129032258 19.999997043 1.199999970 +7.387096774 9.419354839 19.999997043 1.199999970 +7.387096774 9.709677419 19.999997043 1.199999970 +7.387096774 10.000000000 19.999997043 1.199999970 +7.677419355 1.000000000 15.000000000 1.150000000 +7.677419355 1.290322581 15.000000000 1.150000000 +7.677419355 1.580645161 15.000000000 1.150000000 +7.677419355 1.870967742 15.000000000 1.150000000 +7.677419355 2.161290323 15.000000000 1.150000000 +7.677419355 2.451612903 15.000000000 1.150000000 +7.677419355 2.741935484 15.000000000 1.150000000 +7.677419355 3.032258065 15.103574890 1.151035749 +7.677419355 3.322580645 15.708449495 1.157084495 +7.677419355 3.612903226 16.133823742 1.161338237 +7.677419355 3.903225806 16.479227686 1.164792277 +7.677419355 4.193548387 16.778452741 1.167784527 +7.677419355 4.483870968 17.050023823 1.170500238 +7.677419355 4.774193548 17.305719073 1.173057191 +7.677419355 5.064516129 17.555546435 1.175555464 +7.677419355 5.354838710 17.806398651 1.178063987 +7.677419355 5.645161290 18.068098179 1.180680982 +7.677419355 5.935483871 18.349962605 1.183499626 +7.677419355 6.225806452 18.667017714 1.186670177 +7.677419355 6.516129032 19.041899081 1.190418991 +7.677419355 6.806451613 19.524964154 1.195249642 +7.677419355 7.096774194 19.999997043 1.199999970 +7.677419355 7.387096774 19.999997043 1.199999970 +7.677419355 7.677419355 19.999997043 1.199999970 +7.677419355 7.967741935 19.999997043 1.199999970 +7.677419355 8.258064516 19.999997043 1.199999970 +7.677419355 8.548387097 19.999997043 1.199999970 +7.677419355 8.838709677 19.999997043 1.199999970 +7.677419355 9.129032258 19.999997043 1.199999970 +7.677419355 9.419354839 19.999997043 1.199999970 +7.677419355 9.709677419 19.999997043 1.199999970 +7.677419355 10.000000000 19.999997043 1.199999970 +7.967741935 1.000000000 15.000000000 1.150000000 +7.967741935 1.290322581 15.000000000 1.150000000 +7.967741935 1.580645161 15.000000000 1.150000000 +7.967741935 1.870967742 15.000000000 1.150000000 +7.967741935 2.161290323 15.000000000 1.150000000 +7.967741935 2.451612903 15.000000000 1.150000000 +7.967741935 2.741935484 15.000000000 1.150000000 +7.967741935 3.032258065 15.103574890 1.151035749 +7.967741935 3.322580645 15.708449495 1.157084495 +7.967741935 3.612903226 16.133823742 1.161338237 +7.967741935 3.903225806 16.479227686 1.164792277 +7.967741935 4.193548387 16.778452741 1.167784527 +7.967741935 4.483870968 17.050023823 1.170500238 +7.967741935 4.774193548 17.305719073 1.173057191 +7.967741935 5.064516129 17.555546435 1.175555464 +7.967741935 5.354838710 17.806398651 1.178063987 +7.967741935 5.645161290 18.068098179 1.180680982 +7.967741935 5.935483871 18.349962605 1.183499626 +7.967741935 6.225806452 18.667017714 1.186670177 +7.967741935 6.516129032 19.041899081 1.190418991 +7.967741935 6.806451613 19.524964154 1.195249642 +7.967741935 7.096774194 19.999997043 1.199999970 +7.967741935 7.387096774 19.999997043 1.199999970 +7.967741935 7.677419355 19.999997043 1.199999970 +7.967741935 7.967741935 19.999997043 1.199999970 +7.967741935 8.258064516 19.999997043 1.199999970 +7.967741935 8.548387097 19.999997043 1.199999970 +7.967741935 8.838709677 19.999997043 1.199999970 +7.967741935 9.129032258 19.999997043 1.199999970 +7.967741935 9.419354839 19.999997043 1.199999970 +7.967741935 9.709677419 19.999997043 1.199999970 +7.967741935 10.000000000 19.999997043 1.199999970 +8.258064516 1.000000000 15.000000000 1.150000000 +8.258064516 1.290322581 15.000000000 1.150000000 +8.258064516 1.580645161 15.000000000 1.150000000 +8.258064516 1.870967742 15.000000000 1.150000000 +8.258064516 2.161290323 15.000000000 1.150000000 +8.258064516 2.451612903 15.000000000 1.150000000 +8.258064516 2.741935484 15.000000000 1.150000000 +8.258064516 3.032258065 15.103574890 1.151035749 +8.258064516 3.322580645 15.708449495 1.157084495 +8.258064516 3.612903226 16.133823742 1.161338237 +8.258064516 3.903225806 16.479227686 1.164792277 +8.258064516 4.193548387 16.778452741 1.167784527 +8.258064516 4.483870968 17.050023823 1.170500238 +8.258064516 4.774193548 17.305719073 1.173057191 +8.258064516 5.064516129 17.555546435 1.175555464 +8.258064516 5.354838710 17.806398651 1.178063987 +8.258064516 5.645161290 18.068098179 1.180680982 +8.258064516 5.935483871 18.349962605 1.183499626 +8.258064516 6.225806452 18.667017714 1.186670177 +8.258064516 6.516129032 19.041899081 1.190418991 +8.258064516 6.806451613 19.524964154 1.195249642 +8.258064516 7.096774194 19.999997043 1.199999970 +8.258064516 7.387096774 19.999997043 1.199999970 +8.258064516 7.677419355 19.999997043 1.199999970 +8.258064516 7.967741935 19.999997043 1.199999970 +8.258064516 8.258064516 19.999997043 1.199999970 +8.258064516 8.548387097 19.999997043 1.199999970 +8.258064516 8.838709677 19.999997043 1.199999970 +8.258064516 9.129032258 19.999997043 1.199999970 +8.258064516 9.419354839 19.999997043 1.199999970 +8.258064516 9.709677419 19.999997043 1.199999970 +8.258064516 10.000000000 19.999997043 1.199999970 +8.548387097 1.000000000 15.000000000 1.150000000 +8.548387097 1.290322581 15.000000000 1.150000000 +8.548387097 1.580645161 15.000000000 1.150000000 +8.548387097 1.870967742 15.000000000 1.150000000 +8.548387097 2.161290323 15.000000000 1.150000000 +8.548387097 2.451612903 15.000000000 1.150000000 +8.548387097 2.741935484 15.000000000 1.150000000 +8.548387097 3.032258065 15.103574890 1.151035749 +8.548387097 3.322580645 15.708449495 1.157084495 +8.548387097 3.612903226 16.133823742 1.161338237 +8.548387097 3.903225806 16.479227686 1.164792277 +8.548387097 4.193548387 16.778452741 1.167784527 +8.548387097 4.483870968 17.050023823 1.170500238 +8.548387097 4.774193548 17.305719073 1.173057191 +8.548387097 5.064516129 17.555546435 1.175555464 +8.548387097 5.354838710 17.806398651 1.178063987 +8.548387097 5.645161290 18.068098179 1.180680982 +8.548387097 5.935483871 18.349962605 1.183499626 +8.548387097 6.225806452 18.667017714 1.186670177 +8.548387097 6.516129032 19.041899081 1.190418991 +8.548387097 6.806451613 19.524964154 1.195249642 +8.548387097 7.096774194 19.999997043 1.199999970 +8.548387097 7.387096774 19.999997043 1.199999970 +8.548387097 7.677419355 19.999997043 1.199999970 +8.548387097 7.967741935 19.999997043 1.199999970 +8.548387097 8.258064516 19.999997043 1.199999970 +8.548387097 8.548387097 19.999997043 1.199999970 +8.548387097 8.838709677 19.999997043 1.199999970 +8.548387097 9.129032258 19.999997043 1.199999970 +8.548387097 9.419354839 19.999997043 1.199999970 +8.548387097 9.709677419 19.999997043 1.199999970 +8.548387097 10.000000000 19.999997043 1.199999970 +8.838709677 1.000000000 15.000000000 1.150000000 +8.838709677 1.290322581 15.000000000 1.150000000 +8.838709677 1.580645161 15.000000000 1.150000000 +8.838709677 1.870967742 15.000000000 1.150000000 +8.838709677 2.161290323 15.000000000 1.150000000 +8.838709677 2.451612903 15.000000000 1.150000000 +8.838709677 2.741935484 15.000000000 1.150000000 +8.838709677 3.032258065 15.103574890 1.151035749 +8.838709677 3.322580645 15.708449495 1.157084495 +8.838709677 3.612903226 16.133823742 1.161338237 +8.838709677 3.903225806 16.479227686 1.164792277 +8.838709677 4.193548387 16.778452741 1.167784527 +8.838709677 4.483870968 17.050023823 1.170500238 +8.838709677 4.774193548 17.305719073 1.173057191 +8.838709677 5.064516129 17.555546435 1.175555464 +8.838709677 5.354838710 17.806398651 1.178063987 +8.838709677 5.645161290 18.068098179 1.180680982 +8.838709677 5.935483871 18.349962605 1.183499626 +8.838709677 6.225806452 18.667017714 1.186670177 +8.838709677 6.516129032 19.041899081 1.190418991 +8.838709677 6.806451613 19.524964154 1.195249642 +8.838709677 7.096774194 19.999997043 1.199999970 +8.838709677 7.387096774 19.999997043 1.199999970 +8.838709677 7.677419355 19.999997043 1.199999970 +8.838709677 7.967741935 19.999997043 1.199999970 +8.838709677 8.258064516 19.999997043 1.199999970 +8.838709677 8.548387097 19.999997043 1.199999970 +8.838709677 8.838709677 19.999997043 1.199999970 +8.838709677 9.129032258 19.999997043 1.199999970 +8.838709677 9.419354839 19.999997043 1.199999970 +8.838709677 9.709677419 19.999997043 1.199999970 +8.838709677 10.000000000 19.999997043 1.199999970 +9.129032258 1.000000000 15.000000000 1.150000000 +9.129032258 1.290322581 15.000000000 1.150000000 +9.129032258 1.580645161 15.000000000 1.150000000 +9.129032258 1.870967742 15.000000000 1.150000000 +9.129032258 2.161290323 15.000000000 1.150000000 +9.129032258 2.451612903 15.000000000 1.150000000 +9.129032258 2.741935484 15.000000000 1.150000000 +9.129032258 3.032258065 15.103574890 1.151035749 +9.129032258 3.322580645 15.708449495 1.157084495 +9.129032258 3.612903226 16.133823742 1.161338237 +9.129032258 3.903225806 16.479227686 1.164792277 +9.129032258 4.193548387 16.778452741 1.167784527 +9.129032258 4.483870968 17.050023823 1.170500238 +9.129032258 4.774193548 17.305719073 1.173057191 +9.129032258 5.064516129 17.555546435 1.175555464 +9.129032258 5.354838710 17.806398651 1.178063987 +9.129032258 5.645161290 18.068098179 1.180680982 +9.129032258 5.935483871 18.349962605 1.183499626 +9.129032258 6.225806452 18.667017714 1.186670177 +9.129032258 6.516129032 19.041899081 1.190418991 +9.129032258 6.806451613 19.524964154 1.195249642 +9.129032258 7.096774194 19.999997043 1.199999970 +9.129032258 7.387096774 19.999997043 1.199999970 +9.129032258 7.677419355 19.999997043 1.199999970 +9.129032258 7.967741935 19.999997043 1.199999970 +9.129032258 8.258064516 19.999997043 1.199999970 +9.129032258 8.548387097 19.999997043 1.199999970 +9.129032258 8.838709677 19.999997043 1.199999970 +9.129032258 9.129032258 19.999997043 1.199999970 +9.129032258 9.419354839 19.999997043 1.199999970 +9.129032258 9.709677419 19.999997043 1.199999970 +9.129032258 10.000000000 19.999997043 1.199999970 +9.419354839 1.000000000 15.000000000 1.150000000 +9.419354839 1.290322581 15.000000000 1.150000000 +9.419354839 1.580645161 15.000000000 1.150000000 +9.419354839 1.870967742 15.000000000 1.150000000 +9.419354839 2.161290323 15.000000000 1.150000000 +9.419354839 2.451612903 15.000000000 1.150000000 +9.419354839 2.741935484 15.000000000 1.150000000 +9.419354839 3.032258065 15.103574890 1.151035749 +9.419354839 3.322580645 15.708449495 1.157084495 +9.419354839 3.612903226 16.133823742 1.161338237 +9.419354839 3.903225806 16.479227686 1.164792277 +9.419354839 4.193548387 16.778452741 1.167784527 +9.419354839 4.483870968 17.050023823 1.170500238 +9.419354839 4.774193548 17.305719073 1.173057191 +9.419354839 5.064516129 17.555546435 1.175555464 +9.419354839 5.354838710 17.806398651 1.178063987 +9.419354839 5.645161290 18.068098179 1.180680982 +9.419354839 5.935483871 18.349962605 1.183499626 +9.419354839 6.225806452 18.667017714 1.186670177 +9.419354839 6.516129032 19.041899081 1.190418991 +9.419354839 6.806451613 19.524964154 1.195249642 +9.419354839 7.096774194 19.999997043 1.199999970 +9.419354839 7.387096774 19.999997043 1.199999970 +9.419354839 7.677419355 19.999997043 1.199999970 +9.419354839 7.967741935 19.999997043 1.199999970 +9.419354839 8.258064516 19.999997043 1.199999970 +9.419354839 8.548387097 19.999997043 1.199999970 +9.419354839 8.838709677 19.999997043 1.199999970 +9.419354839 9.129032258 19.999997043 1.199999970 +9.419354839 9.419354839 19.999997043 1.199999970 +9.419354839 9.709677419 19.999997043 1.199999970 +9.419354839 10.000000000 19.999997043 1.199999970 +9.709677419 1.000000000 15.000000000 1.150000000 +9.709677419 1.290322581 15.000000000 1.150000000 +9.709677419 1.580645161 15.000000000 1.150000000 +9.709677419 1.870967742 15.000000000 1.150000000 +9.709677419 2.161290323 15.000000000 1.150000000 +9.709677419 2.451612903 15.000000000 1.150000000 +9.709677419 2.741935484 15.000000000 1.150000000 +9.709677419 3.032258065 15.103574890 1.151035749 +9.709677419 3.322580645 15.708449495 1.157084495 +9.709677419 3.612903226 16.133823742 1.161338237 +9.709677419 3.903225806 16.479227686 1.164792277 +9.709677419 4.193548387 16.778452741 1.167784527 +9.709677419 4.483870968 17.050023823 1.170500238 +9.709677419 4.774193548 17.305719073 1.173057191 +9.709677419 5.064516129 17.555546435 1.175555464 +9.709677419 5.354838710 17.806398651 1.178063987 +9.709677419 5.645161290 18.068098179 1.180680982 +9.709677419 5.935483871 18.349962605 1.183499626 +9.709677419 6.225806452 18.667017714 1.186670177 +9.709677419 6.516129032 19.041899081 1.190418991 +9.709677419 6.806451613 19.524964154 1.195249642 +9.709677419 7.096774194 19.999997043 1.199999970 +9.709677419 7.387096774 19.999997043 1.199999970 +9.709677419 7.677419355 19.999997043 1.199999970 +9.709677419 7.967741935 19.999997043 1.199999970 +9.709677419 8.258064516 19.999997043 1.199999970 +9.709677419 8.548387097 19.999997043 1.199999970 +9.709677419 8.838709677 19.999997043 1.199999970 +9.709677419 9.129032258 19.999997043 1.199999970 +9.709677419 9.419354839 19.999997043 1.199999970 +9.709677419 9.709677419 19.999997043 1.199999970 +9.709677419 10.000000000 19.999997043 1.199999970 +10.000000000 1.000000000 15.000000000 1.150000000 +10.000000000 1.290322581 15.000000000 1.150000000 +10.000000000 1.580645161 15.000000000 1.150000000 +10.000000000 1.870967742 15.000000000 1.150000000 +10.000000000 2.161290323 15.000000000 1.150000000 +10.000000000 2.451612903 15.000000000 1.150000000 +10.000000000 2.741935484 15.000000000 1.150000000 +10.000000000 3.032258065 15.103574890 1.151035749 +10.000000000 3.322580645 15.708449495 1.157084495 +10.000000000 3.612903226 16.133823742 1.161338237 +10.000000000 3.903225806 16.479227686 1.164792277 +10.000000000 4.193548387 16.778452741 1.167784527 +10.000000000 4.483870968 17.050023823 1.170500238 +10.000000000 4.774193548 17.305719073 1.173057191 +10.000000000 5.064516129 17.555546435 1.175555464 +10.000000000 5.354838710 17.806398651 1.178063987 +10.000000000 5.645161290 18.068098179 1.180680982 +10.000000000 5.935483871 18.349962605 1.183499626 +10.000000000 6.225806452 18.667017714 1.186670177 +10.000000000 6.516129032 19.041899081 1.190418991 +10.000000000 6.806451613 19.524964154 1.195249642 +10.000000000 7.096774194 19.999997043 1.199999970 +10.000000000 7.387096774 19.999997043 1.199999970 +10.000000000 7.677419355 19.999997043 1.199999970 +10.000000000 7.967741935 19.999997043 1.199999970 +10.000000000 8.258064516 19.999997043 1.199999970 +10.000000000 8.548387097 19.999997043 1.199999970 +10.000000000 8.838709677 19.999997043 1.199999970 +10.000000000 9.129032258 19.999997043 1.199999970 +10.000000000 9.419354839 19.999997043 1.199999970 +10.000000000 9.709677419 19.999997043 1.199999970 +10.000000000 10.000000000 19.999997043 1.199999970 diff --git a/examples/mamdani/octave/mamdani_tip_calculator.fll b/examples/mamdani/octave/mamdani_tip_calculator.fll index b6c1920..516d870 100644 --- a/examples/mamdani/octave/mamdani_tip_calculator.fll +++ b/examples/mamdani/octave/mamdani_tip_calculator.fll @@ -1,33 +1,35 @@ -Engine: Mamdani-Tip-Calculator +Engine: mamdani_tip_calculator InputVariable: FoodQuality enabled: true range: 1.000 10.000 + lock-range: false term: Bad Trapezoid 0.000 1.000 3.000 7.000 term: Good Trapezoid 3.000 7.000 10.000 11.000 InputVariable: Service enabled: true range: 1.000 10.000 + lock-range: false term: Bad Trapezoid 0.000 1.000 3.000 7.000 term: Good Trapezoid 3.000 7.000 10.000 11.000 OutputVariable: Tip enabled: true range: 0.000 30.000 - accumulation: AlgebraicSum + lock-range: false + aggregation: AlgebraicSum defuzzifier: Centroid 200 default: nan lock-previous: false - lock-range: false term: AboutTenPercent Gaussian 10.000 2.000 term: AboutFifteenPercent Gaussian 15.000 2.000 term: AboutTwentyPercent Gaussian 20.000 2.000 OutputVariable: CheckPlusTip enabled: true range: 1.000 1.300 - accumulation: AlgebraicSum + lock-range: false + aggregation: AlgebraicSum defuzzifier: Centroid 200 default: nan lock-previous: false - lock-range: false term: PlusAboutTenPercent Gaussian 1.100 0.020 term: PlusAboutFifteenPercent Gaussian 1.150 0.020 term: PlusAboutTwentyPercent Gaussian 1.200 0.020 @@ -35,7 +37,8 @@ RuleBlock: enabled: true conjunction: AlgebraicProduct disjunction: Maximum - activation: Minimum + implication: Minimum + activation: General rule: if FoodQuality is Bad and Service is Bad then Tip is AboutTenPercent and CheckPlusTip is PlusAboutTenPercent rule: if FoodQuality is Bad and Service is Good then Tip is AboutFifteenPercent and CheckPlusTip is PlusAboutFifteenPercent rule: if FoodQuality is Good and Service is Bad then Tip is AboutFifteenPercent and CheckPlusTip is PlusAboutFifteenPercent diff --git a/examples/mamdani/octave/mamdani_tip_calculator.java b/examples/mamdani/octave/mamdani_tip_calculator.java index bea319b..faea466 100644 --- a/examples/mamdani/octave/mamdani_tip_calculator.java +++ b/examples/mamdani/octave/mamdani_tip_calculator.java @@ -1,4 +1,5 @@ import com.fuzzylite.*; +import com.fuzzylite.activation.* import com.fuzzylite.defuzzifier.*; import com.fuzzylite.factory.*; import com.fuzzylite.hedge.*; @@ -12,59 +13,70 @@ import com.fuzzylite.variable.*; public class mamdani_tip_calculator{ public static void main(String[] args){ +//Code automatically generated with fuzzylite 6.0. + Engine engine = new Engine(); -engine.setName("Mamdani-Tip-Calculator"); +engine.setName("mamdani_tip_calculator"); +engine.setDescription(""); -InputVariable inputVariable1 = new InputVariable(); -inputVariable1.setEnabled(true); -inputVariable1.setName("FoodQuality"); -inputVariable1.setRange(1.000, 10.000); -inputVariable1.addTerm(new Trapezoid("Bad", 0.000, 1.000, 3.000, 7.000)); -inputVariable1.addTerm(new Trapezoid("Good", 3.000, 7.000, 10.000, 11.000)); -engine.addInputVariable(inputVariable1); +InputVariable FoodQuality = new InputVariable(); +FoodQuality.setName("FoodQuality"); +FoodQuality.setDescription(""); +FoodQuality.setEnabled(true); +FoodQuality.setRange(1.000, 10.000); +FoodQuality.setLockValueInRange(false); +FoodQuality.addTerm(new Trapezoid("Bad", 0.000, 1.000, 3.000, 7.000)); +FoodQuality.addTerm(new Trapezoid("Good", 3.000, 7.000, 10.000, 11.000)); +engine.addInputVariable(FoodQuality); -InputVariable inputVariable2 = new InputVariable(); -inputVariable2.setEnabled(true); -inputVariable2.setName("Service"); -inputVariable2.setRange(1.000, 10.000); -inputVariable2.addTerm(new Trapezoid("Bad", 0.000, 1.000, 3.000, 7.000)); -inputVariable2.addTerm(new Trapezoid("Good", 3.000, 7.000, 10.000, 11.000)); -engine.addInputVariable(inputVariable2); +InputVariable Service = new InputVariable(); +Service.setName("Service"); +Service.setDescription(""); +Service.setEnabled(true); +Service.setRange(1.000, 10.000); +Service.setLockValueInRange(false); +Service.addTerm(new Trapezoid("Bad", 0.000, 1.000, 3.000, 7.000)); +Service.addTerm(new Trapezoid("Good", 3.000, 7.000, 10.000, 11.000)); +engine.addInputVariable(Service); -OutputVariable outputVariable1 = new OutputVariable(); -outputVariable1.setEnabled(true); -outputVariable1.setName("Tip"); -outputVariable1.setRange(0.000, 30.000); -outputVariable1.fuzzyOutput().setAccumulation(new AlgebraicSum()); -outputVariable1.setDefuzzifier(new Centroid(200)); -outputVariable1.setDefaultValue(Double.NaN); -outputVariable1.setLockPreviousOutputValue(false); -outputVariable1.setLockOutputValueInRange(false); -outputVariable1.addTerm(new Gaussian("AboutTenPercent", 10.000, 2.000)); -outputVariable1.addTerm(new Gaussian("AboutFifteenPercent", 15.000, 2.000)); -outputVariable1.addTerm(new Gaussian("AboutTwentyPercent", 20.000, 2.000)); -engine.addOutputVariable(outputVariable1); +OutputVariable Tip = new OutputVariable(); +Tip.setName("Tip"); +Tip.setDescription(""); +Tip.setEnabled(true); +Tip.setRange(0.000, 30.000); +Tip.setLockValueInRange(false); +Tip.setAggregation(new AlgebraicSum()); +Tip.setDefuzzifier(new Centroid(200)); +Tip.setDefaultValue(Double.NaN); +Tip.setLockPreviousValue(false); +Tip.addTerm(new Gaussian("AboutTenPercent", 10.000, 2.000)); +Tip.addTerm(new Gaussian("AboutFifteenPercent", 15.000, 2.000)); +Tip.addTerm(new Gaussian("AboutTwentyPercent", 20.000, 2.000)); +engine.addOutputVariable(Tip); -OutputVariable outputVariable2 = new OutputVariable(); -outputVariable2.setEnabled(true); -outputVariable2.setName("CheckPlusTip"); -outputVariable2.setRange(1.000, 1.300); -outputVariable2.fuzzyOutput().setAccumulation(new AlgebraicSum()); -outputVariable2.setDefuzzifier(new Centroid(200)); -outputVariable2.setDefaultValue(Double.NaN); -outputVariable2.setLockPreviousOutputValue(false); -outputVariable2.setLockOutputValueInRange(false); -outputVariable2.addTerm(new Gaussian("PlusAboutTenPercent", 1.100, 0.020)); -outputVariable2.addTerm(new Gaussian("PlusAboutFifteenPercent", 1.150, 0.020)); -outputVariable2.addTerm(new Gaussian("PlusAboutTwentyPercent", 1.200, 0.020)); -engine.addOutputVariable(outputVariable2); +OutputVariable CheckPlusTip = new OutputVariable(); +CheckPlusTip.setName("CheckPlusTip"); +CheckPlusTip.setDescription(""); +CheckPlusTip.setEnabled(true); +CheckPlusTip.setRange(1.000, 1.300); +CheckPlusTip.setLockValueInRange(false); +CheckPlusTip.setAggregation(new AlgebraicSum()); +CheckPlusTip.setDefuzzifier(new Centroid(200)); +CheckPlusTip.setDefaultValue(Double.NaN); +CheckPlusTip.setLockPreviousValue(false); +CheckPlusTip.addTerm(new Gaussian("PlusAboutTenPercent", 1.100, 0.020)); +CheckPlusTip.addTerm(new Gaussian("PlusAboutFifteenPercent", 1.150, 0.020)); +CheckPlusTip.addTerm(new Gaussian("PlusAboutTwentyPercent", 1.200, 0.020)); +engine.addOutputVariable(CheckPlusTip); RuleBlock ruleBlock = new RuleBlock(); -ruleBlock.setEnabled(true); ruleBlock.setName(""); +ruleBlock.setDescription(""); +ruleBlock.setEnabled(true); ruleBlock.setConjunction(new AlgebraicProduct()); ruleBlock.setDisjunction(new Maximum()); -ruleBlock.setActivation(new Minimum()); +ruleBlock.setImplication(new Minimum()); +ruleBlock.setActivation(new General()); ruleBlock.addRule(Rule.parse("if FoodQuality is Bad and Service is Bad then Tip is AboutTenPercent and CheckPlusTip is PlusAboutTenPercent", engine)); ruleBlock.addRule(Rule.parse("if FoodQuality is Bad and Service is Good then Tip is AboutFifteenPercent and CheckPlusTip is PlusAboutFifteenPercent", engine)); ruleBlock.addRule(Rule.parse("if FoodQuality is Good and Service is Bad then Tip is AboutFifteenPercent and CheckPlusTip is PlusAboutFifteenPercent", engine)); diff --git a/examples/mamdani/octave/mamdani_tip_calculator.pdf b/examples/mamdani/octave/mamdani_tip_calculator.pdf Binary files differnew file mode 100644 index 0000000..d62a142 --- /dev/null +++ b/examples/mamdani/octave/mamdani_tip_calculator.pdf |