diff --git a/README.md b/README.md
index 55e452ae888ccd637e6f9b73b1993b4a7e904480..11e894b79e117039ee5e991400f6131ed1d000f2 100644
--- a/README.md
+++ b/README.md
@@ -203,4 +203,13 @@ You can now run Cuttlefish by doing:
 
 It should then report an IP and port. One is your local address, if the browser you are using is on the same machine as the node process, and the other is the machine's outward facing IP. You should be able to point the browser to one of these IPs, and you're off and cuttling.
 
-...
+# Dev Golf
+
+```
+- assign meaning to charts and graphs (date / location / etc)  
+ - this should be generic json-object making, yeah? / csv
+- save tests as .json objects (optionally) develop program for reading  
+ - overlay multiples, save images  
+ - read-in csv as well, polymorphic for outputs
+- generic wrap / unwrap data objects ... 
+```
diff --git a/hunks/adhoc/2x_linechart.js b/hunks/adhoc/2x_linechart.js
new file mode 100644
index 0000000000000000000000000000000000000000..d1b1faa0d0db6a771b371e121aa022c02598b266
--- /dev/null
+++ b/hunks/adhoc/2x_linechart.js
@@ -0,0 +1,138 @@
+/*
+
+simple line chart, talking to array reference
+
+minuteman hack for displaying instron data w/ dex data ... jake is tired
+this should expand to generalize against any # of inputs (state, polymorphic)
+and should have labels, and wrap with some generalized system understanding of data sets ? md ?
+paired / matched sets of array data ?
+
+*/
+
+// using https://bl.ocks.org/d3noob/402dd382a51a4f6eea487f9a35566de0
+
+import {
+  Hunkify,
+  Input,
+  Output,
+  State
+} from '../hunks.js'
+
+function LineChart() {
+  Hunkify(this)
+  //
+  let dtRef0 = new Input('reference', 'array', this)
+  let dtRef1 = new Input('reference', 'array', this)
+  this.inputs.push(dtRef0, dtRef1)
+  // how many to keep
+  let displayNum = new State('number', 'displayCount', 50)
+  this.states.push(displayNum)
+
+  // some global items,
+  var datas = [
+    [
+      [0, 0],
+      [1, 1]
+    ],
+    [
+      [0, 0],
+      [2, 2]
+    ]
+  ]
+  let uniqueDivId = ''
+
+  // to claim some space in the DOM, we make a handle for ourselv
+  this.dom = {}
+
+  this.init = () => {
+    console.log('INIT linechart')
+    // make a unique id, we use a flat d3 search to find and update this ...
+    uniqueDivId = 'linechart_div_' + Math.round(Math.random() * 1000)
+    this.dom = $('<div>').attr('id', uniqueDivId).get(0)
+  }
+
+  this.onload = () => {
+    // our vars,
+    var margin = {
+        top: 20,
+        right: 20,
+        bottom: 30,
+        left: 90
+      },
+      width = 960 - margin.left - margin.right,
+      height = 500 - margin.top - margin.bottom;
+    var x = d3.scaleLinear().range([0, width])
+    var y = d3.scaleLinear().range([height, 0])
+    var thesvg = null
+    // make ah function
+    this.reloadDatas = () => {
+      var valueline = d3.line()
+        .x(function(d) {
+          return x(d[0])
+        })
+        .y(function(d) {
+          return y(d[1])
+        })
+      // scale
+      x.domain([0, d3.max(datas[0], function(d) {
+        return d[0];
+      })])
+      y.domain([d3.min(datas[0], function(d) {
+        return d[1]
+      }), d3.max(datas[0], function(d) {
+        return d[1];
+      })])
+      if (thesvg) {
+        d3.select(`#${uniqueDivId}`).selectAll("*").remove()
+      }
+      thesvg = d3.select(`#${uniqueDivId}`).append("svg")
+        .attr("width", width + margin.left + margin.right)
+        .attr("height", height + margin.top + margin.bottom)
+        .append("g")
+        .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
+      // write it?
+      thesvg.append("path")
+        .data([datas[0]])
+        .attr("class", "line")
+        .attr("d", valueline)
+      thesvg.append("path")
+        .data([datas[1]])
+        .attr("class", "line")
+        .attr("d", valueline)
+      // write the x axis
+      thesvg.append("g")
+        .attr("transform", "translate(0," + height + ")")
+        .call(d3.axisBottom(x))
+      // the y axis
+      thesvg.append("g")
+        .call(d3.axisLeft(y))
+    }
+    // so then
+    this.requestResize(1000, 520)
+    // startup
+    this.reloadDatas()
+  }
+
+  this.onresize = () => {
+    console.log(this.dom.clientHeight, this.dom.clientWidth)
+  }
+
+  // hmmm
+  this.loop = () => {
+    // pull and append
+    if (dtRef0.io()) {
+      // WARN to others... the -1 is here bc is it a useful hack for jake
+      // at the moment ! apologies
+      datas[0] = dtRef0.get()
+      this.reloadDatas()
+    }
+    if (dtRef1.io()) {
+      // WARN to others... the -1 is here bc is it a useful hack for jake
+      // at the moment ! apologies
+      datas[1] = dtRef1.get()
+      this.reloadDatas()
+    }
+  }
+}
+
+export default LineChart
diff --git a/hunks/adhoc/open-4411-csv.js b/hunks/adhoc/open-4411-csv.js
new file mode 100644
index 0000000000000000000000000000000000000000..e656b5e91bf08fa38f8f7ba8e62256a3c03fcdac
--- /dev/null
+++ b/hunks/adhoc/open-4411-csv.js
@@ -0,0 +1,58 @@
+/*
+
+open csv, setup outputs for fields (?)
+
+*/
+
+import {
+  Hunkify,
+  Input,
+  Output,
+  State
+} from '../hunks.js'
+
+import { CSV } from '../../libs/csv.js'
+
+export default function OpenCSV() {
+  Hunkify(this)
+
+  let outref = new Output('reference', 'data', this)
+  this.outputs.push(outref)
+
+  let readCsv = (file) => {
+    let reader = new FileReader()
+    reader.onload = (evt) => {
+      let parsed = CSV.parse(evt.target.result)
+      // wrip headers off
+      let records = parsed.slice(2)
+      let zc = records.findIndex((elem) => {
+        return elem[1] > 0
+      })
+      console.log('zc', zc)
+      records = records.slice(zc)
+      let adjusted = []
+      for(let item of records){
+        adjusted.push([item[1], item[2]])
+      }
+      // now we can write outputs
+      outref.put(adjusted)
+    }
+    reader.readAsText(file)
+  }
+
+  this.init = () => {
+    this.dom = $('<div>').get(0)
+  }
+
+  this.onload = () => {
+    let btn = $('<input type="file" accept=".csv">').get(0)
+    $(btn).on('change', (evt) => {
+      readCsv(evt.target.files[0])
+    })
+    $(this.dom).append(btn)
+  }
+
+  this.loop = () => {
+  }
+
+}
diff --git a/hunks/adhoc/open-dex-json.js b/hunks/adhoc/open-dex-json.js
new file mode 100644
index 0000000000000000000000000000000000000000..c71751e0ac21caa702d5e2e32c5040a2adc884b3
--- /dev/null
+++ b/hunks/adhoc/open-dex-json.js
@@ -0,0 +1,57 @@
+/*
+
+open csv, setup outputs for fields (?)
+
+*/
+
+import {
+  Hunkify,
+  Input,
+  Output,
+  State
+} from '../hunks.js'
+
+
+export default function OpenJSON() {
+  Hunkify(this)
+
+  let outref = new Output('reference', 'data', this)
+  this.outputs.push(outref)
+
+  let readJSON = (file) => {
+    let reader = new FileReader()
+    reader.onload = (evt) => {
+      let parsed = JSON.parse(evt.target.result)
+      // put zeroes together
+      let zc = parsed.findIndex((elem) => {
+        return elem[1] > 0
+      })
+      console.log(zc)
+      parsed = parsed.slice(zc)
+      console.log('json', parsed)
+      for(let pt of parsed){
+        pt[0] = pt[0]*0.001
+        pt[1] = pt[1]*0.0098
+      }
+      outref.put(parsed)
+      // outref.put(adjusted)
+    }
+    reader.readAsText(file)
+  }
+
+  this.init = () => {
+    this.dom = $('<div>').get(0)
+  }
+
+  this.onload = () => {
+    let btn = $('<input type="file" accept=".json">').get(0)
+    $(btn).on('change', (evt) => {
+      readJSON(evt.target.files[0])
+    })
+    $(this.dom).append(btn)
+  }
+
+  this.loop = () => {
+  }
+
+}
diff --git a/hunks/data/linechart.js b/hunks/data/linechart.js
index d1893776820928f44e2aa987b3e9a7e9da9a2250..1b103f6310d80665f9f893aaa90c09c673d8643d 100644
--- a/hunks/data/linechart.js
+++ b/hunks/data/linechart.js
@@ -40,7 +40,6 @@ function LineChart() {
   }
 
   this.onload = () => {
-    console.log('DOMLOAD linechart')
     // our vars,
     var margin = {
         top: 20,
@@ -53,7 +52,6 @@ function LineChart() {
     var x = d3.scaleLinear().range([0, width])
     var y = d3.scaleLinear().range([height, 0])
     var thesvg = null
-    console.log("svg", thesvg)
     // make ah function
     this.reloadDatas = () => {
       var valueline = d3.line()
diff --git a/hunks/data/save.js b/hunks/data/save.js
index 2b4e2badb43b34438119d9347c74c225c47c1e12..78e666d811b4fdebba2da9a1ec86653c87a4f660 100644
--- a/hunks/data/save.js
+++ b/hunks/data/save.js
@@ -11,7 +11,7 @@ import {
   State
 } from '../hunks.js'
 
-function Save(){
+export default function Save(){
   Hunkify(this)
 
   let inobj = new Input("reference", "object", this)
@@ -54,5 +54,3 @@ function Save(){
     }
   }
 }
-
-export default Save
diff --git a/hunks/incomplete/opencsv.js b/hunks/incomplete/opencsv.js
new file mode 100644
index 0000000000000000000000000000000000000000..5906681440cb95c7ee01e90871b119648ba7fc86
--- /dev/null
+++ b/hunks/incomplete/opencsv.js
@@ -0,0 +1,128 @@
+/*
+
+open csv, setup outputs for fields (?)
+
+INCOMPLETE: have to fix 'replaceDef' in the view ... scuttles the HTML, but should only update the
+inputs / outputs ...
+in general: hunk polymorphism is tough ?
+
+*/
+
+import {
+  Hunkify,
+  Input,
+  Output,
+  State
+} from '../hunks.js'
+
+import { CSV } from '../../libs/csv.js'
+
+export default function OpenCSV() {
+  Hunkify(this)
+
+  let names = []
+  let records = []
+  let updates = []
+  let headerCount = new State('number', 'header rows', 2)
+  let syncOption = new State('boolean', 'synchronous', true)
+  let releaseData = new State('boolean', 'release', false)
+  this.states.push(headerCount, syncOption, releaseData)
+  releaseData.onChange = (value) => {
+    for (let i in updates) {
+      updates[i] = true
+    }
+  }
+
+  // trouble with this method: on restore program, no outputs will exist...
+  let writeOutputs = () => {
+    console.log('records', records)
+    // ensure our list is this long:
+    this.outputs.length = records[0].length
+    // and sweep,
+    for (let i in records[0]) {
+      // if we have it already, and it's the same type, maintain connections...
+      if (this.outputs[i] && this.outputs[i].type === typeof records[i][0]) {
+        this.outputs[i].name = names[i]
+        continue
+      } else {
+        this.outputs[i] = new Output(typeof records[i][0], names[i], this)
+      }
+    }
+    // and reset
+    this.mgr.evaluateHunk(this)
+  }
+
+  let readCsv = (file) => {
+    let reader = new FileReader()
+    reader.onload = (evt) => {
+      let parsed = CSV.parse(evt.target.result)
+      console.log('parsed', parsed)
+      // ok,
+      if (headerCount.value) {
+        for (let i = 0; i < parsed[0].length; i++) {
+          names[i] = ''
+          for (let j = 0; j < headerCount.value; j++) {
+            names[i] += `${parsed[j][i]}`
+          }
+        }
+        // make header names by this row, otherwise do by types
+      } else {
+        for (let i = 0; i < parsed[0].length; i++) {
+          names[i] = typeof parsed[0][i]
+        }
+      }
+      // have names,
+      console.log('names', names)
+      // records, less headers
+      records = parsed.slice(headerCount.value)
+      // all should ship:
+      updates.length = 0
+      for (let i in parsed[0]) {
+        updates.push(true)
+      }
+      // now we can write outputs:
+      writeOutputs()
+    }
+    reader.readAsText(file)
+  }
+
+  this.init = () => {
+    this.dom = $('<div>').get(0)
+  }
+
+  this.onload = () => {
+    let btn = $('<input type="file" accept=".csv">').get(0)
+    $(btn).on('change', (evt) => {
+      readCsv(evt.target.files[0])
+    })
+    $(this.dom).append(btn)
+  }
+
+  this.loop = () => {
+    // flow behaviour: if 'sync', check all clear and all updated, then ship all
+    // if not sync, ship any that are updated & clear
+    if(this.outputs.length < 1) return
+    // continue...
+    if(syncOption.value){
+      // synchronous shipments
+      let clear = true
+      for(let o in this.outputs){
+        if(this.outputs[o].io()) clear = false
+        if(!updates[o]) clear = false
+      }
+      if(clear){
+        for(let o in this.outputs){
+          this.outputs[o].put(records[o])
+        }
+      }
+    } else {
+      // spaghetti shipments
+      for(let o in this.outputs){
+        if(updates[o] && !this.outputs[o].io()){
+          this.outputs[o].put(records[o])
+        }
+      }
+    }
+  }
+
+}
diff --git a/libs/csv.js b/libs/csv.js
new file mode 100644
index 0000000000000000000000000000000000000000..363feddb3aaaa3f3d867f493292ac1c17df8af48
--- /dev/null
+++ b/libs/csv.js
@@ -0,0 +1,358 @@
+// from https://github.com/okfn/csv.js
+
+/* global jQuery, _ */
+var CSV = {};
+
+// Note that provision of jQuery is optional (it is **only** needed if you use fetch on a remote file)
+(function(my) {
+  "use strict";
+  my.__type__ = "csv";
+
+  // use either jQuery or Underscore Deferred depending on what is available
+  var Deferred =
+    (typeof jQuery !== "undefined" && jQuery.Deferred) ||
+    (typeof _ !== "undefined" && _.Deferred) ||
+    function() {
+      var resolve, reject;
+      var promise = new Promise(function(res, rej) {
+        resolve = res;
+        reject = rej;
+      });
+      return {
+        resolve: resolve,
+        reject: reject,
+        promise: function() {
+          return promise;
+        }
+      };
+    };
+
+  my.fetch = function(dataset) {
+    var dfd = new Deferred();
+    if (dataset.file) {
+      var reader = new FileReader();
+      var encoding = dataset.encoding || "UTF-8";
+      reader.onload = function(e) {
+        var out = my.extractFields(my.parse(e.target.result, dataset), dataset);
+        out.useMemoryStore = true;
+        out.metadata = {
+          filename: dataset.file.name
+        };
+        dfd.resolve(out);
+      };
+      reader.onerror = function(e) {
+        dfd.reject({
+          error: {
+            message: "Failed to load file. Code: " + e.target.error.code
+          }
+        });
+      };
+      reader.readAsText(dataset.file, encoding);
+    } else if (dataset.data) {
+      var out = my.extractFields(my.parse(dataset.data, dataset), dataset);
+      out.useMemoryStore = true;
+      dfd.resolve(out);
+    } else if (dataset.url) {
+      var fetch =
+        window.fetch ||
+        function(url) {
+          var jq = jQuery.get(url);
+
+          var promiseResult = {
+            then: function(res) {
+              jq.done(res);
+              return promiseResult;
+            },
+            catch: function(rej) {
+              jq.fail(rej);
+              return promiseResult;
+            }
+          };
+          return promiseResult;
+        };
+      fetch(dataset.url)
+        .then(function(response) {
+          if (response.text) {
+            return response.text();
+          } else {
+            return response;
+          }
+        })
+        .then(function(data) {
+          var out = my.extractFields(my.parse(data, dataset), dataset);
+          out.useMemoryStore = true;
+          dfd.resolve(out);
+        })
+        .catch(function(req, status) {
+          dfd.reject({
+            error: {
+              message: "Failed to load file. " +
+                req.statusText +
+                ". Code: " +
+                req.status,
+              request: req
+            }
+          });
+        });
+    }
+    return dfd.promise();
+  };
+
+  // Convert array of rows in { records: [ ...] , fields: [ ... ] }
+  // @param {Boolean} noHeaderRow If true assume that first row is not a header (i.e. list of fields but is data.
+  my.extractFields = function(rows, noFields) {
+    if (noFields.noHeaderRow !== true && rows.length > 0) {
+      return {
+        fields: rows[0],
+        records: rows.slice(1)
+      };
+    } else {
+      return {
+        records: rows
+      };
+    }
+  };
+
+  my.normalizeDialectOptions = function(options) {
+    // note lower case compared to CSV DDF
+    var out = {
+      delimiter: ",",
+      doublequote: true,
+      lineterminator: "\n",
+      quotechar: '"',
+      skipinitialspace: true,
+      skipinitialrows: 0
+    };
+    for (var key in options) {
+      if (key === "trim") {
+        out["skipinitialspace"] = options.trim;
+      } else {
+        out[key.toLowerCase()] = options[key];
+      }
+    }
+    return out;
+  };
+
+  // ## parse
+  //
+  // For docs see the README
+  //
+  // Heavily based on uselesscode's JS CSV parser (MIT Licensed):
+  // http://www.uselesscode.org/javascript/csv/
+  my.parse = function(s, dialect) {
+    // When line terminator is not provided then we try to guess it
+    // and normalize it across the file.
+    if (!dialect || (dialect && !dialect.lineterminator)) {
+      s = my.normalizeLineTerminator(s, dialect);
+    }
+
+    // Get rid of any trailing \n
+    var options = my.normalizeDialectOptions(dialect);
+    s = chomp(s, options.lineterminator);
+
+    var cur = "", // The character we are currently processing.
+      inQuote = false,
+      fieldQuoted = false,
+      field = "", // Buffer for building up the current field
+      row = [],
+      out = [],
+      i,
+      processField;
+
+    processField = function(field) {
+      if (fieldQuoted !== true) {
+        // If field is empty set to null
+        if (field === "") {
+          field = null;
+          // If the field was not quoted and we are trimming fields, trim it
+        } else if (options.skipinitialspace === true) {
+          field = trim(field);
+        }
+
+        // Convert unquoted numbers to their appropriate types
+        if (rxIsInt.test(field)) {
+          field = parseInt(field, 10);
+        } else if (rxIsFloat.test(field)) {
+          field = parseFloat(field, 10);
+        }
+      }
+      return field;
+    };
+
+    for (i = 0; i < s.length; i += 1) {
+      cur = s.charAt(i);
+
+      // If we are at a EOF or EOR
+      if (
+        inQuote === false &&
+        (cur === options.delimiter || cur === options.lineterminator)
+      ) {
+        field = processField(field);
+        // Add the current field to the current row
+        row.push(field);
+        // If this is EOR append row to output and flush row
+        if (cur === options.lineterminator) {
+          out.push(row);
+          row = [];
+        }
+        // Flush the field buffer
+        field = "";
+        fieldQuoted = false;
+      } else {
+        // If it's not a quotechar, add it to the field buffer
+        if (cur !== options.quotechar) {
+          field += cur;
+        } else {
+          if (!inQuote) {
+            // We are not in a quote, start a quote
+            inQuote = true;
+            fieldQuoted = true;
+          } else {
+            // Next char is quotechar, this is an escaped quotechar
+            if (s.charAt(i + 1) === options.quotechar) {
+              field += options.quotechar;
+              // Skip the next char
+              i += 1;
+            } else {
+              // It's not escaping, so end quote
+              inQuote = false;
+            }
+          }
+        }
+      }
+    }
+
+    // Add the last field
+    field = processField(field);
+    row.push(field);
+    out.push(row);
+
+    // Expose the ability to discard initial rows
+    if (options.skipinitialrows) out = out.slice(options.skipinitialrows);
+
+    return out;
+  };
+
+  my.normalizeLineTerminator = function(csvString, dialect) {
+    dialect = dialect || {};
+
+    // Try to guess line terminator if it's not provided.
+    if (!dialect.lineterminator) {
+      return csvString.replace(/(\r\n|\n|\r)/gm, "\n");
+    }
+    // if not return the string untouched.
+    return csvString;
+  };
+
+  my.objectToArray = function(dataToSerialize) {
+    var a = [];
+    var fieldNames = [];
+    for (var ii = 0; ii < dataToSerialize.fields.length; ii++) {
+      fieldNames.push(dataToSerialize.fields[ii].id);
+    }
+    a.push(fieldNames);
+    for (var ii = 0; ii < dataToSerialize.records.length; ii++) {
+      var tmp = [];
+      var record = dataToSerialize.records[ii];
+      for (var jj = 0; jj < fieldNames.length; jj++) {
+        tmp.push(record[fieldNames[jj]]);
+      }
+      a.push(tmp);
+    }
+    return a;
+  };
+
+  // ## serialize
+  //
+  // See README for docs
+  //
+  // Heavily based on uselesscode's JS CSV serializer (MIT Licensed):
+  // http://www.uselesscode.org/javascript/csv/
+  my.serialize = function(dataToSerialize, dialect) {
+    var a = null;
+    if (dataToSerialize instanceof Array) {
+      a = dataToSerialize;
+    } else {
+      a = my.objectToArray(dataToSerialize);
+    }
+    var options = my.normalizeDialectOptions(dialect);
+
+    var cur = "", // The character we are currently processing.
+      field = "", // Buffer for building up the current field
+      row = "",
+      out = "",
+      i,
+      j,
+      processField;
+
+    processField = function(field) {
+      if (field === null) {
+        // If field is null set to empty string
+        field = "";
+      } else if (typeof field === "string" && rxNeedsQuoting.test(field)) {
+        if (options.doublequote) {
+          field = field.replace(/"/g, '""');
+        }
+        // Convert string to delimited string
+        field = options.quotechar + field + options.quotechar;
+      } else if (typeof field === "number") {
+        // Convert number to string
+        field = field.toString(10);
+      }
+
+      return field;
+    };
+
+    for (i = 0; i < a.length; i += 1) {
+      cur = a[i];
+
+      for (j = 0; j < cur.length; j += 1) {
+        field = processField(cur[j]);
+        // If this is EOR append row to output and flush row
+        if (j === cur.length - 1) {
+          row += field;
+          out += row + options.lineterminator;
+          row = "";
+        } else {
+          // Add the current field to the current row
+          row += field + options.delimiter;
+        }
+        // Flush the field buffer
+        field = "";
+      }
+    }
+
+    return out;
+  };
+
+  var rxIsInt = /^\d+$/,
+    rxIsFloat = /^\d*\.\d+$|^\d+\.\d*$/,
+    // If a string has leading or trailing space,
+    // contains a comma double quote or a newline
+    // it needs to be quoted in CSV output
+    rxNeedsQuoting = /^\s|\s$|,|"|\n/,
+    trim = (function() {
+      // Fx 3.1 has a native trim function, it's about 10x faster, use it if it exists
+      if (String.prototype.trim) {
+        return function(s) {
+          return s.trim();
+        };
+      } else {
+        return function(s) {
+          return s.replace(/^\s*/, "").replace(/\s*$/, "");
+        };
+      }
+    })();
+
+  function chomp(s, lineterminator) {
+    if (s.charAt(s.length - lineterminator.length) !== lineterminator) {
+      // Does not end with \n, just return string
+      return s;
+    } else {
+      // Remove the \n
+      return s.substring(0, s.length - lineterminator.length);
+    }
+  }
+})(CSV);
+
+export { CSV }
diff --git a/save/systems/chart-adhoc-compare.json b/save/systems/chart-adhoc-compare.json
new file mode 100644
index 0000000000000000000000000000000000000000..b16ba9b795bfd21f179e538b4c9dc2a6b340e8ad
--- /dev/null
+++ b/save/systems/chart-adhoc-compare.json
@@ -0,0 +1,103 @@
+{
+  "interpreterName": "cuttlefish",
+  "interpreterVersion": "v0.1",
+  "hunks": [
+    {
+      "type": "manager",
+      "name": "nrol",
+      "inputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray"
+        }
+      ],
+      "outputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray",
+          "connections": [
+            {
+              "inHunkIndex": "1",
+              "inHunkInput": "0"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "type": "view",
+      "name": "tlview",
+      "inputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray"
+        }
+      ],
+      "outputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray",
+          "connections": [
+            {
+              "inHunkIndex": "0",
+              "inHunkInput": "0"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "type": "adhoc/open-dex-json",
+      "name": "adhoc/open-dex-json_5",
+      "outputs": [
+        {
+          "name": "data",
+          "type": "reference",
+          "connections": [
+            {
+              "inHunkIndex": "4",
+              "inHunkInput": "0"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "type": "adhoc/open-4411-csv",
+      "name": "adhoc/open-4411-csv_5",
+      "outputs": [
+        {
+          "name": "data",
+          "type": "reference",
+          "connections": [
+            {
+              "inHunkIndex": "4",
+              "inHunkInput": "1"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "type": "adhoc/2x_linechart",
+      "name": "adhoc/2x_linechart_5",
+      "inputs": [
+        {
+          "name": "array",
+          "type": "reference"
+        },
+        {
+          "name": "array",
+          "type": "reference"
+        }
+      ],
+      "states": [
+        {
+          "name": "displayCount",
+          "type": "number",
+          "value": "50"
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/test_files/Specimen_RawData_4.csv b/test_files/Specimen_RawData_4.csv
new file mode 100644
index 0000000000000000000000000000000000000000..a4b236205387246796b31781888198945df0efd9
--- /dev/null
+++ b/test_files/Specimen_RawData_4.csv
@@ -0,0 +1,1522 @@
+Time,Extension,Load
+(sec),(mm),(N)
+0.00000,0.00000,-9.06038
+0.10000,0.00100,-9.06038
+0.20000,0.00270,-9.06038
+0.30000,0.00430,-9.06038
+0.40000,0.00600,-9.06038
+0.50000,0.00770,-9.06038
+0.60000,0.00930,-9.03354
+0.70000,0.01100,-8.97985
+0.80000,0.01270,-8.92616
+0.90000,0.01430,-8.85904
+1.00000,0.01600,-8.79193
+1.10000,0.01770,-8.69797
+1.20000,0.01930,-8.59059
+1.30000,0.02100,-8.48320
+1.40000,0.02270,-8.34898
+1.50000,0.02430,-8.21475
+1.60000,0.02600,-8.05368
+1.70000,0.02770,-7.87918
+1.80000,0.02930,-7.67784
+1.90000,0.03100,-7.44965
+2.00000,0.03270,-7.23489
+2.10000,0.03430,-6.97985
+2.20000,0.03600,-6.68455
+2.30000,0.03770,-6.37583
+2.40000,0.03930,-6.08053
+2.50000,0.04100,-5.78523
+2.60000,0.04270,-5.47650
+2.70000,0.04430,-5.14093
+2.80000,0.04600,-4.81878
+2.90000,0.04770,-4.45637
+3.00000,0.04930,-4.06711
+3.10000,0.05100,-3.70469
+3.20000,0.05270,-3.35570
+3.30000,0.05430,-3.02013
+3.40000,0.05600,-2.65772
+3.50000,0.05770,-2.30872
+3.60000,0.05930,-1.94631
+3.70000,0.06100,-1.58389
+3.80000,0.06270,-1.19463
+3.90000,0.06430,-0.83222
+4.00000,0.06600,-0.48323
+4.10000,0.06770,-0.13423
+4.20000,0.06930,0.26845
+4.30000,0.07100,0.63087
+4.40000,0.07270,0.97986
+4.50000,0.07430,1.35570
+4.60000,0.07600,1.75838
+4.70000,0.07770,2.09395
+4.80000,0.07930,2.46979
+4.90000,0.08100,2.80536
+5.00000,0.08270,3.16777
+5.10000,0.08430,3.50334
+5.20000,0.08600,3.86576
+5.30000,0.08770,4.24159
+5.40000,0.08930,4.65770
+5.50000,0.09100,5.00669
+5.60000,0.09270,5.38253
+5.70000,0.09430,5.71810
+5.80000,0.09600,6.05367
+5.90000,0.09770,6.40266
+6.00000,0.09930,6.75166
+6.10000,0.10100,7.12749
+6.20000,0.10270,7.50333
+6.30000,0.10430,7.85232
+6.40000,0.10600,8.20132
+6.50000,0.10770,8.55031
+6.60000,0.10930,8.88588
+6.70000,0.11100,9.23487
+6.80000,0.11270,9.58386
+6.90000,0.11430,9.94628
+7.00000,0.11600,10.34896
+7.10000,0.11770,10.71138
+7.20000,0.11930,11.08721
+7.30000,0.12100,11.42278
+7.40000,0.12270,11.77178
+7.50000,0.12430,12.10735
+7.60000,0.12600,12.49661
+7.70000,0.12770,12.87245
+7.80000,0.12930,13.26171
+7.90000,0.13100,13.61070
+8.00000,0.13260,13.97311
+8.10000,0.13430,14.29526
+8.20000,0.13600,14.64425
+8.30000,0.13760,14.99325
+8.40000,0.13930,15.34224
+8.50000,0.14100,15.70465
+8.60000,0.14260,16.08049
+8.70000,0.14430,16.42948
+8.80000,0.14600,16.76505
+8.90000,0.14760,17.10062
+9.00000,0.14930,17.42277
+9.10000,0.15100,17.75834
+9.20000,0.15260,18.12075
+9.30000,0.15430,18.48317
+9.40000,0.15600,18.84558
+9.50000,0.15760,19.19458
+9.60000,0.15930,19.54357
+9.70000,0.16100,19.86572
+9.80000,0.16260,20.21471
+9.90000,0.16430,20.56370
+10.00000,0.16600,20.88585
+10.10000,0.16760,21.22142
+10.20000,0.16930,21.61068
+10.30000,0.17100,21.97309
+10.40000,0.17260,22.28182
+10.50000,0.17430,22.60396
+10.60000,0.17600,22.93953
+10.70000,0.17760,23.28853
+10.80000,0.17930,23.62410
+10.90000,0.18100,23.95967
+11.00000,0.18260,24.32208
+11.10000,0.18430,24.67107
+11.20000,0.18600,25.02007
+11.30000,0.18760,25.34221
+11.40000,0.18930,25.70463
+11.50000,0.19100,26.06704
+11.60000,0.19260,26.38919
+11.70000,0.19430,26.75160
+11.80000,0.19600,27.14087
+11.90000,0.19760,27.47643
+12.00000,0.19930,27.82543
+12.10000,0.20100,28.14757
+12.20000,0.20260,28.52341
+12.30000,0.20430,28.84556
+12.40000,0.20600,29.20797
+12.50000,0.20760,29.54354
+12.60000,0.20930,29.90596
+12.70000,0.21100,30.22811
+12.80000,0.21260,30.55025
+12.90000,0.21430,30.87240
+13.00000,0.21600,31.22139
+13.10000,0.21760,31.54354
+13.20000,0.21930,31.87911
+13.30000,0.22100,32.22810
+13.40000,0.22260,32.59052
+13.50000,0.22430,32.92609
+13.60000,0.22600,33.26165
+13.70000,0.22760,33.58380
+13.80000,0.22930,33.91937
+13.90000,0.23100,34.25494
+14.00000,0.23260,34.59051
+14.10000,0.23430,34.93950
+14.20000,0.23600,35.30192
+14.30000,0.23760,35.65091
+14.40000,0.23930,35.98648
+14.50000,0.24100,36.29520
+14.60000,0.24260,36.61735
+14.70000,0.24430,36.96634
+14.80000,0.24600,37.28849
+14.90000,0.24760,37.65091
+15.00000,0.24930,38.01332
+15.10000,0.25100,38.33547
+15.20000,0.25260,38.67104
+15.30000,0.25430,38.97976
+15.40000,0.25600,39.30191
+15.50000,0.25760,39.63748
+15.60000,0.25930,39.99989
+15.70000,0.26100,40.36231
+15.80000,0.26260,40.72472
+15.90000,0.26430,41.06029
+16.00000,0.26600,41.39586
+16.10000,0.26760,41.69116
+16.20000,0.26930,42.02673
+16.30000,0.27100,42.33546
+16.40000,0.27260,42.67103
+16.50000,0.27430,43.03344
+16.60000,0.27600,43.38243
+16.70000,0.27760,43.71800
+16.80000,0.27930,44.04015
+16.90000,0.28100,44.32203
+17.00000,0.28260,44.67102
+17.10000,0.28430,44.97975
+17.20000,0.28600,45.31532
+17.30000,0.28760,45.66431
+17.40000,0.28930,45.99988
+17.50000,0.29100,46.32202
+17.60000,0.29260,46.63075
+17.70000,0.29430,46.92605
+17.80000,0.29600,47.24820
+17.90000,0.29760,47.57034
+18.00000,0.29930,47.91934
+18.10000,0.30100,48.24148
+18.20000,0.30260,48.61732
+18.30000,0.30430,48.91262
+18.40000,0.30600,49.26161
+18.50000,0.30760,49.55692
+18.60000,0.30930,49.90591
+18.70000,0.31100,50.20121
+18.80000,0.31260,50.55020
+18.90000,0.31430,50.87235
+19.00000,0.31600,51.22134
+19.10000,0.31760,51.51664
+19.20000,0.31930,51.83879
+19.30000,0.32100,52.16094
+19.40000,0.32260,52.48308
+19.50000,0.32430,52.77838
+19.60000,0.32600,53.12738
+19.70000,0.32760,53.44952
+19.80000,0.32930,53.79851
+19.90000,0.33100,54.09382
+20.00000,0.33260,54.44281
+20.10000,0.33430,54.73811
+20.20000,0.33600,55.08710
+20.30000,0.33760,55.40925
+20.40000,0.33930,55.73140
+20.50000,0.34100,56.05354
+20.60000,0.34260,56.37569
+20.70000,0.34430,56.72468
+20.80000,0.34600,57.01998
+20.90000,0.34760,57.31528
+21.00000,0.34930,57.61059
+21.10000,0.35100,57.90589
+21.20000,0.35260,58.28172
+21.30000,0.35430,58.63072
+21.40000,0.35600,58.92602
+21.50000,0.35760,59.22132
+21.60000,0.35930,59.51662
+21.70000,0.36100,59.83877
+21.80000,0.36260,60.13407
+21.90000,0.36430,60.42937
+22.00000,0.36600,60.75152
+22.10000,0.36760,61.10051
+22.20000,0.36930,61.42266
+22.30000,0.37100,61.74480
+22.40000,0.37260,62.06695
+22.50000,0.37430,62.33541
+22.60000,0.37600,62.63071
+22.70000,0.37760,62.95285
+22.80000,0.37930,63.27500
+22.90000,0.38100,63.59715
+23.00000,0.38260,63.91929
+23.10000,0.38430,64.21460
+23.20000,0.38600,64.50990
+23.30000,0.38760,64.80520
+23.40000,0.38930,65.10050
+23.50000,0.39100,65.42265
+23.60000,0.39260,65.71795
+23.70000,0.39430,66.06694
+23.80000,0.39600,66.38909
+23.90000,0.39760,66.71123
+24.00000,0.39930,67.00653
+24.10000,0.40100,67.30184
+24.20000,0.40260,67.59714
+24.30000,0.40430,67.91928
+24.40000,0.40600,68.21459
+24.50000,0.40760,68.56358
+24.60000,0.40930,68.83203
+24.70000,0.41100,69.15418
+24.80000,0.41260,69.42264
+24.90000,0.41430,69.71794
+25.00000,0.41600,70.01324
+25.10000,0.41760,70.30854
+25.20000,0.41930,70.60384
+25.30000,0.42100,70.92599
+25.40000,0.42260,71.22129
+25.50000,0.42430,71.54344
+25.60000,0.42600,71.81189
+25.70000,0.42760,72.10719
+25.80000,0.42930,72.40249
+25.90000,0.43100,72.69780
+26.00000,0.43260,72.99310
+26.10000,0.43430,73.28840
+26.20000,0.43600,73.58370
+26.30000,0.43760,73.87900
+26.40000,0.43930,74.14746
+26.50000,0.44100,74.44276
+26.60000,0.44260,74.73806
+26.70000,0.44430,75.00651
+26.80000,0.44600,75.30182
+26.90000,0.44760,75.59712
+27.00000,0.44930,75.89242
+27.10000,0.45100,76.18772
+27.20000,0.45260,76.42933
+27.30000,0.45430,76.72463
+27.40000,0.45600,77.01993
+27.50000,0.45760,77.28839
+27.60000,0.45930,77.58369
+27.70000,0.46100,77.90584
+27.80000,0.46260,78.17429
+27.90000,0.46430,78.46959
+28.00000,0.46600,78.76489
+28.10000,0.46760,79.06020
+28.20000,0.46930,79.35550
+28.30000,0.47100,79.62395
+28.40000,0.47260,79.91925
+28.50000,0.47430,80.24140
+28.60000,0.47600,80.53670
+28.70000,0.47760,80.80516
+28.80000,0.47930,81.07361
+28.90000,0.48100,81.34207
+29.00000,0.48260,81.63737
+29.10000,0.48430,81.93267
+29.20000,0.48600,82.22797
+29.30000,0.48760,82.52327
+29.40000,0.48930,82.79173
+29.50000,0.49100,83.08703
+29.60000,0.49260,83.32864
+29.70000,0.49430,83.62394
+29.80000,0.49600,83.89240
+29.90000,0.49760,84.16085
+30.00000,0.49930,84.45615
+30.10000,0.50100,84.75146
+30.20000,0.50260,84.99307
+30.30000,0.50430,85.26152
+30.40000,0.50600,85.52998
+30.50000,0.50760,85.79843
+30.60000,0.50930,86.06689
+30.70000,0.51100,86.33534
+30.80000,0.51260,86.63065
+30.90000,0.51430,86.92595
+31.00000,0.51600,87.19440
+31.10000,0.51760,87.46286
+31.20000,0.51930,87.70447
+31.30000,0.52100,87.97292
+31.40000,0.52260,88.24138
+31.50000,0.52430,88.50984
+31.60000,0.52600,88.77829
+31.70000,0.52760,89.07359
+31.80000,0.52930,89.34205
+31.90000,0.53100,89.58366
+32.00000,0.53260,89.82527
+32.10000,0.53430,90.09372
+32.20000,0.53600,90.33533
+32.30000,0.53760,90.63064
+32.40000,0.53930,90.89909
+32.50000,0.54100,91.19439
+32.60000,0.54260,91.46285
+32.70000,0.54430,91.73130
+32.80000,0.54600,91.97291
+32.90000,0.54760,92.24137
+33.00000,0.54930,92.45613
+33.10000,0.55100,92.72459
+33.20000,0.55260,92.99305
+33.30000,0.55430,93.28835
+33.40000,0.55600,93.52996
+33.50000,0.55760,93.77157
+33.60000,0.55930,93.98633
+33.70000,0.56100,94.25479
+33.80000,0.56260,94.46955
+33.90000,0.56430,94.73801
+34.00000,0.56600,95.00646
+34.10000,0.56760,95.30176
+34.20000,0.56930,95.57022
+34.30000,0.57100,95.77156
+34.40000,0.57260,95.97290
+34.50000,0.57430,96.24136
+34.60000,0.57600,96.50982
+34.70000,0.57760,96.71116
+34.80000,0.57930,96.97961
+34.90000,0.58100,97.24807
+35.00000,0.58260,97.44941
+35.10000,0.58430,97.71787
+35.20000,0.58600,97.91921
+35.30000,0.58760,98.18766
+35.40000,0.58930,98.38900
+35.50000,0.59100,98.59035
+35.60000,0.59260,98.85880
+35.70000,0.59430,99.12726
+35.80000,0.59600,99.32860
+35.90000,0.59760,99.59706
+36.00000,0.59930,99.79840
+36.10000,0.60100,99.99974
+36.20000,0.60260,100.26819
+36.30000,0.60430,100.53665
+36.40000,0.60600,100.73799
+36.50000,0.60760,101.00645
+36.60000,0.60930,101.20779
+36.70000,0.61100,101.47625
+36.80000,0.61260,101.67759
+36.90000,0.61430,101.94604
+37.00000,0.61600,102.14738
+37.10000,0.61760,102.34873
+37.20000,0.61930,102.61718
+37.30000,0.62100,102.81852
+37.40000,0.62260,103.01987
+37.50000,0.62430,103.28832
+37.60000,0.62600,103.48966
+37.70000,0.62760,103.69100
+37.80000,0.62930,103.89235
+37.90000,0.63100,104.09369
+38.00000,0.63260,104.36214
+38.10000,0.63430,104.56349
+38.20000,0.63600,104.76483
+38.30000,0.63760,104.96617
+38.40000,0.63930,105.16751
+38.50000,0.64100,105.36885
+38.60000,0.64260,105.57019
+38.70000,0.64430,105.77154
+38.80000,0.64600,106.03999
+38.90000,0.64760,106.24133
+39.00000,0.64930,106.44268
+39.10000,0.65100,106.64402
+39.20000,0.65260,106.77825
+39.30000,0.65430,106.97959
+39.40000,0.65590,107.24804
+39.50000,0.65760,107.44938
+39.60000,0.65930,107.65073
+39.70000,0.66090,107.78495
+39.80000,0.66260,107.98630
+39.90000,0.66430,108.18764
+40.00000,0.66590,108.38898
+40.10000,0.66760,108.52321
+40.20000,0.66930,108.72455
+40.30000,0.67090,108.92589
+40.40000,0.67260,109.12723
+40.50000,0.67430,109.26146
+40.60000,0.67590,109.46280
+40.70000,0.67760,109.59703
+40.80000,0.67930,109.79837
+40.90000,0.68090,109.93260
+41.00000,0.68260,110.13394
+41.10000,0.68430,110.26817
+41.20000,0.68590,110.46951
+41.30000,0.68760,110.60374
+41.40000,0.68930,110.80508
+41.50000,0.69090,110.93931
+41.60000,0.69260,111.07354
+41.70000,0.69430,111.20776
+41.80000,0.69590,111.34199
+41.90000,0.69760,111.54333
+42.00000,0.69930,111.67756
+42.10000,0.70090,111.81179
+42.20000,0.70260,111.94602
+42.30000,0.70430,112.08024
+42.40000,0.70590,112.21447
+42.50000,0.70760,112.34870
+42.60000,0.70930,112.48293
+42.70000,0.71090,112.61716
+42.80000,0.71260,112.75138
+42.90000,0.71430,112.88561
+43.00000,0.71590,112.95273
+43.10000,0.71760,113.08695
+43.20000,0.71930,113.22118
+43.30000,0.72090,113.28830
+43.40000,0.72260,113.42252
+43.50000,0.72430,113.48964
+43.60000,0.72590,113.62387
+43.70000,0.72760,113.75809
+43.80000,0.72930,113.82521
+43.90000,0.73090,113.89232
+44.00000,0.73260,113.95943
+44.10000,0.73430,114.02655
+44.20000,0.73590,114.16078
+44.30000,0.73760,114.22789
+44.40000,0.73930,114.29500
+44.50000,0.74090,114.42923
+44.60000,0.74260,114.49635
+44.70000,0.74430,114.56346
+44.80000,0.74590,114.63057
+44.90000,0.74760,114.69769
+45.00000,0.74930,114.76480
+45.10000,0.75090,114.83192
+45.20000,0.75260,114.89903
+45.30000,0.75430,114.96614
+45.40000,0.75590,114.96614
+45.50000,0.75760,115.03326
+45.60000,0.75930,115.03326
+45.70000,0.76090,115.10037
+45.80000,0.76260,115.16749
+45.90000,0.76430,115.16749
+46.00000,0.76590,115.23460
+46.10000,0.76760,115.23460
+46.20000,0.76930,115.23460
+46.30000,0.77090,115.30171
+46.40000,0.77260,115.30171
+46.50000,0.77430,115.30171
+46.60000,0.77590,115.36883
+46.70000,0.77760,115.36883
+46.80000,0.77930,115.36883
+46.90000,0.78090,115.36883
+47.00000,0.78260,115.36883
+47.10000,0.78430,115.30171
+47.20000,0.78590,115.36883
+47.30000,0.78760,115.30171
+47.40000,0.78930,115.30171
+47.50000,0.79090,115.36883
+47.60000,0.79260,115.36883
+47.70000,0.79430,115.30171
+47.80000,0.79590,115.30171
+47.90000,0.79760,115.23460
+48.00000,0.79930,115.23460
+48.10000,0.80090,115.16749
+48.20000,0.80260,115.16749
+48.30000,0.80430,115.16749
+48.40000,0.80590,115.10037
+48.50000,0.80760,115.03326
+48.60000,0.80930,115.03326
+48.70000,0.81090,114.96614
+48.80000,0.81260,114.89903
+48.90000,0.81430,114.83192
+49.00000,0.81590,114.83192
+49.10000,0.81760,114.76480
+49.20000,0.81930,114.69769
+49.30000,0.82090,114.69769
+49.40000,0.82260,114.63057
+49.50000,0.82430,114.49635
+49.60000,0.82590,114.42923
+49.70000,0.82760,114.36212
+49.80000,0.82930,114.29500
+49.90000,0.83090,114.29500
+50.00000,0.83260,114.22789
+50.10000,0.83430,114.16078
+50.20000,0.83590,114.09366
+50.30000,0.83760,113.95943
+50.40000,0.83930,113.89232
+50.50000,0.84090,113.82521
+50.60000,0.84260,113.75809
+50.70000,0.84430,113.69098
+50.80000,0.84590,113.62387
+50.90000,0.84760,113.55675
+51.00000,0.84930,113.42252
+51.10000,0.85090,113.35541
+51.20000,0.85260,113.28830
+51.30000,0.85430,113.22118
+51.40000,0.85590,113.15407
+51.50000,0.85760,113.08695
+51.60000,0.85930,113.01984
+51.70000,0.86090,112.95273
+51.80000,0.86260,112.81850
+51.90000,0.86430,112.75138
+52.00000,0.86590,112.68427
+52.10000,0.86760,112.61716
+52.20000,0.86930,112.48293
+52.30000,0.87090,112.48293
+52.40000,0.87260,112.34870
+52.50000,0.87430,112.28159
+52.60000,0.87590,112.21447
+52.70000,0.87760,112.14736
+52.80000,0.87930,112.08024
+52.90000,0.88090,112.01313
+53.00000,0.88260,111.94602
+53.10000,0.88430,111.87890
+53.20000,0.88590,111.81179
+53.30000,0.88760,111.74468
+53.40000,0.88930,111.61045
+53.50000,0.89090,111.61045
+53.60000,0.89260,111.54333
+53.70000,0.89430,111.40911
+53.80000,0.89590,111.34199
+53.90000,0.89760,111.34199
+54.00000,0.89930,111.27488
+54.10000,0.90090,111.20776
+54.20000,0.90260,111.07354
+54.30000,0.90430,111.00642
+54.40000,0.90590,110.93931
+54.50000,0.90760,110.87219
+54.60000,0.90930,110.87219
+54.70000,0.91090,110.80508
+54.80000,0.91260,110.73797
+54.90000,0.91430,110.67085
+55.00000,0.91590,110.60374
+55.10000,0.91760,110.53662
+55.20000,0.91930,110.46951
+55.30000,0.92090,110.40240
+55.40000,0.92260,110.33528
+55.50000,0.92430,110.33528
+55.60000,0.92590,110.26817
+55.70000,0.92760,110.26817
+55.80000,0.92930,110.13394
+55.90000,0.93090,110.13394
+56.00000,0.93260,109.99971
+56.10000,0.93430,109.99971
+56.20000,0.93590,109.93260
+56.30000,0.93760,109.93260
+56.40000,0.93930,109.86549
+56.50000,0.94090,109.79837
+56.60000,0.94260,109.73126
+56.70000,0.94430,109.66414
+56.80000,0.94590,109.59703
+56.90000,0.94760,109.59703
+57.00000,0.94930,109.52992
+57.10000,0.95090,109.52992
+57.20000,0.95260,109.46280
+57.30000,0.95430,109.46280
+57.40000,0.95590,109.32857
+57.50000,0.95760,109.32857
+57.60000,0.95930,109.26146
+57.70000,0.96090,109.26146
+57.80000,0.96260,109.19435
+57.90000,0.96430,109.12723
+58.00000,0.96590,109.12723
+58.10000,0.96760,109.06012
+58.20000,0.96930,108.99300
+58.30000,0.97090,108.92589
+58.40000,0.97260,108.85878
+58.50000,0.97430,108.85878
+58.60000,0.97590,108.79166
+58.70000,0.97760,108.79166
+58.80000,0.97930,108.72455
+58.90000,0.98090,108.65743
+59.00000,0.98260,108.59032
+59.10000,0.98430,108.52321
+59.20000,0.98590,108.52321
+59.30000,0.98760,108.45609
+59.40000,0.98930,108.45609
+59.50000,0.99090,108.38898
+59.60000,0.99260,108.32187
+59.70000,0.99430,108.32187
+59.80000,0.99590,108.25475
+59.90000,0.99760,108.18764
+60.00000,0.99930,108.18764
+60.10000,1.00090,108.12052
+60.20000,1.00260,108.05341
+60.30000,1.00430,108.05341
+60.40000,1.00590,107.98630
+60.50000,1.00760,107.91918
+60.60000,1.00930,107.85207
+60.70000,1.01090,107.85207
+60.80000,1.01260,107.78495
+60.90000,1.01430,107.71784
+61.00000,1.01590,107.71784
+61.10000,1.01760,107.65073
+61.20000,1.01930,107.58361
+61.30000,1.02090,107.51650
+61.40000,1.02260,107.51650
+61.50000,1.02430,107.44938
+61.60000,1.02590,107.38227
+61.70000,1.02760,107.38227
+61.80000,1.02930,107.31516
+61.90000,1.03090,107.31516
+62.00000,1.03260,107.24804
+62.10000,1.03430,107.18093
+62.20000,1.03590,107.11381
+62.30000,1.03760,107.04670
+62.40000,1.03930,107.04670
+62.50000,1.04090,106.97959
+62.60000,1.04260,106.91247
+62.70000,1.04430,106.84536
+62.80000,1.04590,106.84536
+62.90000,1.04760,106.77825
+63.00000,1.04930,106.71113
+63.10000,1.05090,106.64402
+63.20000,1.05260,106.57690
+63.30000,1.05430,106.50979
+63.40000,1.05590,106.44268
+63.50000,1.05760,106.37556
+63.60000,1.05930,106.30845
+63.70000,1.06090,106.30845
+63.80000,1.06260,106.24133
+63.90000,1.06430,106.17422
+64.00000,1.06590,106.10711
+64.10001,1.06760,106.03999
+64.20000,1.06930,105.97288
+64.30000,1.07090,105.97288
+64.40000,1.07260,105.90576
+64.50000,1.07430,105.83865
+64.60001,1.07590,105.77154
+64.70000,1.07760,105.70442
+64.80000,1.07930,105.63731
+64.90000,1.08090,105.57019
+65.00000,1.08260,105.50308
+65.10001,1.08430,105.43597
+65.20000,1.08590,105.36885
+65.30000,1.08760,105.30174
+65.40000,1.08930,105.23462
+65.50000,1.09090,105.16751
+65.60001,1.09260,105.10040
+65.70001,1.09430,105.03328
+65.80000,1.09590,105.03328
+65.90000,1.09760,104.96617
+66.00000,1.09930,104.89906
+66.10001,1.10090,104.76483
+66.20001,1.10260,104.69771
+66.30000,1.10430,104.63060
+66.40000,1.10590,104.49637
+66.50000,1.10760,104.42926
+66.60001,1.10930,104.36214
+66.70001,1.11090,104.29503
+66.80000,1.11260,104.22792
+66.90000,1.11430,104.16080
+67.00000,1.11590,104.02657
+67.10001,1.11760,103.95946
+67.20001,1.11930,103.82523
+67.30000,1.12090,103.75812
+67.40000,1.12260,103.69100
+67.50000,1.12430,103.62389
+67.60001,1.12590,103.48966
+67.70001,1.12760,103.35544
+67.80000,1.12930,103.22121
+67.90000,1.13090,103.15409
+68.00000,1.13260,103.01987
+68.10001,1.13430,102.88564
+68.20001,1.13590,102.81852
+68.30000,1.13760,102.68430
+68.40000,1.13930,102.55007
+68.50000,1.14090,102.41584
+68.60001,1.14260,102.28161
+68.70001,1.14430,102.14738
+68.80000,1.14590,101.94604
+68.90000,1.14760,101.81181
+69.00000,1.14930,101.67759
+69.10001,1.15090,101.47625
+69.20001,1.15260,101.27490
+69.30000,1.15430,101.07356
+69.40000,1.15590,100.87222
+69.50000,1.15760,100.67088
+69.60001,1.15930,100.40242
+69.70001,1.16090,100.20108
+69.80000,1.16260,99.93263
+69.90000,1.16430,99.66417
+70.00000,1.16590,99.32860
+70.10001,1.16760,98.92592
+70.20001,1.16930,98.59035
+70.30000,1.17090,98.12055
+70.40000,1.17260,97.65075
+70.50000,1.17420,97.18095
+70.60001,1.17590,96.64404
+70.70001,1.17760,96.04002
+70.80000,1.17920,95.43599
+70.90000,1.18090,94.76485
+71.00000,1.18260,94.09371
+71.10001,1.18420,93.42257
+71.20001,1.18590,92.68432
+71.30000,1.18760,92.01318
+71.40000,1.18920,91.27493
+71.50000,1.19090,90.53668
+71.60001,1.19260,89.73131
+71.70001,1.19420,88.92594
+71.80000,1.19590,88.18769
+71.90000,1.19760,87.38232
+72.00000,1.19920,86.57695
+72.10001,1.20090,85.83870
+72.20001,1.20260,85.03333
+72.30000,1.20420,84.22797
+72.40000,1.20590,83.42260
+72.50000,1.20760,82.55012
+72.60001,1.20920,81.71791
+72.70001,1.21090,80.88569
+72.80000,1.21260,80.08033
+72.90000,1.21420,79.30181
+73.00000,1.21590,78.52328
+73.10001,1.21760,77.74476
+73.20001,1.21920,76.99309
+73.30000,1.22090,76.26826
+73.40000,1.22260,75.57027
+73.50000,1.22420,74.87229
+73.60001,1.22590,74.25484
+73.70001,1.22760,73.69108
+73.80000,1.22920,73.12732
+73.90000,1.23090,72.59041
+74.00000,1.23260,72.08035
+74.10001,1.23420,71.57028
+74.20001,1.23590,71.14075
+74.30000,1.23760,70.73807
+74.40000,1.23920,70.33539
+74.50000,1.24090,70.01324
+74.60001,1.24260,69.63740
+74.70001,1.24420,69.34210
+74.80000,1.24590,68.99311
+74.90000,1.24760,68.72465
+75.00000,1.24920,68.45620
+75.10001,1.25090,68.21459
+75.20001,1.25260,67.99982
+75.30000,1.25420,67.81190
+75.40000,1.25590,67.62398
+75.50000,1.25760,67.43606
+75.60001,1.25920,67.22130
+75.70001,1.26090,67.06023
+75.80000,1.26260,66.89915
+75.90000,1.26420,66.76492
+76.00000,1.26590,66.63070
+76.10001,1.26760,66.55016
+76.20001,1.26920,66.44278
+76.30000,1.27090,66.33540
+76.40000,1.27260,66.22801
+76.50000,1.27420,66.12063
+76.60001,1.27590,66.04009
+76.70001,1.27760,65.95956
+76.80000,1.27920,65.90587
+76.90000,1.28090,65.85218
+77.00000,1.28260,65.77164
+77.10001,1.28420,65.69110
+77.20001,1.28590,65.63741
+77.30000,1.28760,65.55687
+77.40000,1.28920,65.53003
+77.50000,1.29090,65.44949
+77.60001,1.29260,65.42265
+77.70001,1.29420,65.39580
+77.80000,1.29590,65.36896
+77.90000,1.29760,65.34211
+78.00000,1.29920,65.28842
+78.10001,1.30090,65.26157
+78.20001,1.30260,65.23473
+78.30000,1.30420,65.18104
+78.40000,1.30590,65.18104
+78.50000,1.30760,65.18104
+78.60001,1.30920,65.15419
+78.70001,1.31090,65.10050
+78.80000,1.31260,65.04681
+78.90000,1.31420,65.04681
+79.00000,1.31590,64.99312
+79.10001,1.31760,64.96627
+79.20001,1.31920,64.93943
+79.30000,1.32090,64.93943
+79.40000,1.32260,64.91258
+79.50000,1.32420,64.85889
+79.60001,1.32590,64.83204
+79.70001,1.32760,64.80520
+79.80000,1.32920,64.77835
+79.90000,1.33090,64.77835
+80.00000,1.33260,64.75151
+80.10001,1.33420,64.72466
+80.20001,1.33590,64.69782
+80.30000,1.33760,64.67097
+80.40000,1.33920,64.64412
+80.50001,1.34090,64.61728
+80.60001,1.34260,64.59043
+80.70001,1.34420,64.56359
+80.80000,1.34590,64.56359
+80.90000,1.34760,64.56359
+81.00001,1.34920,64.56359
+81.10001,1.35090,64.50990
+81.20001,1.35260,64.45621
+81.30000,1.35420,64.42936
+81.40000,1.35590,64.42936
+81.50001,1.35760,64.40251
+81.60001,1.35920,64.40251
+81.70001,1.36090,64.37567
+81.80000,1.36260,64.34882
+81.90000,1.36420,64.32198
+82.00001,1.36590,64.29513
+82.10001,1.36760,64.26829
+82.20001,1.36920,64.24144
+82.30000,1.37090,64.24144
+82.40000,1.37260,64.26829
+82.50001,1.37420,64.29513
+82.60001,1.37590,64.29513
+82.70001,1.37760,64.26829
+82.80000,1.37920,64.24144
+82.90000,1.38090,64.21460
+83.00001,1.38260,64.18775
+83.10001,1.38420,64.16090
+83.20001,1.38590,64.16090
+83.30000,1.38760,64.16090
+83.40000,1.38920,64.16090
+83.50001,1.39090,64.16090
+83.60001,1.39260,64.10721
+83.70001,1.39420,64.10721
+83.80000,1.39590,64.08037
+83.90000,1.39760,64.08037
+84.00001,1.39920,64.10721
+84.10001,1.40090,64.08037
+84.20001,1.40260,64.05352
+84.30000,1.40420,64.02668
+84.40000,1.40590,63.97299
+84.50001,1.40760,63.97299
+84.60001,1.40920,63.97299
+84.70001,1.41090,63.97299
+84.80000,1.41260,63.97299
+84.90000,1.41420,63.99983
+85.00001,1.41590,63.97299
+85.10001,1.41760,63.94614
+85.20001,1.41920,63.94614
+85.30000,1.42090,63.91929
+85.40000,1.42260,63.89245
+85.50001,1.42420,63.89245
+85.60001,1.42590,63.89245
+85.70001,1.42760,63.89245
+85.80000,1.42920,63.89245
+85.90000,1.43090,63.86560
+86.00001,1.43260,63.86560
+86.10001,1.43420,63.86560
+86.20001,1.43590,63.83876
+86.30000,1.43760,63.86560
+86.40000,1.43920,63.86560
+86.50001,1.44090,63.86560
+86.60001,1.44260,63.83876
+86.70001,1.44420,63.86560
+86.80000,1.44590,63.83876
+86.90000,1.44760,63.83876
+87.00001,1.44920,63.81191
+87.10001,1.45090,63.81191
+87.20001,1.45260,63.83876
+87.30000,1.45420,63.83876
+87.40000,1.45590,63.81191
+87.50001,1.45760,63.78507
+87.60001,1.45920,63.78507
+87.70001,1.46090,63.78507
+87.80000,1.46260,63.78507
+87.90000,1.46420,63.75822
+88.00001,1.46590,63.78507
+88.10001,1.46760,63.75822
+88.20001,1.46920,63.75822
+88.30000,1.47090,63.73138
+88.40000,1.47260,63.70453
+88.50001,1.47420,63.67768
+88.60001,1.47590,63.67768
+88.70001,1.47760,63.67768
+88.80000,1.47920,63.70453
+88.90000,1.48090,63.67768
+89.00001,1.48260,63.67768
+89.10001,1.48420,63.65084
+89.20001,1.48590,63.65084
+89.30000,1.48760,63.62399
+89.40000,1.48920,63.62399
+89.50001,1.49090,63.62399
+89.60001,1.49260,63.62399
+89.70001,1.49420,63.59715
+89.80000,1.49590,63.57030
+89.90000,1.49760,63.54346
+90.00001,1.49920,63.51661
+90.10001,1.50090,63.48977
+90.20001,1.50260,63.48977
+90.30000,1.50420,63.46292
+90.40000,1.50590,63.48977
+90.50001,1.50760,63.48977
+90.60001,1.50920,63.46292
+90.70001,1.51090,63.46292
+90.80000,1.51260,63.43607
+90.90000,1.51420,63.40923
+91.00001,1.51590,63.40923
+91.10001,1.51760,63.38238
+91.20001,1.51920,63.40923
+91.30000,1.52090,63.38238
+91.40000,1.52260,63.35554
+91.50001,1.52420,63.32869
+91.60001,1.52590,63.30185
+91.70001,1.52760,63.27500
+91.80000,1.52920,63.27500
+91.90000,1.53090,63.24816
+92.00001,1.53260,63.24816
+92.10001,1.53420,63.22131
+92.20001,1.53590,63.16762
+92.30000,1.53760,63.08708
+92.40000,1.53920,63.03339
+92.50001,1.54090,62.97970
+92.60001,1.54260,62.95285
+92.70001,1.54420,62.92601
+92.80000,1.54590,62.89916
+92.90000,1.54760,62.87232
+93.00001,1.54920,62.81863
+93.10001,1.55090,62.73809
+93.20001,1.55260,62.71124
+93.30000,1.55420,62.65755
+93.40000,1.55590,62.63071
+93.50001,1.55760,62.60386
+93.60001,1.55920,62.60386
+93.70001,1.56090,62.55017
+93.80000,1.56260,62.49648
+93.90000,1.56420,62.44279
+94.00001,1.56590,62.41594
+94.10001,1.56760,62.38910
+94.20001,1.56920,62.36225
+94.30000,1.57090,62.30856
+94.40000,1.57260,62.28171
+94.50001,1.57420,62.25487
+94.60001,1.57590,62.22802
+94.70001,1.57760,62.17433
+94.80000,1.57920,62.17433
+94.90000,1.58090,62.12064
+95.00001,1.58260,62.12064
+95.10001,1.58420,62.09380
+95.20001,1.58590,62.09380
+95.30000,1.58760,62.06695
+95.40000,1.58920,62.04010
+95.50001,1.59090,62.01326
+95.60001,1.59260,61.98641
+95.70001,1.59420,61.95957
+95.80000,1.59590,61.93272
+95.90000,1.59760,61.90588
+96.00001,1.59920,61.90588
+96.10001,1.60090,61.87903
+96.20001,1.60260,61.85219
+96.30000,1.60420,61.82534
+96.40000,1.60590,61.82534
+96.50001,1.60760,61.82534
+96.60001,1.60920,61.82534
+96.70001,1.61090,61.82534
+96.80000,1.61260,61.85219
+96.90000,1.61420,61.82534
+97.00001,1.61590,61.79849
+97.10001,1.61760,61.77165
+97.20001,1.61920,61.77165
+97.30000,1.62090,61.74480
+97.40000,1.62260,61.74480
+97.50001,1.62420,61.74480
+97.60001,1.62590,61.77165
+97.70001,1.62760,61.77165
+97.80000,1.62920,61.77165
+97.90000,1.63090,61.71796
+98.00001,1.63260,61.71796
+98.10001,1.63420,61.69111
+98.20001,1.63590,61.69111
+98.30000,1.63760,61.69111
+98.40000,1.63920,61.69111
+98.50001,1.64090,61.69111
+98.60001,1.64260,61.66427
+98.70001,1.64420,61.63742
+98.80000,1.64590,61.66427
+98.90000,1.64760,61.63742
+99.00001,1.64920,61.63742
+99.10001,1.65090,61.66427
+99.20001,1.65260,61.69111
+99.30000,1.65420,61.69111
+99.40000,1.65590,61.69111
+99.50001,1.65760,61.66427
+99.60001,1.65920,61.66427
+99.70001,1.66090,61.63742
+99.80000,1.66260,61.63742
+99.90000,1.66420,61.63742
+100.00001,1.66590,61.66427
+100.10001,1.66760,61.63742
+100.20001,1.66920,61.63742
+100.30000,1.67090,61.61058
+100.40000,1.67260,61.61058
+100.50001,1.67420,61.58373
+100.60001,1.67590,61.58373
+100.70001,1.67760,61.58373
+100.80000,1.67920,61.55688
+100.90000,1.68090,61.53004
+101.00001,1.68260,61.47635
+101.10001,1.68420,61.42266
+101.20001,1.68590,61.39581
+101.30000,1.68760,61.36897
+101.40000,1.68920,61.36897
+101.50001,1.69090,61.34212
+101.60001,1.69260,61.34212
+101.70001,1.69420,61.31527
+101.80000,1.69590,61.26158
+101.90000,1.69750,61.26158
+102.00001,1.69920,61.23474
+102.10001,1.70090,61.20789
+102.20001,1.70250,61.18105
+102.30000,1.70420,61.18105
+102.40000,1.70590,61.18105
+102.50001,1.70750,61.15420
+102.60001,1.70920,61.12736
+102.70001,1.71090,61.10051
+102.80000,1.71250,61.07366
+102.90000,1.71420,61.04682
+103.00001,1.71590,61.04682
+103.10001,1.71750,61.07366
+103.20001,1.71920,61.04682
+103.30000,1.72090,61.04682
+103.40000,1.72250,61.01997
+103.50001,1.72420,61.01997
+103.60001,1.72590,61.01997
+103.70001,1.72750,60.99313
+103.80000,1.72920,60.99313
+103.90000,1.73090,60.99313
+104.00001,1.73250,60.99313
+104.10001,1.73420,60.96628
+104.20001,1.73590,60.93944
+104.30000,1.73750,60.93944
+104.40000,1.73920,60.88575
+104.50001,1.74090,60.88575
+104.60001,1.74250,60.88575
+104.70001,1.74420,60.88575
+104.80000,1.74590,60.85890
+104.90000,1.74750,60.83205
+105.00001,1.74920,60.80521
+105.10001,1.75090,60.77836
+105.20001,1.75250,60.72467
+105.30000,1.75420,60.72467
+105.40000,1.75590,60.72467
+105.50001,1.75750,60.72467
+105.60001,1.75920,60.69783
+105.70001,1.76090,60.69783
+105.80000,1.76250,60.64414
+105.90000,1.76420,60.61729
+106.00001,1.76590,60.59044
+106.10001,1.76750,60.59044
+106.20001,1.76920,60.59044
+106.30000,1.77090,60.59044
+106.40000,1.77250,60.53675
+106.50001,1.77420,60.50991
+106.60001,1.77590,60.45622
+106.70001,1.77750,60.45622
+106.80000,1.77920,60.40252
+106.90000,1.78090,60.37568
+107.00001,1.78250,60.37568
+107.10001,1.78420,60.34883
+107.20001,1.78590,60.32199
+107.30000,1.78750,60.29514
+107.40000,1.78920,60.21461
+107.50001,1.79090,60.18776
+107.60001,1.79250,60.13407
+107.70001,1.79420,60.10722
+107.80000,1.79590,60.02669
+107.90000,1.79750,59.91930
+108.00001,1.79920,59.78508
+108.10001,1.80090,59.67769
+108.20001,1.80250,59.57031
+108.30000,1.80420,59.46293
+108.40000,1.80590,59.35555
+108.50001,1.80750,59.19447
+108.60001,1.80920,59.11394
+108.70001,1.81090,59.03340
+108.80000,1.81250,58.92602
+108.90000,1.81420,58.81864
+109.00001,1.81590,58.71125
+109.10001,1.81750,58.63072
+109.20001,1.81920,58.55018
+109.30000,1.82090,58.46964
+109.40000,1.82250,58.41595
+109.50001,1.82420,58.36226
+109.60001,1.82590,58.28172
+109.70001,1.82750,58.22803
+109.80000,1.82920,58.14750
+109.90000,1.83090,58.09381
+110.00001,1.83250,58.01327
+110.10001,1.83420,57.95958
+110.20001,1.83590,57.93273
+110.30000,1.83750,57.87904
+110.40000,1.83920,57.82535
+110.50001,1.84090,57.77166
+110.60001,1.84250,57.69112
+110.70001,1.84420,57.66428
+110.80000,1.84590,57.61059
+110.90000,1.84750,57.58374
+111.00001,1.84920,57.53005
+111.10001,1.85090,57.50320
+111.20001,1.85250,57.44951
+111.30000,1.85420,57.42267
+111.40000,1.85590,57.42267
+111.50001,1.85750,57.39582
+111.60001,1.85920,57.34213
+111.70001,1.86090,57.31528
+111.80000,1.86250,57.31528
+111.90000,1.86420,57.28844
+112.00001,1.86590,57.26159
+112.10001,1.86750,57.20790
+112.20001,1.86920,57.15421
+112.30000,1.87090,57.12737
+112.40000,1.87250,57.07367
+112.50001,1.87420,57.01998
+112.60001,1.87590,56.99314
+112.70001,1.87750,56.96629
+112.80000,1.87920,56.93945
+112.90001,1.88090,56.88576
+113.00001,1.88250,56.88576
+113.10001,1.88420,56.83206
+113.20001,1.88590,56.80522
+113.30000,1.88750,56.80522
+113.40001,1.88920,56.77837
+113.50001,1.89090,56.72468
+113.60001,1.89250,56.69784
+113.70001,1.89420,56.67099
+113.80000,1.89590,56.61730
+113.90001,1.89750,56.59045
+114.00001,1.89920,56.53676
+114.10001,1.90090,56.50992
+114.20001,1.90250,56.48307
+114.30000,1.90420,56.42938
+114.40001,1.90590,56.37569
+114.50001,1.90750,56.29515
+114.60001,1.90920,56.21462
+114.70001,1.91090,56.10723
+114.80000,1.91250,55.99985
+114.90001,1.91420,55.89247
+115.00001,1.91590,55.78509
+115.10001,1.91750,55.65086
+115.20001,1.91920,55.54348
+115.30000,1.92090,55.40925
+115.40001,1.92250,55.30187
+115.50001,1.92420,55.19448
+115.60001,1.92590,55.08710
+115.70001,1.92750,55.03341
+115.80000,1.92920,54.95287
+115.90001,1.93090,54.84549
+116.00001,1.93250,54.76496
+116.10001,1.93420,54.63073
+116.20001,1.93590,54.52335
+116.30000,1.93750,54.41596
+116.40001,1.93920,54.30858
+116.50001,1.94090,54.22804
+116.60001,1.94250,54.14751
+116.70001,1.94420,54.04013
+116.80000,1.94590,53.93274
+116.90001,1.94750,53.82536
+117.00001,1.94920,53.71798
+117.10001,1.95090,53.58375
+117.20001,1.95250,53.47637
+117.30000,1.95420,53.28845
+117.40001,1.95590,53.18107
+117.50001,1.95750,53.04684
+117.60001,1.95920,52.91261
+117.70001,1.96090,52.77838
+117.80000,1.96250,52.69785
+117.90001,1.96420,52.56362
+118.00001,1.96590,52.48308
+118.10001,1.96750,52.42939
+118.20001,1.96920,52.37570
+118.30000,1.97090,52.29516
+118.40001,1.97250,52.18778
+118.50001,1.97420,52.10724
+118.60001,1.97590,52.05355
+118.70001,1.97750,51.97302
+118.80000,1.97920,51.89248
+118.90001,1.98090,51.81194
+119.00001,1.98250,51.78510
+119.10001,1.98420,51.70456
+119.20001,1.98590,51.62402
+119.30000,1.98750,51.51664
+119.40001,1.98920,51.43610
+119.50001,1.99090,51.32872
+119.60001,1.99250,51.27503
+119.70001,1.99420,51.22134
+119.80000,1.99590,51.16765
+119.90001,1.99750,51.11396
+120.00001,1.99920,51.06027
+120.10001,2.00090,50.97973
+120.20001,2.00250,50.95288
+120.30000,2.00420,50.89919
+120.40001,2.00590,50.87235
+120.50001,2.00750,50.84550
+120.60001,2.00920,50.79181
+120.70001,2.01090,50.76497
+120.80000,2.01250,50.71127
+120.90001,2.01420,50.65758
+121.00001,2.01590,50.63074
+121.10001,2.01750,50.57705
+121.20001,2.01920,50.57705
+121.30000,2.02090,50.60389
+121.40001,2.02250,50.55020
+121.50001,2.02420,50.52336
+121.60001,2.02590,50.46966
+121.70001,2.02750,50.44282
+121.80000,2.02920,50.41597
+121.90001,2.03090,50.38913
+122.00001,2.03250,50.38913
+122.10001,2.03420,50.38913
+122.20001,2.03590,50.36228
+122.30000,2.03750,50.36228
+122.40001,2.03920,50.33544
+122.50001,2.04090,50.30859
+122.60001,2.04250,50.28175
+122.70001,2.04420,50.25490
+122.80000,2.04590,50.28175
+122.90001,2.04750,50.25490
+123.00001,2.04920,50.25490
+123.10001,2.05090,50.22805
+123.20001,2.05250,50.22805
+123.30000,2.05420,50.17436
+123.40001,2.05590,50.17436
+123.50001,2.05750,50.14752
+123.60001,2.05920,50.14752
+123.70001,2.06090,50.17436
+123.80000,2.06250,50.20121
+123.90001,2.06420,50.20121
+124.00001,2.06590,50.17436
+124.10001,2.06750,50.14752
+124.20001,2.06920,50.14752
+124.30000,2.07090,50.14752
+124.40001,2.07250,50.14752
+124.50001,2.07420,50.14752
+124.60001,2.07590,50.14752
+124.70001,2.07750,50.12067
+124.80000,2.07920,50.09383
+124.90001,2.08090,50.09383
+125.00001,2.08250,50.09383
+125.10001,2.08420,50.06698
+125.20001,2.08590,50.06698
+125.30000,2.08750,50.09383
+125.40001,2.08920,50.06698
+125.50001,2.09090,50.06698
+125.60001,2.09250,50.01329
+125.70001,2.09420,50.01329
+125.80000,2.09590,49.98644
+125.90001,2.09750,49.98644
+126.00001,2.09920,49.98644
+126.10001,2.10090,49.98644
+126.20001,2.10250,49.95960
+126.30000,2.10420,49.95960
+126.40001,2.10590,49.90591
+126.50001,2.10750,49.90591
+126.60001,2.10920,49.87906
+126.70001,2.11090,49.85222
+126.80000,2.11250,49.85222
+126.90001,2.11420,49.85222
+127.00001,2.11590,49.82537
+127.10001,2.11750,49.77168
+127.20001,2.11920,49.71799
+127.30000,2.12090,49.69114
+127.40001,2.12250,49.66430
+127.50001,2.12420,49.63745
+127.60001,2.12590,49.61061
+127.70001,2.12750,49.58376
+127.80000,2.12920,49.53007
+127.90001,2.13090,49.50322
+128.00000,2.13250,49.44953
+128.10001,2.13420,49.42269
+128.20002,2.13590,49.36900
+128.30000,2.13750,49.31530
+128.40001,2.13920,49.26161
+128.50000,2.14090,49.23477
+128.60001,2.14250,49.15423
+128.70002,2.14420,49.07369
+128.80000,2.14590,48.96631
+128.90001,2.14750,48.85893
+129.00000,2.14920,48.72470
+129.10001,2.15090,48.61732
+129.20002,2.15250,48.42940
+129.30000,2.15420,47.99987
+129.40001,2.15590,47.30189
+129.50000,2.15750,46.79182
+129.60001,2.15920,46.01330
+129.70002,2.16090,45.55693
+129.80000,2.16250,45.18109
+129.90001,2.16420,44.83209
+130.00000,2.16590,44.53679
+130.10001,2.16750,44.13411
+130.20002,2.16920,43.83881
+130.30000,2.17090,43.59720
+130.40001,2.17250,43.38243
+130.50000,2.17420,43.19452
+130.60001,2.17590,43.00660
+130.70002,2.17750,42.87237
+130.80000,2.17920,42.73814
+130.90001,2.18090,42.60391
+131.00000,2.18250,42.48311
+131.10000,2.18420,42.34888
+131.20002,2.18590,42.21465
+131.30000,2.18750,42.10727
+131.40002,2.18920,42.01331
+131.50000,2.19090,41.91935
+131.60000,2.19250,41.83881
+131.70002,2.19420,41.75828
+131.80000,2.19590,41.65090
+131.90002,2.19750,41.57036
+132.00000,2.19920,41.48982
+132.10000,2.20090,41.44955
+132.20002,2.20250,41.38244
+132.30000,2.20420,41.35559
+132.40002,2.20590,41.32875
+132.50000,2.20750,41.31533
+132.60000,2.20920,41.27506
+132.70002,2.21090,41.24821
+132.80000,2.21250,41.19452
+132.90002,2.21420,41.16767
+133.00000,2.21580,41.11398
+133.10000,2.21750,41.10056
+133.20002,2.21920,41.10056
+133.30000,2.22080,41.08714
+133.40002,2.22250,41.07372
+133.50000,2.22420,41.04687
+133.60000,2.22580,41.02002
+133.70002,2.22750,41.02002
+133.80000,2.22920,41.00660
+133.90002,2.23080,41.02002
+134.00000,2.23250,41.00660
+134.10000,2.23420,41.02002
+134.20002,2.23580,41.00660
+134.30000,2.23750,41.00660
+134.40002,2.23920,40.97976
+134.50000,2.24080,40.97976
+134.60000,2.24250,40.96633
+134.70002,2.24420,40.97976
+134.80000,2.24580,41.00660
+134.90002,2.24750,41.02002
+135.00000,2.24920,41.02002
+135.10000,2.25080,41.00660
+135.20002,2.25250,40.99318
+135.30000,2.25420,41.00660
+135.40002,2.25580,40.99318
+135.50000,2.25750,41.00660
+135.60000,2.25920,41.00660
+135.70002,2.26080,41.02002
+135.80000,2.26250,41.02002
+135.90002,2.26420,41.02002
+136.00000,2.26580,41.03345
+136.10000,2.26750,41.04687
+136.20002,2.26920,41.03345
+136.30000,2.27080,41.06029
+136.40002,2.27250,41.07372
+136.50000,2.27420,41.11398
+136.60000,2.27580,41.10056
+136.70002,2.27750,41.11398
+136.80000,2.27920,41.11398
+136.90002,2.28080,41.12741
+137.00000,2.28250,41.12741
+137.10000,2.28420,41.14083
+137.20002,2.28580,41.16767
+137.30000,2.28750,41.18110
+137.40002,2.28920,41.19452
+137.50000,2.29080,41.16767
+137.60000,2.29250,41.16767
+137.70002,2.29420,41.16767
+137.80000,2.29580,41.16767
+137.90002,2.29750,41.19452
+138.00000,2.29920,41.22137
+138.10000,2.30080,41.22137
+138.20002,2.30250,41.22137
+138.30000,2.30420,41.20794
+138.40002,2.30580,41.20794
+138.50000,2.30750,41.19452
+138.60000,2.30920,41.19452
+138.70002,2.31080,41.20794
+138.80000,2.31250,41.23479
+138.90002,2.31420,41.24821
+139.00000,2.31580,41.26163
+139.10000,2.31750,41.24821
+139.20002,2.31920,41.24821
+139.30000,2.32080,41.24821
+139.40002,2.32250,41.26163
+139.50000,2.32420,41.26163
+139.60000,2.32580,41.28848
+139.70002,2.32750,41.27506
+139.80000,2.32920,41.27506
+139.90002,2.33080,41.27506
+140.00000,2.33250,41.27506
+140.10000,2.33420,41.26163
+140.20002,2.33580,41.27506
+140.30000,2.33750,41.28848
+140.40002,2.33920,41.30190
+140.50000,2.34080,41.31533
+140.60000,2.34250,41.32875
+140.70002,2.34420,41.31533
+140.80000,2.34580,41.32875
+140.90002,2.34750,41.31533
+141.00000,2.34920,41.32875
+141.10000,2.35080,41.34217
+141.20002,2.35250,41.35559
+141.30000,2.35420,41.34217
+141.40002,2.35580,41.34217
+141.50000,2.35750,41.34217
+141.60000,2.35920,41.32875
+141.70002,2.36080,41.31533
+141.80000,2.36250,41.32875
+141.90002,2.36420,41.32875
+142.00000,2.36580,41.35559
+142.10000,2.36750,41.35559
+142.20002,2.36920,41.34217
+142.30000,2.37080,41.31533
+142.40002,2.37250,41.31533
+142.50000,2.37420,41.31533
+142.60000,2.37580,41.32875
+142.70002,2.37750,41.32875
+142.80000,2.37920,41.34217
+142.90002,2.38080,41.34217
+143.00000,2.38250,41.35559
+143.10000,2.38420,41.32875
+143.20002,2.38580,41.35559
+143.30000,2.38750,41.34217
+143.40002,2.38920,41.34217
+143.50000,2.39080,41.34217
+143.60000,2.39250,41.35559
+143.70002,2.39420,41.35559
+143.80000,2.39580,41.35559
+143.90002,2.39750,41.32875
+144.00000,2.39920,41.31533
+144.10000,2.40080,41.31533
+144.20002,2.40250,41.31533
+144.30000,2.40420,41.31533
+144.40002,2.40580,41.32875
+144.50000,2.40750,41.32875
+144.60000,2.40920,41.32875
+144.70002,2.41080,41.32875
+144.80000,2.41250,41.35559
+144.90002,2.41420,41.34217
+145.00000,2.41580,41.34217
+145.10000,2.41750,41.35559
+145.20002,2.41920,41.38244
+145.30000,2.42080,41.39586
+145.40002,2.42250,41.39586
+145.50000,2.42420,41.38244
+145.60000,2.42580,41.39586
+145.70002,2.42750,41.36902
+145.80000,2.42920,41.36902
+145.90002,2.43080,41.36902
+146.00000,2.43250,41.38244
+146.10000,2.43420,41.38244
+146.20002,2.43580,41.38244
+146.30000,2.43750,41.35559
+146.40002,2.43920,41.36902
+146.50000,2.44080,41.35559
+146.60000,2.44250,41.36902
+146.70002,2.44420,41.38244
+146.80000,2.44580,41.36902
+146.90002,2.44750,41.36902
+147.00000,2.44920,41.36902
+147.10000,2.45080,41.36902
+147.20002,2.45250,41.38244
+147.30000,2.45420,41.35559
+147.40002,2.45580,41.36902
+147.50000,2.45750,41.38244
+147.60000,2.45920,41.40928
+147.70002,2.46080,41.39586
+147.80000,2.46250,41.39586
+147.90002,2.46420,41.36902
+148.00000,2.46580,41.38244
+148.10000,2.46750,41.36902
+148.20002,2.46920,41.38244
+148.30000,2.47080,41.38244
+148.40002,2.47250,41.39586
+148.50000,2.47420,41.38244
+148.60000,2.47580,41.38244
+148.70002,2.47750,41.36902
+148.80000,2.47920,41.38244
+148.90002,2.48080,41.36902
+149.00000,2.48250,41.39586
+149.10000,2.48420,41.40928
+149.20002,2.48580,41.43613
+149.30000,2.48750,41.44955
+149.40002,2.48920,41.43613
+149.50000,2.49080,41.42271
+149.60000,2.49250,41.42271
+149.70002,2.49420,41.40928
+149.80000,2.49580,41.42271
+149.90002,2.49750,41.43613
+150.00000,2.49920,41.43613
+150.10000,2.50080,41.44955
+150.20002,2.50250,41.42271
+150.30000,2.50420,41.40928
+150.40002,2.50580,41.42271
+150.50000,2.50750,41.42271
+150.60000,2.50920,41.42271
+150.70002,2.51080,41.44955
+150.80000,2.51250,41.44955
+150.90002,2.51420,41.43613
+151.00000,2.51580,41.40928
+151.10000,2.51750,41.39586
+151.20002,2.51920,41.40928
+151.30000,2.52080,41.39586
+151.40002,2.52250,41.40928
+151.50000,2.52420,41.42271
+151.60000,2.52580,41.43613
+151.70002,2.52750,41.42271
+151.80000,2.52920,41.40928
+151.85000,2.53000,41.40928
diff --git a/test_files/dex-test-03.json b/test_files/dex-test-03.json
new file mode 100644
index 0000000000000000000000000000000000000000..f31b53637875270d7fac95a296213d05f96e714d
--- /dev/null
+++ b/test_files/dex-test-03.json
@@ -0,0 +1,614 @@
+[
+  [
+    16.93548,
+    -1255.0539375550534
+  ],
+  [
+    33.87096,
+    -1120.031798942332
+  ],
+  [
+    50.806439999999995,
+    -969.0317479580142
+  ],
+  [
+    67.74192,
+    -783.1112469003554
+  ],
+  [
+    84.67739999999999,
+    -603.5589501395755
+  ],
+  [
+    101.61287999999999,
+    -457.4076485562746
+  ],
+  [
+    118.54835999999999,
+    -319.3601064175704
+  ],
+  [
+    135.48384,
+    -132.7980577372143
+  ],
+  [
+    152.41931999999997,
+    54.074635055184714
+  ],
+  [
+    169.35479999999998,
+    222.085827740285
+  ],
+  [
+    186.29028,
+    366.21794259530714
+  ],
+  [
+    203.22575999999998,
+    543.541705508823
+  ],
+  [
+    220.16123999999996,
+    728.4492366359075
+  ],
+  [
+    237.09671999999998,
+    883.1027325031641
+  ],
+  [
+    254.0322,
+    1026.87693131605
+  ],
+  [
+    270.96768,
+    1205.8687180485788
+  ],
+  [
+    287.90315999999996,
+    1387.217348152911
+  ],
+  [
+    304.83863999999994,
+    1545.7741548193153
+  ],
+  [
+    321.77412,
+    1687.1374851974335
+  ],
+  [
+    338.70959999999997,
+    1874.982629123184
+  ],
+  [
+    355.64507999999995,
+    2053.245077505699
+  ],
+  [
+    372.58056,
+    2193.1699905824016
+  ],
+  [
+    389.51604,
+    2306.852229324352
+  ],
+  [
+    406.45151999999996,
+    2467.4147164532937
+  ],
+  [
+    423.38699999999994,
+    2646.6766285006424
+  ],
+  [
+    440.3224799999999,
+    2786.317909996784
+  ],
+  [
+    457.25795999999997,
+    2904.6733166851177
+  ],
+  [
+    474.19343999999995,
+    3058.3070894889297
+  ],
+  [
+    491.12891999999994,
+    3221.307457584121
+  ],
+  [
+    508.0644,
+    3353.675614978737
+  ],
+  [
+    524.99988,
+    3457.572564191337
+  ],
+  [
+    541.93536,
+    3594.5666176022432
+  ],
+  [
+    558.8708399999999,
+    3746.1744505449055
+  ],
+  [
+    575.8063199999999,
+    3871.701684341708
+  ],
+  [
+    592.7417999999999,
+    3977.6178202825863
+  ],
+  [
+    609.6772799999999,
+    4101.990268358533
+  ],
+  [
+    626.61276,
+    4254.3814647141735
+  ],
+  [
+    643.54824,
+    4356.205202135531
+  ],
+  [
+    660.48372,
+    4439.761715142193
+  ],
+  [
+    677.4191999999999,
+    4558.002318571729
+  ],
+  [
+    694.3546799999999,
+    4707.942127695379
+  ],
+  [
+    711.2901599999999,
+    4811.737779914921
+  ],
+  [
+    728.2256399999999,
+    4896.9082916776315
+  ],
+  [
+    745.16112,
+    5012.413876294616
+  ],
+  [
+    762.0966,
+    5144.680736696175
+  ],
+  [
+    779.03208,
+    5251.711139560685
+  ],
+  [
+    795.9675599999999,
+    5329.588267823259
+  ],
+  [
+    812.9030399999999,
+    5450.124936428764
+  ],
+  [
+    829.8385199999999,
+    5571.49224037734
+  ],
+  [
+    846.7739999999999,
+    5687.625866351281
+  ],
+  [
+    863.7094799999999,
+    5770.635375595432
+  ],
+  [
+    880.6449599999999,
+    5882.480762196607
+  ],
+  [
+    897.58044,
+    6009.8988731971485
+  ],
+  [
+    914.5159199999999,
+    6112.911162003713
+  ],
+  [
+    931.4513999999999,
+    6193.307208826983
+  ],
+  [
+    948.3868799999999,
+    6294.577189352959
+  ],
+  [
+    965.3223599999999,
+    6429.74114375596
+  ],
+  [
+    982.2578399999999,
+    6552.702187061974
+  ],
+  [
+    999.1933199999999,
+    6638.62229657331
+  ],
+  [
+    1016.1288,
+    6750.197557859665
+  ],
+  [
+    1033.0642799999998,
+    6888.940672684031
+  ],
+  [
+    1049.99976,
+    7000.630737229184
+  ],
+  [
+    1066.9352399999998,
+    7079.21694444316
+  ],
+  [
+    1083.87072,
+    7195.742252123589
+  ],
+  [
+    1100.8062,
+    7323.626329292196
+  ],
+  [
+    1117.7416799999999,
+    7447.384242276928
+  ],
+  [
+    1134.67716,
+    7547.810081194091
+  ],
+  [
+    1151.6126399999998,
+    7657.548490339672
+  ],
+  [
+    1168.54812,
+    7790.071969790309
+  ],
+  [
+    1185.4835999999998,
+    7907.542716072608
+  ],
+  [
+    1202.41908,
+    7997.183801795588
+  ],
+  [
+    1219.3545599999998,
+    8090.559369995953
+  ],
+  [
+    1236.2900399999999,
+    8223.78517526512
+  ],
+  [
+    1253.22552,
+    8356.349173512981
+  ],
+  [
+    1270.1609999999998,
+    8436.650676476063
+  ],
+  [
+    1287.09648,
+    8544.700802404019
+  ],
+  [
+    1304.0319599999998,
+    8675.738592623147
+  ],
+  [
+    1320.96744,
+    8789.44784389658
+  ],
+  [
+    1337.9029199999998,
+    8880.932534893205
+  ],
+  [
+    1354.8383999999999,
+    8980.088784830716
+  ],
+  [
+    1371.77388,
+    9100.632206569091
+  ],
+  [
+    1388.7093599999998,
+    9220.581352614863
+  ],
+  [
+    1405.64484,
+    9314.64574036802
+  ],
+  [
+    1422.5803199999998,
+    9424.032986604332
+  ],
+  [
+    1439.5158,
+    9550.769031184955
+  ],
+  [
+    1456.4512799999998,
+    9653.193797431786
+  ],
+  [
+    1473.3867599999999,
+    9741.53828164363
+  ],
+  [
+    1490.32224,
+    9821.164471319662
+  ],
+  [
+    1507.2577199999998,
+    9939.661693798278
+  ],
+  [
+    1524.1932,
+    10056.49089245788
+  ],
+  [
+    1541.1286799999998,
+    10146.158990712342
+  ],
+  [
+    1558.06416,
+    10237.66394110758
+  ],
+  [
+    1574.9996399999998,
+    10350.076590869876
+  ],
+  [
+    1591.9351199999999,
+    10468.519788285526
+  ],
+  [
+    1608.8705999999997,
+    10550.104386494002
+  ],
+  [
+    1625.8060799999998,
+    10639.941313070227
+  ],
+  [
+    1642.74156,
+    10739.354182056817
+  ],
+  [
+    1659.6770399999998,
+    10860.242013571587
+  ],
+  [
+    1676.61252,
+    10942.738284717581
+  ],
+  [
+    1693.5479999999998,
+    11032.23755465028
+  ],
+  [
+    1710.4834799999999,
+    11126.261423606215
+  ],
+  [
+    1727.4189599999997,
+    11224.911188578437
+  ],
+  [
+    1744.3544399999998,
+    11293.9552190464
+  ],
+  [
+    1761.2899199999997,
+    11351.161007592384
+  ],
+  [
+    1778.2253999999998,
+    11422.69694408956
+  ],
+  [
+    1795.16088,
+    11506.989548579106
+  ],
+  [
+    1812.0963599999998,
+    11536.939692859762
+  ],
+  [
+    1829.0318399999999,
+    11548.575340795627
+  ],
+  [
+    1845.9673199999997,
+    11566.484649168187
+  ],
+  [
+    1862.9027999999998,
+    11563.783396019988
+  ],
+  [
+    1879.8382799999997,
+    11508.39420021617
+  ],
+  [
+    1896.7737599999998,
+    11438.019802572719
+  ],
+  [
+    1913.70924,
+    11389.01907046439
+  ],
+  [
+    1930.6447199999998,
+    11352.545399830835
+  ],
+  [
+    1947.5801999999999,
+    11280.192334256328
+  ],
+  [
+    1964.5156799999997,
+    11227.180241222924
+  ],
+  [
+    1981.4511599999998,
+    11186.040155775856
+  ],
+  [
+    1998.3866399999997,
+    11159.432812266097
+  ],
+  [
+    2015.3221199999998,
+    11097.081136472796
+  ],
+  [
+    2032.2576,
+    11038.774587268923
+  ],
+  [
+    2049.19308,
+    11013.06541043094
+  ],
+  [
+    2066.1285599999997,
+    11008.31795802298
+  ],
+  [
+    2083.0640399999997,
+    10957.433101843784
+  ],
+  [
+    2099.99952,
+    10914.624992577701
+  ],
+  [
+    2116.935,
+    10899.9301754515
+  ],
+  [
+    2133.8704799999996,
+    10892.4679636296
+  ],
+  [
+    2150.8059599999997,
+    10851.564237833
+  ],
+  [
+    2167.74144,
+    10820.736186279179
+  ],
+  [
+    2184.67692,
+    10808.168606007184
+  ],
+  [
+    2201.6124,
+    10803.853354102936
+  ],
+  [
+    2218.5478799999996,
+    10760.673822528977
+  ],
+  [
+    2235.4833599999997,
+    10743.379049247633
+  ],
+  [
+    2252.41884,
+    10732.384948934463
+  ],
+  [
+    2269.35432,
+    10707.979126740487
+  ],
+  [
+    2286.2897999999996,
+    10666.818781894806
+  ],
+  [
+    2303.2252799999997,
+    10631.749762898315
+  ],
+  [
+    2320.1607599999998,
+    10617.318317954061
+  ],
+  [
+    2337.09624,
+    10603.785039681585
+  ],
+  [
+    2354.03172,
+    10561.550946709496
+  ],
+  [
+    2370.9671999999996,
+    10518.850887569342
+  ],
+  [
+    2387.9026799999997,
+    10500.131203252324
+  ],
+  [
+    2404.83816,
+    10477.312367282913
+  ],
+  [
+    2421.77364,
+    10402.149998434279
+  ],
+  [
+    2438.7091199999995,
+    9331.92025425075
+  ],
+  [
+    2455.6445999999996,
+    5.924797688539551
+  ],
+  [
+    2472.5800799999997,
+    0.06983148981846293
+  ],
+  [
+    2489.51556,
+    0.1373628185234351
+  ],
+  [
+    2506.45104,
+    0.20489414722840726
+  ],
+  [
+    2523.3865199999996,
+    0.44800693056630714
+  ],
+  [
+    2540.3219999999997,
+    0.2994380074153683
+  ],
+  [
+    2557.2574799999998,
+    0.22515354583989894
+  ],
+  [
+    2574.19296,
+    0.3332036717678544
+  ],
+  [
+    2591.12844,
+    0.36021620324984327
+  ]
+]
\ No newline at end of file